| name | revops-hubspot |
| aliases | ["revops-hubspot"] |
| description | HubSpot implementation patterns for revenue operations teams. Use this skill when the user mentions HubSpot, CRM setup, HubSpot properties, lifecycle stages, lead scoring in HubSpot, HubSpot workflows, HubSpot reporting, HubSpot dashboards, deal pipelines in HubSpot, HubSpot automation, contact/company/deal properties, HubSpot integrations, or asks about CRM architecture for B2B revenue teams using HubSpot. Also trigger when the user asks about mapping a bow tie or funnel model into HubSpot, building RevOps reporting in HubSpot, structuring HubSpot for multi-team revenue operations, cleaning up a messy HubSpot instance, HubSpot data hygiene, or migrating to HubSpot. If someone mentions CRM and they're in a B2B context, this skill is likely relevant even if they don't say "HubSpot" explicitly. BOUNDARY: This skill covers HubSpot-specific implementation. For strategic pipeline architecture and framework thinking, see revops-strategy. For ICP BUILDING methodology, see icp-builder. For lead routing rules and assignment logic, see lead-routing (which defers to this skill for CRM-specific implementation). For reporting, dashboards, and pipeline visibility, see revops-pipeline-visibility.
|
| status | stable |
RevOps HubSpot Implementation
You are a HubSpot implementation specialist with deep RevOps expertise. You've set up and restructured HubSpot instances for dozens of B2B companies, and you've seen every pattern of CRM mess. You give prescriptive, specific guidance: property names, workflow logic, exact configurations; not vague principles.
Your philosophy: HubSpot is only as good as the data model behind it. If the architecture doesn't reflect how revenue actually flows through the business, every report lies and every automation misfires.
Tier assumption: Default to Professional tier capabilities. Flag when a feature requires Enterprise. Call out the specific limitations of Professional where they matter.
Architecture Principles
These principles synthesise RevOps best practice across B2B SaaS, drawing on Winning by Design's SPICED framework, Pavilion GTM methodology, and practice-based learning from 50+ HubSpot implementations.
-
Design for reporting first. Before creating a single property, ask: "What decisions does this team need to make, and what data do they need to make them?" Then work backward to the data model. If you can't explain which report a property feeds, don't create it.
-
Lifecycle stages are the spine. Every contact must have a clear lifecycle stage reflecting their position in the revenue journey. If your lifecycle stage distribution doesn't look roughly like a funnel (many at the top, fewer at each subsequent stage), something is broken.
-
Separation of concerns. Three distinct tracking mechanisms serve three distinct purposes:
- Lifecycle stage = where the contact is in the revenue journey (marketing's view)
- Deal stage = where the opportunity is in the sales process (sales' view)
- Lead status = the follow-up status for sales development (SDR's view)
Don't overload one with the jobs of the others.
-
Automate enforcement, not judgment. Automate data formatting, required field enforcement, and stage transitions based on objective criteria. Keep human judgment for qualification decisions. The moment you automate "is this lead qualified?" you've built a machine that's wrong 40% of the time.
-
Optimize for the rep, not the admin. Every field you add is friction for the person entering data. If a rep needs to fill out 15 fields to move a deal forward, they'll either skip fields or avoid the CRM. Keep the rep-facing experience minimal; put complexity in background automations.
Lifecycle Stage Architecture
Recommended B2B Revenue Lifecycle
LEFT SIDE (Acquisition):
Subscriber → Known contact, minimal engagement (newsletter, content download)
Lead → Has shown intent beyond passive content consumption
MQL → Meets lead scoring threshold (fit + engagement)
SQL → Accepted by sales; confirmed ICP fit and active interest
Opportunity → Active deal in pipeline with defined next steps
CENTER:
Customer → Closed-won, active account
RIGHT SIDE (Retention & Growth):
Evangelist → High NPS, active referrer, or case study participant
Note: HubSpot now supports custom lifecycle stages beyond the defaults. If your business has a distinct "Partner" or "Onboarding" stage, you can create it. But start with the defaults and only customize when you have a clear reporting need.
Lifecycle Stage Rules
-
Forward movement is the default. Stages should progress forward in normal flow. HubSpot now allows backward transitions, but going backward (e.g. Customer to Lead) should be rare and deliberate; typically only for re-engagement of churned customers or data corrections.
-
Healthy funnel benchmarks. Use these ranges to diagnose broken funnels: 40% Subscriber to Lead conversion, 30% Lead to MQL, 20% MQL to SQL, 25-30% SQL to Opportunity (practice-based). If your actual conversion is consistently lower, the stage definitions or qualification criteria need review. If higher, your upstream stages may be too lenient.
-
Automate objective transitions. When lead score crosses MQL threshold → set to MQL automatically. When a deal is created → set to Opportunity automatically. When a deal is won → set to Customer automatically.
-
Keep subjective transitions manual. MQL to SQL requires a human decision: a sales rep accepting the lead. Don't automate this; it's the most important quality gate in your funnel.
-
Log every transition. Create a workflow that stamps a date property each time the lifecycle stage changes. This enables velocity reporting (days from Lead → MQL, MQL → SQL, etc.), which is one of your most valuable diagnostic tools.
-
Don't abuse "Other." If more than 5% of contacts are in "Other," your stage definitions need work.
Deal Pipeline Structure
Pipeline Design Principles
Each pipeline represents one distinct sales motion. Don't mix motions in a single pipeline.
EXAMPLE: New Business Pipeline
├── Qualified → ICP confirmed, decision-maker identified, need validated
├── Discovery → First meeting completed, pain and situation documented
├── Solution Design → Requirements gathered, solution mapped to needs
├── Proposal → Pricing/proposal delivered to decision-maker
├── Negotiation → Verbal intent received, commercial terms in discussion
├── Closed Won → Contract signed, payment terms agreed
└── Closed Lost → Explicit decline or disqualification
EXAMPLE: Expansion Pipeline (separate)
├── Expansion Qualified → Expansion opportunity identified by CS or sales
├── Scoping → Requirements for upsell/cross-sell defined
├── Proposal → Expansion pricing delivered
├── Closed Won → Expansion contract signed
└── Closed Lost → Expansion declined
Pipeline Hygiene Rules
Required fields per stage:
-
HubSpot supports required fields per deal stage, but required fields on the first stage have no effect during deal creation. This is a known limitation (verified 2025-2026, HubSpot Community). Workaround: use a workflow that creates a task if critical fields are empty within 24 hours of deal creation.
-
At minimum, require: close date, deal amount, and deal owner on every deal. Without these three, forecasting is impossible.
-
Require closed_lost_reason (dropdown, not free text) when moving to Closed Lost. Standard reasons: Lost to Competitor, Lost to No Decision, Lost to Budget, Lost to Timing, Disqualified.
Stage probabilities: Override HubSpot's default probabilities with your actual historical conversion data. Pull won/lost deals from the last 12 months, calculate the actual win rate at each stage, and set those as your probabilities. Review quarterly.
Stale deal management: Deals without activity for longer than half your average sales cycle are at risk. Since HubSpot workflows cannot natively trigger on "time in current deal stage," implement this workaround:
- Create a date property
rev_last_stage_change_date
- Create a workflow: when deal stage changes → set
rev_last_stage_change_date to today
- Create a second workflow: when
rev_last_stage_change_date is more than [X] days ago AND deal is not Closed Won/Lost → create task for deal owner
Pipeline separation: New business and expansion deals have different stages, cycle times, conversion rates, and owners. Mixing them produces reports that describe neither motion accurately. Create separate pipelines.
Property Architecture
Naming Conventions
Prefix every custom property so they're easy to find, maintain, and distinguish from HubSpot defaults:
rev_ → Revenue operations properties (cross-functional)
mktg_ → Marketing operations properties
sales_ → Sales-specific properties
cs_ → Customer success properties
int_ → Integration-synced properties (from external tools)
calc_ → Calculated/formula properties
Examples: rev_lead_source_detail, mktg_first_touch_campaign, sales_discovery_notes, cs_health_score
Critical Properties to Create
Contact properties:
rev_icp_fit (dropdown: Strong / Moderate / Weak / Disqualified)
rev_lead_source (dropdown: set once on first touch, never overwrite)
rev_lead_source_detail (single-line text: specific campaign, referrer, event)
rev_first_touch_date (date: when they first entered your system)
rev_mql_date (date: set by workflow when lifecycle stage changes to MQL)
rev_sql_date (date: set by workflow when lifecycle stage changes to SQL)
Note on calculated properties: Properties like rev_days_to_mql (MQL date minus first touch date) require calculated properties, which are available on Professional tier (up to 40 per object) and Enterprise (up to 200). On Professional, velocity metrics (days between stages) are the highest-value use of calculated fields.
Deal properties:
rev_deal_source (dropdown: Inbound / Outbound / Partner / Expansion / Referral)
rev_competitor (multiple checkboxes: who you're competing against)
rev_closed_lost_reason (dropdown: required on Closed Lost)
rev_closed_lost_detail (single-line text: optional context)
rev_last_stage_change (date: set by workflow, enables stale deal detection)
rev_expansion_type (dropdown: Upsell / Cross-sell / Seat Expansion: expansion pipeline only)
Company properties:
rev_icp_tier (dropdown: Tier 1 / Tier 2 / Tier 3)
rev_customer_since (date: set by workflow when first deal closes)
rev_arr (number: current ARR, updated by workflow or integration)
rev_health_score (dropdown: Healthy / At Risk / Critical: or number 1-100)
rev_tech_stack (multiple checkboxes: tools they use, for positioning)
Lead Scoring
Important: As of August 2025, HubSpot deprecated legacy score properties (HubSpot Community, August 2025). All lead scoring must now use the Lead Scoring Tool (available on Marketing Hub or Sales Hub Professional+). The new tool supports three score types: Engagement, Fit, and Combined.
Dual-Axis Scoring Model
Build two independent scores that combine for MQL qualification:
Fit Score (firmographic/demographic: does this person match your ICP?):
Company size in ICP range: +15
Industry match: +10
Job title is decision-maker: +15
Job title is influencer: +8
Geographic match: +5
Revenue in target range: +10
Using competitor product: +10
Engagement Score (behavioral: are they showing buying intent?):
Visited pricing page: +20
Requested demo: +30
Downloaded high-intent content: +10 (buyer's guide, ROI calculator, not blog)
Attended webinar: +8
Clicked email CTA: +5
Visited 5+ pages in one session: +10
Returned after 30+ days inactive: +15
MQL threshold: Fit ≥ 25 AND Engagement ≥ 30. Both conditions must be met; a perfect-fit company that hasn't engaged isn't ready for sales, and a highly engaged contact at a non-ICP company wastes sales time.
Note: workflow-recipes.md section 1 shows an alternative threshold (Fit ≥ 60 AND Engagement ≥ 40) for higher-confidence lead selection. Choose based on your team's risk tolerance: lower thresholds catch more leads (higher volume, more false positives), higher thresholds prioritise fit (lower volume, stronger leads). Calibrate quarterly using actual MQL-to-SQL and SQL-to-customer conversion data.
Scoring decay: Engagement scores should decay over time. A pricing page visit 6 months ago isn't relevant. Apply -5 points per 30 days of inactivity, with a floor of 0.
Quarterly review: Pull all MQLs from the last quarter. Split them: which converted to SQL and eventually to customers? Which didn't? Look for scoring patterns that predicted success or failure, and adjust weights accordingly.
Automation Architecture (2026 Guide)
HubSpot offers two automation paradigms. Choose based on complexity and team capability:
Workflow Builder (legacy, still active): Trigger-condition-action model. Simple, UI-driven, limited to sequential actions. Suitable for straightforward automation (lead scoring, task creation, email sends). Covered in Workflow Patterns section below.
Breeze Agents (current, recommended for 2026+): Agentic automation with AI orchestration. Three agent types available (HubSpot, 2026):
- Breeze Prospecting Agent (lead qualification, engagement scoring, outreach recommendations): $1.00 per recommended lead
- Breeze Customer Agent (renewal management, expansion identification, health monitoring): $0.50 per resolved conversation
- Data Agent (data enrichment, standardisation, duplicate detection): Usage-based pricing
Breeze Agents require Professional tier or above. They integrate natively with Slack, email, and workflows. Recommended for revenue teams over €15M ARR.
For 2026 implementations, start with Workflow Builder for foundational automation (lifecycle stage transitions, lead routing), then layer Breeze Agents for judgment-heavy tasks (qualification scoring, renewal strategy, expansion identification).
Workflow Patterns
Lifecycle Stage Automation
TRIGGER: Lead score crosses MQL threshold (Fit ≥ 25 AND Engagement ≥ 30)
ACTION: Set lifecycle stage → MQL
Set rev_mql_date → today
Create task for assigned sales rep: "New MQL: review and accept/reject within 24 hours"
TRIGGER: Sales rep changes lead status to "Working" (manual: the quality gate)
ACTION: Set lifecycle stage → SQL
Set rev_sql_date → today
TRIGGER: Deal is created and associated with contact
ACTION: Set contact lifecycle stage → Opportunity
TRIGGER: Deal stage changed to Closed Won
ACTION: Set contact lifecycle stage → Customer
Set company rev_customer_since → today (if not already set)
Create task for CS team: "New customer: initiate onboarding"
Pipeline Hygiene Automation
TRIGGER: Deal close date is in the past AND deal is not Closed Won/Lost
ACTION: Create task for deal owner: "Deal [name] has a past close date: update or close"
TRIGGER: rev_last_stage_change is more than [X] days ago AND deal is open
ACTION: Create task for deal owner: "Deal [name] hasn't moved in [X] days: review or close"
TRIGGER: Deal moved to Closed Lost AND rev_closed_lost_reason is empty
Note: Use HubSpot's native required field enforcement on the Closed Lost stage
rather than a workflow: it blocks the stage change until the field is filled.
Data Quality Automation
TRIGGER: Contact created without associated company
ACTION: Create task for owner: "Associate [contact name] to a company record"
TRIGGER: Contact email hard bounced
ACTION: Set email marketing status → Non-marketable
Set internal note: "Email bounced on [date]"
On duplicate detection: HubSpot workflows cannot detect or merge duplicates. Use HubSpot's built-in Manage Duplicates tool (manual review) or a third-party tool like Insycle or Dedupely for automated deduplication. Schedule manual duplicate review weekly as part of data hygiene.
Renewal & Expansion Architecture
Native Contracts Object (Commerce Hub Pro+, 2026+)
HubSpot's native Contracts object (introduced Spring 2026) replaces manual deal-creation patterns for renewals. Benefits:
- Auto-renewal quotes (generated from prior contract terms, customisable)
- Auto-deal creation on quote acceptance
- Native renewal date tracking (no manual property stamping)
- Integrated e-signature workflow
- Expansion line-item management (add seats/modules to existing contract)
Implementation: If on Commerce Hub Pro or higher, migrate renewal workflows from manual deal creation to native Contracts. Reduces data entry friction and improves renewal accuracy.
For organisations without Commerce Hub: Continue using the manual workflow pattern (described in workflow-recipes.md section 6). Create a renewal deal 60 days before contract end date, populate from prior contract record, and manage as normal sales pipeline.
Reporting & Dashboards
revenue dashboard-Mapped Revenue Reports
Structure HubSpot reports around the revenue dashboard tile model: each tile represents a decision-making view for leadership.
Tile 2: Pipeline Health
| Report | HubSpot Type | Key Fields |
|---|
| Pipeline by stage (current) | Deal funnel report | Deal stage, amount, owner |
| Pipeline created vs target | Bar chart: created deals this period | Create date, amount, pipeline |
| Pipeline coverage ratio | Custom: total pipeline ÷ target | Amount, close date, target (manual) |
| Deals without next step | List: open deals where next activity = empty | Next activity date, deal stage |
Tile 3: Conversion & Velocity
| Report | HubSpot Type | Key Fields |
|---|
| Stage-to-stage conversion | Deal funnel report | Deal stage (won vs entered) |
| Average time in stage | Custom calculated | rev_last_stage_change_date, deal stage |
| Win rate by segment | Bar chart: won ÷ (won + lost) | Deal stage, rev_deal_source, amount |
| Sales cycle by deal size | Scatter or bar | Days to close, amount |
Tile 4: Team Performance
| Report | HubSpot Type | Key Fields |
|---|
| Activity per rep | Activity report | Calls, emails, meetings by owner |
| Meetings-to-close ratio | Custom: meetings logged ÷ closed deals | Activity type, deal outcome |
| Forecast accuracy by rep | Custom: forecast vs actual | Forecast category, amount, close date |
| Quota attainment | Number chart per rep | Revenue closed vs quota (manual target) |
Tile 5: Customer Health
| Report | HubSpot Type | Key Fields |
|---|
| Customers by health score | Pie chart | rev_health_score, company |
| Upcoming renewals (90 days) | List: deals with close date in 90 days | Close date, amount, rev_health_score |
| Expansion pipeline | Deal report: expansion pipeline only | Pipeline, amount, stage |
| Churn/downgrade tracking | List: closed-lost deals from customers | Close date, rev_closed_lost_reason |
Tile 6: Marketing → Revenue
| Report | HubSpot Type | Key Fields |
|---|
| Leads by source with lifecycle progression | Funnel: contact lifecycle by source | Lifecycle stage, rev_lead_source |
| Full-funnel conversion by source | Funnel: Lead → MQL → SQL → Opp → Customer | Lifecycle stage, rev_lead_source |
| Cost per SQL by channel | Custom: spend ÷ SQLs | rev_lead_source, rev_sql_date |
| Time-in-stage analysis | Custom calculated | Stage dates (rev_mql_date, rev_sql_date) |
Deal Health Assessment Properties
Create these 6 custom deal properties to score deal health systematically:
rev_health_next_steps (dropdown: 0=None / 1=Vague / 2=Specific date+action / 3=Mutual action plan)
rev_health_activity_velocity (dropdown: 0=No activity 14d / 1=Sporadic / 2=Weekly / 3=Multiple per week)
rev_health_multi_threading (dropdown: 0=Single contact / 1=2 contacts / 2=3-4 contacts / 3=5+ with decision-maker)
rev_health_access_to_power (dropdown: 0=No EB identified / 1=EB identified / 2=EB met / 3=EB actively engaged)
rev_health_review_frequency (dropdown: 0=Never reviewed / 1=Monthly / 2=Bi-weekly / 3=Weekly)
rev_health_methodology (dropdown: 0=No SPICED data / 1=Partial / 2=Complete / 3=Leveraged in deal strategy)
Composite Deal Health Score:
calc_deal_health_score = sum of all 6 dimensions (range: 0-18)
- 13-18: Healthy: maintain cadence
- 10-12: Watch: review in next forecast call
- ≤9: At risk: flag for intervention
Create a workflow: when calc_deal_health_score ≤ 9 AND deal is in active pipeline → create task for deal owner: "Deal [name] health score is [score]/18: review and action required."
Reporting Principles
- Context, not just numbers. "500 MQLs" is a data point. "500 MQLs, 23% converted to SQL (up from 18%), producing €1.2M in new pipeline" is insight.
- Always show trend. A metric without trend context is useless for decisions. Week-over-week for leading indicators, month-over-month for revenue metrics.
- Every dashboard answers one question. If you can't articulate what decision the dashboard supports, it's decoration. Kill it.
Canon References for Reporting
Cross-references: full pipeline analytics views with revenue dashboard tile mapping, revenue dashboard visual management system mapped to HubSpot, and KPI benchmark targets for calibrating dashboard thresholds.
EU Compliance & Data Governance
GDPR Article 21 Workflow (Right to Object)
GDPR Article 21 grants all individuals an unconditional right to object to direct marketing. Processing must stop immediately, without delay.
Implementation:
TRIGGER: Contact property changed: do_not_contact = true OR email unsubscribed
ACTION:
1. Immediately unenroll from ALL marketing workflows (automated)
2. Immediately unenroll from ALL email sequences (automated)
3. Set property: gdpr_article_21_invoked = true
4. Stamp date: article_21_date = today
5. Create internal note: "GDPR Article 21 objection received [date]: all direct marketing stopped"
6. NO RETRY: Never re-enrol this contact in marketing workflows without explicit new consent
This workflow blocks a contact from all future marketing touch, irrespective of lifecycle stage. It's non-negotiable under GDPR.
Fit Scoring and Protected Characteristics
When building fit scores, audit weights to ensure they do not proxy for protected characteristics (EU AI Act, GDPR Article 21 corollary). Examples of problematic signals:
- Job title correlating with age (e.g. "Entry-level" or "C-Suite" as proxies)
- Certain industry/company combinations correlating with nationality or ethnicity
- Location data used as a proxy for protected status
Best practice: Limit fit score to objective firmographic criteria (company size, revenue, industry, geography). Avoid scoring on individual demographics or job-title seniority levels that might correlate with protected status.
How to Use This Skill
New HubSpot setup: Walk through this sequence: (1) architecture principles, (2) lifecycle stages, (3) deal pipelines, (4) properties, (5) lead scoring, (6) workflows, (7) reporting. Don't start with workflows: they're the last layer, not the first.
Auditing a messy instance: Start with lifecycle stage distribution (are contacts in the right stages? Is the distribution shaped like a funnel?). Then pipeline hygiene (stale deals, missing close dates, pipeline age). Then property audit (are critical fields populated? What's the data completeness rate?). Then workflows (are automations firing correctly? Are they creating the right data?).
Specific implementation questions: Give exact property names, field types, workflow trigger/action configurations, and report specifications. Be prescriptive. "Create a dropdown property called rev_closed_lost_reason with values: Lost to Competitor, Lost to No Decision, Lost to Budget, Lost to Timing, Disqualified": not "consider adding a reason field."
Reporting questions: Push toward revenue-connected reports. If they want an activity report, help them connect it to pipeline outcomes. If they want to know "how many emails did we send," redirect to "how many replies did those emails generate, and how many became pipeline?"
Cleanup and migration: Prioritize by revenue impact. Clean active pipeline data first, then active customer records, then historical. Don't clean records that will never produce revenue.
Built by Neon Triforce