AgentSkillsCN

Hubspot Operations

Hubspot 运营

SKILL.md

HubSpot CRM Operations Skill

Purpose: Design and implement HubSpot workflows, custom properties, deal pipelines, and reporting. Build lead routing, enrichment sync, and data quality automation.

When to Use This Skill

Use this skill when:

  • Designing HubSpot workflows and automation
  • Creating custom property architecture
  • Building deal pipeline and lifecycle stages
  • Implementing lead routing and assignment
  • Setting up reporting and dashboards
  • Managing data quality and deduplication

Workflow Patterns

Lead Routing Workflow

code
New Lead Created
       ↓
Check Lead Source → Assign Owner Based on Rules
       ↓
├── Inbound Demo → Round Robin (AEs)
├── Outbound Reply → Original Sequence Owner
├── Partner Referral → Partner Manager
└── Enterprise (>500 emp) → Named Account Owner
       ↓
Send Notification → Create Task

Deal Stage Progression

code
Discovery → Qualification → Demo → Proposal → Negotiation → Closed
    ↓           ↓            ↓        ↓            ↓
[Auto-tasks] [Required]  [Meeting] [Doc Gen]  [Approval]
            [Properties]  [Booked]

Enrichment Sync Pattern

code
Clay Webhook → HubSpot Workflow
       ↓
Parse Enrichment Data
       ↓
├── Company exists? → Update properties
└── Company new? → Create + Associate contacts
       ↓
Set "Last Enriched" timestamp
       ↓
Trigger segmentation re-evaluation

Custom Property Architecture

Naming Convention

code
[Object]_[Category]_[Property Name]

Examples:
- contact_enrichment_last_enriched_date
- company_signal_tech_stack_score
- deal_process_forecast_category

Property Categories

CategoryPurposeExamples
EnrichmentData from Clay/Apollotech_stack, funding_stage
SignalIntent/pain indicatorsintent_score, pain_signals
ProcessInternal workflow datarouting_reason, sla_status
AttributionMarketing touchpointsfirst_touch, last_touch

Required Properties by Object

Contacts:

  • Lead Source
  • Lead Status
  • Last Enriched Date
  • Enrichment Confidence

Companies:

  • Industry (standardized)
  • Employee Range
  • Tech Stack (multi-select)
  • Signal Score (calculated)

Deals:

  • Forecast Category
  • Competitor Mentioned
  • Use Case
  • Champion Contact

Lead Routing Logic

Territory Assignment

javascript
// Pseudo-logic for HubSpot workflow
IF company.region == "EMEA" THEN
  IF company.employees > 1000 THEN
    owner = enterprise_ae_emea
  ELSE
    owner = round_robin(smb_team_emea)
  END
ELSE IF company.region == "APAC" THEN
  owner = apac_team_lead
ELSE
  // Default to North America
  IF company.state IN named_account_territories THEN
    owner = territory_lookup(company.state)
  ELSE
    owner = round_robin(na_team)
  END
END

Capacity Checking

Before assignment:

  1. Check owner's current open deals
  2. Compare against capacity limit
  3. If over capacity → next in rotation
  4. Log assignment reason

Data Quality Management

Deduplication Strategy

ObjectMatch CriteriaAction
ContactsEmail (exact)Merge, keep most recent
CompaniesDomain (normalized)Merge, keep most complete
DealsCompany + Close DateFlag for review

Hygiene Workflows

Weekly:

  • Flag contacts with bounced email
  • Identify companies without recent activity
  • Check for duplicate detection

Monthly:

  • Standardize industry values
  • Normalize job titles
  • Archive stale records

Reporting Templates

Pipeline Dashboard

ReportMetricsFilters
Pipeline by StageCount, ValueClose Date = This Quarter
Stage VelocityAvg Days in StageCreated = Last 90 Days
Win Rate by SourceWon/TotalClosed = Last Quarter
Forecast vs ActualCommit vs ClosedBy Rep, By Month

Lead Performance

ReportMetricsPurpose
Lead to MQLConversion Rate, TimeFunnel efficiency
MQL to SQLConversion RateSDR effectiveness
Source PerformanceLeads, MQLs, OppsChannel ROI

Integration Patterns

Clay → HubSpot

code
Trigger: New row in Clay table
       ↓
Webhook to HubSpot workflow
       ↓
Parse payload:
- company_domain
- enrichment_data (JSON)
- signal_scores
       ↓
Lookup company by domain
       ↓
Update/Create with enrichment
       ↓
Associate contacts if included

Slack Notifications

code
Deal Stage = "Closed Won"
       ↓
Format message:
🎉 Deal closed: {deal.name}
Value: {deal.amount}
Owner: {deal.owner}
Days to close: {calculated}
       ↓
Send to #wins channel

Troubleshooting

IssueDiagnosisSolution
Workflow not triggeringCheck enrollment criteriaReview filters, test with known record
Properties not updatingCheck field mappingVerify property type matches data
Duplicates createdLookup failingAdd unique identifier check
Slow workflowsToo many actionsBreak into multiple workflows

Best Practices

  1. Always test in sandbox before production changes
  2. Document workflow logic in workflow description
  3. Use delay actions to avoid rate limits
  4. Set up error notifications for workflow failures
  5. Version control major workflow changes (screenshots + notes)
  6. Regular audit of active workflows (monthly)