RevOps Playbook: HubSpot–Salesforce Field Mapping and Lifecycle Design

Purpose and Scope

This playbook defines a practical, low‑friction field map and lifecycle contract for the HubSpot–Salesforce integration. It establishes a shared vocabulary for Marketing, Sales, and RevOps, constrains unnecessary sync, and ensures the two systems reflect the same business reality without fighting over ownership. The outcome is fewer duplicates, higher SLA adherence, and reporting that leadership trusts.

Principles

Object Coverage

Field Map Framework

Segment fields by purpose:

  1. Identity: email, user_id, company domain, external_id. One‑way from creator to consumer with strict normalization; never overwritten by enrichment.
  2. Routing and SLA: lead_source, country/state, segment, territory_code, inferred_industry. Owner is Salesforce; HubSpot proposes only when empty.
  3. Lifecycle: lifecycle_stage, mql_date, sal_date, sql_date, lifecycle_cohort. HubSpot owns pre‑SQL; Salesforce writes post‑SQL outcomes.
  4. Sales context: last_touch_channel, primary_intent, last_engagement_date. HubSpot → Salesforce one‑way.
  5. Revenue outcomes: opportunity_stage, amount, close_date, is_closed_won. Salesforce → HubSpot one‑way.
  6. Governance: do_not_market, do_not_sell_share, consent_source, consent_date. Single source of truth replicated to both systems.

Minimal Viable Field Set (MVP)

Contacts/Leads:

Companies/Accounts:

Deals/Opportunities:

Picklist Harmonization

Create a cross‑system list for key picks: Country, State/Province, Lead Status, Lifecycle Stage, Persona, Segment, Industry (high‑level). In HubSpot, restrict editors to the same option set as Salesforce to avoid drift. Document allowed transitions (e.g., Lead Status: New → Working → Nurturing → Qualified/Unqualified). Denormalize for analytics only in derived fields (e.g., Lifecycle Cohort YYYY‑MM).

Lifecycle Model

Define lifecycle stages in HubSpot and mirror salient milestones in Salesforce.

Scoring and Qualification

Build a transparent score with a small ruleset (intent, engagement, firmographic fit). Publish boundary values for MQL so Sales can understand the pipeline mix. Record “qualification reason” and “disqualification reason” in controlled picklists—these are key feedback signals into nurture and product.

Sync Directions by Lifecycle

Data Entry Controls

Shadow Field Pattern

For volatile or low‑confidence inputs (e.g., enrichment or inferred industry), write into shadow fields (enriched_industry, inferred_industry). Promote to the canonical field when confidence exceeds threshold, the user hasn’t edited in X days, and a rule permits overwrite. This prevents clobbering clean data.

Testing and UAT

  1. Build a sandbox map: replicate a small, representative dataset with duplicates and edge cases.
  2. Run directionality tests: confirm no oscillation on bidirectional fields by simulating edits in both systems.
  3. Validate lifecycle: walk sample records through MQL → SAL → SQL → Closed Won/Lost; verify timestamps and ownership transitions.
  4. Reconcile dashboards: HubSpot and Salesforce should agree on cohort counts within 3–5%.

Change Control

Treat field mapping as code:

Common Anti‑Patterns

Example Field Dictionary Snippet

This example illustrates decision‑oriented mapping and ownership.

Reporting Enablers

Rollout Plan

  1. Week 1: inventory, dictionary draft, and stakeholder review.
  2. Week 2: sandbox implementation; build forms validation and page layouts.
  3. Week 3: UAT with sample records; adjust picklists and directions.
  4. Week 4: production release; hypercare with daily reconciliation.

FAQ

How many fields should we sync at MVP?

Aim for 20–30 decision‑driving fields across Contacts/Leads, Companies/Accounts, and Deals/Opportunities. Add fields only when a clear decision or report needs them.

Can lifecycle_stage be bidirectional?

Avoid it. Let HubSpot own pre‑SQL and Salesforce own post‑SQL outcomes. Mirror the non‑owner’s values as read‑only to maintain context.

What if Sales edits marketing fields like persona or industry?

Permit edits only if the fields are normalized picklists and guarded. Consider shadow fields so human edits are not overwritten by enrichment unless confidence is high.

How do we handle multiple brands or regions?

Reuse the core dictionary; overlay brand/geo codes and territory logic in Salesforce. Push only the minimum necessary segmentation flags back to HubSpot.

What breaks most integrations?

Free‑text sources, uncontrolled picklists, and unclear ownership. Enforce validation, document the dictionary, and automate reconciliation.

More RevOps Playbooks from Bles Software