enrich-company-name
정보
이 HubSpot 스킬은 연관된 회사 레코드에서 데이터를 자동으로 복사하여 누락된 연락처 회사명 필드를 채웁니다. 지속적인 데이터 보강을 위한 워크플로우 기반 방식과 즉시 업데이트를 위한 선택적 API 백필 기능을 모두 제공합니다. 세분화, 개인화, 이상적 고객 프로필(ICP) 분류를 위해 연락처에 회사 데이터가 반드시 포함되도록 보장하려면 이 기능을 사용하세요.
빠른 설치
Claude Code
추천npx skills add TomGranot/hubspot-admin-skills -a claude-code/plugin add https://github.com/TomGranot/hubspot-admin-skillsgit clone https://github.com/TomGranot/hubspot-admin-skills.git ~/.claude/skills/enrich-company-nameClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
Enrich Contact Company Name from Associated Company
Populate missing contact-level company name fields by copying the value from the associated company record. Uses a HubSpot workflow for ongoing enrichment and optionally an API backfill script for immediate results.
Why This Matters
Contacts missing a company name cannot be matched to ICP-classified companies, break email personalization tokens, and are invisible to company-based segmentation. In a typical neglected CRM, 40-60% of contacts may be missing this field even though the vast majority have a company association.
Prerequisites
- HubSpot Marketing Hub Professional or Sales Hub Professional (for Workflows)
- Phase 1 hygiene processes completed (invalid/deleted contacts removed first)
- HubSpot auto-association enabled: Settings > Objects > Companies > "Create and associate companies with contacts" toggle must be ON. This lets HubSpot automatically create company records from email domains and associate them.
Plan
- Enable auto-association if not already on
- Audit how many contacts are missing company name (before state)
- Build a workflow that copies company name from the associated company record
- Optionally run an API backfill script for immediate results
- Verify enrichment results (after state)
Before State
Run a before-state audit to capture the baseline.
Script approach (recommended):
import os
from hubspot import HubSpot
from dotenv import load_dotenv
load_dotenv()
api_client = HubSpot(access_token=os.getenv("HUBSPOT_API_TOKEN"))
# Count contacts missing company name
result = api_client.crm.contacts.search_api.do_search(
public_object_search_request={
"filterGroups": [{
"filters": [{
"propertyName": "company",
"operator": "NOT_HAS_PROPERTY"
}]
}],
"limit": 0
}
)
print(f"Contacts missing company name: {result.total}")
Manual approach: Go to Contacts > filter by Company name > is unknown. Record the count.
Save the count. This is your baseline for measuring success.
Execute
Method 1: HubSpot Workflow (Recommended — Handles Backlog + Future)
- Go to Automation > Workflows > Create workflow
- Select Contact-based > Blank workflow
- Name:
AUTO-ENRICH: Copy Company Name from Association
Enrollment trigger:
- Contact property > Company name > is unknown
Re-enrollment:
- Enable re-enrollment when associated company changes. This is the safety net: if an association forms after the workflow already ran, the contact gets re-enrolled.
Action 1: Delay 10 minutes
- This delay is critical. When a new contact enters HubSpot, the auto-association engine needs time to parse the email domain, find or create a matching company, and create the association. Without this delay, the workflow checks for an association before one exists.
Action 2: If/then branch
- Condition: Associated company > Company name (or Name) > is known
- YES branch: Add a Copy property action:
- Copy FROM: Company > Name
- Copy TO: Contact > Company name
- NO branch: Leave empty (contact exits). These are typically contacts with personal email addresses (gmail, yahoo, etc.) where no company can be determined.
Activate:
- Click Review > Turn on
- When prompted, select Yes, enroll existing contacts. This enrolls the entire backlog.
Method 2: API Backfill Script (Optional — Immediate Results)
Use this if you need the data populated immediately rather than waiting for workflow processing.
# Pattern: Fetch contacts missing company name,
# look up their associated company, copy the name
from hubspot import HubSpot
api_client = HubSpot(access_token=os.getenv("HUBSPOT_API_TOKEN"))
# 1. Search for contacts missing company name
# 2. For each, get associations to companies
# 3. Fetch the primary company's name
# 4. Batch update the contact's company property
Key API notes:
- Use the Search API to find contacts where
companyNOT_HAS_PROPERTY - Search API caps at 10,000 results. Segment by
createdateranges if needed. - Use Associations API v4 to get contact-to-company associations
- Batch update contacts using
crm.contacts.batch_api.update - Respect rate limits: 100 requests per 10 seconds
Why Do Both?
- The workflow handles both backlog (enrolled on activation) AND future contacts automatically. It is the long-term solution.
- The API backfill provides immediate results if you cannot wait for workflow processing (which may take hours for large databases).
- If you only do the workflow, that is perfectly fine. It will process the backlog since existing contacts meeting the trigger criteria get enrolled on activation.
After State
Wait 1-2 hours after activating the workflow (longer for very large databases), then verify.
Script approach:
# Same search as before-state script
result = api_client.crm.contacts.search_api.do_search(
public_object_search_request={
"filterGroups": [{
"filters": [{
"propertyName": "company",
"operator": "NOT_HAS_PROPERTY"
}]
}],
"limit": 0
}
)
print(f"Contacts still missing company name: {result.total}")
Verification checklist:
- The "missing company name" count should have dropped dramatically (typically from 40-60% to under 10%)
- Remaining contacts without company names should primarily be those with personal email addresses (gmail.com, yahoo.com, etc.)
- Spot-check 10-20 contacts to confirm the company name matches their associated company record
- Check workflow history for errors:
- Property type mismatch (copying to wrong field type)
- Multiple associated companies (HubSpot uses the primary company)
- Verify the workflow continues processing new contacts by checking for recent enrollments
Key Technical Learnings
- The 10-minute delay is a balance. Auto-association typically completes in a few minutes, but 10 minutes provides a comfortable buffer. If many contacts go down the NO branch and later get associations, increase to 15-20 minutes.
- Re-enrollment is the safety net. Even if the delay is not long enough, re-enrollment on "associated company changes" catches late associations. The delay handles the common case; re-enrollment handles edge cases.
- Primary company wins. If a contact is associated with multiple companies, HubSpot copies from the primary associated company. Verify primary associations are correct for key contacts.
- This workflow does NOT overwrite existing values. The enrollment trigger requires "Company name is unknown", so contacts with an existing company name are never touched.
- Property type matters. Contact "Company name" is a single-line text field by default. If someone changed it to a dropdown, the copy action may fail. Check in Settings > Properties before running.
- Personal email domains exit on the NO branch. Contacts with gmail.com, yahoo.com, hotmail.com, outlook.com, etc. will not get enriched. This is expected. They need manual enrichment or a third-party tool (ZoomInfo, Clearbit, Apollo) to determine their company.
- Company name is a prerequisite for ICP Tier classification. Run this enrichment before creating ICP Tier workflows.
- Schedule the "after" verification script. Workflow processing for large databases takes time. Do not check results immediately — schedule the verification for 2-4 hours after activation.
GitHub 저장소
연관 스킬
qmd
개발qmd는 BM25, 벡터 임베딩, 재순위화를 결합한 하이브리드 검색을 통해 로컬 파일을 색인화하고 검색할 수 있는 로컬 검색 및 색인화 CLI 도구입니다. 명령줄 사용과 Claude 통합을 위한 MCP(Model Context Protocol) 모드를 모두 지원합니다. 이 도구는 임베딩에 Ollama를 사용하고 색인을 로컬에 저장하여 터미널에서 직접 문서나 코드베이스를 검색하는 데 이상적입니다.
subagent-driven-development
개발이 스킬은 각 독립적인 작업마다 새로운 하위 에이전트를 배치하고 작업 사이에 코드 리뷰를 진행하여 구현 계획을 실행합니다. 이 리뷰 프로세스를 통해 품질 게이트를 유지하면서 빠른 반복 작업을 가능하게 합니다. 동일한 세션 내에서 대부분 독립적인 작업을 진행할 때 내장된 품질 검증과 함께 지속적인 진행을 보장하기 위해 사용하세요.
mcporter
개발mcporter 스킬은 개발자가 Claude에서 직접 Model Context Protocol(MCP) 서버를 관리하고 호출할 수 있도록 합니다. 이 스킬은 사용 가능한 서버를 나열하고, 인수를 사용해 해당 서버의 도구를 호출하며, 인증 및 데몬 생명주기를 처리하는 명령어를 제공합니다. 개발 워크플로우에서 MCP 서버 기능을 통합하고 테스트할 때 이 스킬을 사용하세요.
adk-deployment-specialist
개발이 스킬은 A2A 프로토콜을 사용하여 Vertex AI ADK 에이전트를 배포하고 오케스트레이션하며, AgentCard 검색, 작업 제출, 코드 실행 샌드박스 및 메모리 뱅크와 같은 지원 도구를 관리합니다. Python, Java 또는 Go 언어로 순차, 병렬 또는 루프 오케스트레이션 패턴을 갖춘 다중 에이전트 시스템 구축을 가능하게 합니다. Google Cloud에서 ADK 에이전트 배포 또는 에이전트 워크플로우 오케스트레이션을 요청받았을 때 사용하세요.
