HubSpot–Salesforce Field Mapping and Sync Rules: The RevOps Playbook
Field mapping is the backbone of a reliable HubSpot–Salesforce integration. It directly determines whether routing works, segments stay accurate, and reports match across systems. This playbook gives you a prescriptive approach to inventory fields, assign ownership, normalize values, and configure sync rules without loops or drift. It also includes sample patterns for lifecycle, consent, campaign membership, and pipeline fields that most teams rely on.
Goals of a Mapping Strategy
Your objective is not to mirror every field. It is to expose the right, governed set of data where each property has a clear purpose, owner, and lifecycle. A good strategy:
- Minimizes mapped surface area while maximizing business value.
- Prevents write conflicts by declaring a single source of truth for each property.
- Harmonizes picklists and units so filters and reports behave consistently.
- Enables troubleshooting through audit fields and predictable naming.
The Mapping Dictionary
Create a central document that covers name, description, data type, allowed values, ownership, read/write rules, and the integration direction for every property you intend to sync. Keep it concise and high‑signal; each line should justify its existence.
Required Columns
- Object and Field: e.g., Contact.Email or Lead.Status.
- Business Purpose: routing, segmentation, scoring, reporting, or compliance.
- Source of Truth: HubSpot, Salesforce, or shared (rare; avoid when possible).
- Direction: HS → SF, SF → HS, or bidirectional with conflict rule.
- Allowed Values/Format: accepted picklist entries or patterns.
- Owner: team responsible for change requests and data quality.
- Notes/Runbook: edge cases, transforms, and error handling.
Ownership and Directionality
Declare the system of record. If sales is responsible for next steps, Salesforce should own Lead Status; if marketing captures UTM parameters and persona, HubSpot should own those. Bidirectional writes multiply the failure modes and should be reserved for fields where both teams truly need to edit with deterministic conflict rules (e.g., a shared phone number field when both sides occasionally correct it).
Common Ownership Decisions
- Email: shared, unique ID for people, but write carefully; prefer HS → SF on creation, then SF → HS when sales edits are canonical.
- Lead/Contact Status: Salesforce source of truth; push read‑only status to HubSpot.
- Lifecycle Stage: HubSpot owns transitions until sales accepts the handoff; Salesforce may confirm SQL and pipeline milestones.
- Owner (User): Salesforce source of truth; HubSpot reads for assignment, suppression lists, and reporting.
- Consent Flags: HubSpot source of truth; Salesforce reads for engagement rules.
Normalization and Transforms
Normalization ensures that “Enterprise” means the same thing everywhere. Define accepted values and transforms.
- Picklists: Use a short, canonical list; implement translation tables where values differ.
- Text Case: Normalize casing for names and countries; store two‑letter country codes separately if needed.
- Phone: Store E.164 in a dedicated field for dialers and leave a human‑friendly version for forms.
- Dates: Use ISO 8601; avoid ambiguous regional formats.
Identity and De‑duplication
Email is the primary person key; company domain is the primary company key. Store Salesforce IDs in HubSpot (and vice versa) to harden joins and accelerate error triage. Implement duplicate rules in Salesforce and enable HubSpot’s duplicate detection; build a regular review to merge conflicts, and log merges to an audit object so reporting can reconcile.
Lifecycle and Status Mapping
Lifecycle moves drive routing and reporting. Document a clear translation between systems.
Example Lifecycle Alignment
- Subscriber/Lead (HubSpot) ↔ Lead (Salesforce)
- MQL (HubSpot) ↔ Lead with Status = MQL (Salesforce)
- SQL (HubSpot) ↔ Converted Contact + Opportunity Created (Salesforce)
- Opportunity Stage N (HubSpot) ↔ Stage N (Salesforce)
- Customer (HubSpot) ↔ Closed Won Opportunity (Salesforce)
Define the transition criteria and where each move is initiated. For instance, MQL may be calculated by HubSpot scoring while SQL is confirmed in Salesforce when sales creates or accepts an Opportunity.
Campaign and Touchpoint Mapping
Use Salesforce Campaigns as the canonical engagement object and feed membership from HubSpot (forms, marketing emails, ads). Maintain a mapping of HubSpot assets to Salesforce Campaigns with statuses that mirror your response framework (e.g., Sent, Clicked, Registered, Attended). Ensure campaign member statuses are consistent across similar tactics so reporting and influence models behave predictably.
Consent and Preference Flags
Treat consent as first‑class. Break out: marketing consent, communication channels (email, phone, SMS), and legal basis. HubSpot typically captures and stores these; Salesforce reads to suppress outreach and validate compliance. Include timestamps and the source of consent; never overwrite a stronger consent with a weaker one.
Audit and Troubleshooting Fields
Add a small set of audit fields to every synced object:
- Original Source and Date
- Last Marketing Touch and Date
- Last Sales Touch and Date
- Last Integration Sync Timestamp
- Last Sync Error (short code)
These fields enable triage without deep diving system logs.
Configuring Sync Rules in the Native Connector
Within the HubSpot Salesforce integration settings, configure per‑field directionality and conflict behavior. Use a dedicated integration user in Salesforce and permission sets that restrict write access to only the fields the integration should touch. Avoid making the integration user a system administrator.
Conflict Rules
- Prefer Source of Truth: If both systems changed the field, keep the source of truth’s value.
- Timestamp‑Based: Accept the most recent change when neither side is the designated owner (use sparingly).
- Lock on Status: Prevent certain updates once records cross a lifecycle threshold (e.g., lock marketing edits after MQL is accepted).
Testing and Quality Gates
Gate go‑live on tests that simulate real user behavior.
- Create, Update, and Convert: Create a record in HubSpot, route to sales, convert in Salesforce, and verify correct back‑sync of contact and opportunity.
- Picklist Drift: Attempt to sync an out‑of‑band value; verify it is rejected or transformed.
- Bulk Backfill: Migrate a sample of records to test performance and error handling.
- Reporting Reconciliation: Compare funnel counts and conversion rates across systems within a defined tolerance.
Change Management and Governance
Every new field or picklist value is a potential break. Add a small change request process:
- Description and Purpose: why the field is needed, downstream consumers.
- Ownership and Directionality: assign a clear source of truth.
- Allowed Values and Transforms: update the mapping dictionary.
- Impact Assessment: routing, segmentation, scoring, and reporting effects.
- Rollout Plan: sandbox test, migration, go‑live timing, and monitoring.
Anti‑Patterns to Avoid
- Bidirectional writes for status fields (causes oscillation and confusion).
- Free‑text fields used for routing (unreliable and non‑reportable).
- Complex workflows that react to integration updates (creates loops).
- Mapping “just in case” fields that no team actively uses (adds risk with no value).
Operating Model Post‑Launch
Set a cadence to keep mappings clean and confidence high.
- Weekly: Review sync errors and picklist exceptions; burn down issues.
- Monthly: Audit duplicate rates and merge backlog; spot value drift.
- Quarterly: Review the mapping dictionary; deprecate unused fields and simplify where possible.
FAQ
How many fields should we map between HubSpot and Salesforce?
Map only the fields that drive a specific business outcome: routing, segmentation, scoring, compliance, or reporting. Most healthy integrations map dozens of fields, not hundreds. Excess mappings increase risk and cost without improving outcomes.
What’s the safest way to update a picklist value in production?
Add the value in both systems in a sandbox first, update translation tables, migrate a small sample, and watch for exceptions. Only then promote to production with monitoring. Avoid renaming existing values; add a new canonical value and migrate old entries if possible.
Should we allow bidirectional writes on any fields?
Only when truly necessary and when conflict behavior is deterministic. Contact phone and mailing address are common candidates because both sides may correct them. Status, owner, and lifecycle fields should not be bidirectional.
How do we keep marketers from breaking sales routing with new form fields?
Require a change request for new fields, enforce a short allowlist of routable fields, and maintain a staging form to validate mapping and transforms before any public page goes live.
What’s the best way to track integration changes over time?
Version your mapping dictionary, require change tickets for new fields or transforms, and log releases with a short changelog that highlights potential reporting impacts. Keep an always‑current runbook for triage.
More RevOps Playbooks from Bles Software
- Attribution & Pipeline Reporting Setup | Bles Software
- Data Mapping Checklist (Leads/Contacts/Opportunities) | Bles Software
- HubSpot ↔ Salesforce: Cost & Timeline Drivers | Bles Software
- HubSpot ↔ Salesforce Integration: Executive Guide | Bles Software
- HubSpot ↔ QuickBooks Integration Playbook | Bles Software
- Field Governance & Picklists | Bles Software
- Sync Rules: Deduping, Owners, Lifecycle | Bles Software
- Salesforce ↔ NetSuite Integration Playbook | Bles Software
- Daily AI Roundup: AI agent, model and enterprise AI news