Are You Prepared to Integrate HubSpot and Salesforce?
Most HubSpot Salesforce integrations fail because teams skip the groundwork. 7 steps to cover before the sync goes live - from data models to validation rules.
Table of contents
Are You Prepared to Integrate HubSpot and Salesforce?
Do not activate the HubSpot-Salesforce sync until seven things are settled. In order: reconcile the two contact data models (Salesforce Leads and Contacts versus HubSpot's single Contact object with lifecycle stages), define which platform owns which part of the funnel, settle governance and create a dedicated Salesforce integration user, audit every validation rule and required field that could silently block record creation, decide exactly which activities are worth syncing, choose whether HubSpot creates Leads or Contacts in Salesforce, then set the sync behavior field by field.
Teams that skip this order do not go live faster. They go live and then spend three months backtracking, because the native connector installs in minutes and hides none of the decisions it quietly makes for you.
Step 1: Reconcile the two contact data models
The biggest structural difference between the two systems needs to be resolved before a single record syncs - because mapping them incorrectly creates data mismatches that compound with every sync cycle.
In Salesforce, new prospects enter as Leads. Once qualified, those Leads convert into Contacts, while creating Accounts and Opportunities in the process. In HubSpot, all prospects enter as Contacts. Their progress through the sales funnel is tracked using the Lifecycle Stage property, which runs from Lead to Customer.
To align the two systems, build a lifecycle stage picklist in Salesforce on both the Lead and Contact objects. This keeps progression in sync:
- Salesforce Leads map to HubSpot stages like Subscriber, Lead, MQL (Marketing Qualified Lead), or SQL (Sales Qualified Lead)
- Salesforce Contacts map to HubSpot stages like Opportunity, Customer, or Evangelist
Tip: Before syncing, clear out archived picklist values in Salesforce. HubSpot still reads them as active, which clutters dropdowns and creates mapping conflicts.
For the full lifecycle stage mapping walkthrough, see the guide to mapping HubSpot lifecycle stages to Salesforce objects.
Step 2: Define the handoff between the two systems
Most companies run marketing out of HubSpot and sales out of Salesforce - but that split only works if the handoff is clearly defined before the integration goes live.
Think of it like writing job descriptions for each platform. HubSpot owns early-stage lead nurturing and qualification. Salesforce owns pipeline management, closing, and account success. Writing this down makes it part of the marketing and sales SLA and gives a framework for every future automation and data discussion.
Without this definition, both systems end up owning the same records and overwriting each other's data on every sync cycle.
Step 3: Settle governance and compliance
Governance decisions made after go-live are significantly more expensive than governance decisions made before kickoff - especially in regulated industries.
HubSpot is hosted on AWS and offers a HIPAA-compliant hosting option for Enterprise-tier customers, though it remains broadly unsuitable for FISMA without custom configurations. If the industry requires strict data protection, use Selective Sync to prevent sensitive information from entering HubSpot.
Create a dedicated integration user in Salesforce to own the HubSpot connection. This keeps the sync stable, avoids access issues when employees leave, and prevents admin-level security risks.
Note: HubSpot and Salesforce support teams will not configure this for you. A partner experienced in building integration users for regulated industries is required - or HubSpot's technical services, sold in 4-hour blocks at $375/hour.
Access management: Audit who actually needs cross-platform visibility. Not every HubSpot user needs a Salesforce license, and vice versa. Keeping permissions lean reduces both cost and confusion.
Step 4: Audit automations, validation rules, and required fields
Salesforce validation rules and required fields are the most common cause of silent sync failures - and they must be audited before the integration goes live, not after records start failing to create.
Automations: Check all Salesforce Flows. Since Salesforce has deprecated Process Builder, ensure any legacy processes have been migrated to Flow to avoid sync execution errors.
Validation rules: Review active rules for every object syncing with HubSpot - pay special attention to Leads and Contacts. A validation rule that requires a field value before saving will block HubSpot from creating records. This often surfaces as "Custom Code errors" inside HubSpot.
Required fields: List every required field on the Lead and Contact objects. New HubSpot Contacts syncing to Salesforce need values for these fields. Two options:
- Make those fields mandatory in HubSpot forms
- Use HubSpot workflows to populate them automatically
For example: if Salesforce requires State and Country, create a workflow that copies IP State and IP Country into those fields so prospects do not have to type them in.
Formula fields: HubSpot cannot detect Salesforce formula field updates automatically. If a formula field's value changes, HubSpot will not see it until the record itself updates. The workaround: create a hidden workflow-updated field in Salesforce that mirrors the formula result and syncs to HubSpot.
For a full reference on what breaks and why, see the HubSpot Salesforce sync errors diagnostic playbook.
Step 5: Configure activity sync deliberately
Activity sync is one of the most mismanaged parts of the integration - configured too broadly, it floods Salesforce with noise that makes rep timelines unusable.
Sales teams want to see marketing activity on their leads and customers, and HubSpot syncs this natively. Activities like form submissions or marketing emails can flow into Salesforce as tasks. But every activity shows up as a Salesforce task, and that creates clutter fast.
Choose carefully what to sync. In most cases, only form submissions and marketing email sends are worth sending over.
Tip: Use the HubSpot Visualforce component or Timeline Embed in Salesforce to view marketing engagement. Syncing every email open as a Task creates massive data storage costs and timeline clutter - the native timeline view handles this better. Tune sync triggers carefully, or reps will drown in noise.
Step 6: Should HubSpot create Leads or Contacts in Salesforce?
HubSpot stores all prospects and customers as Contacts, while Salesforce separates them into Leads and Contacts - and that fork in the road needs a clear answer before the integration goes live.
When HubSpot creates a new record in Salesforce, the choice is: create a Lead or create a Contact.
For most companies: create a Lead in Salesforce. This keeps qualification and conversion workflows intact.
Some organizations skip leads entirely and only use contacts. In that case, select Create a Contact in Salesforce.
The choice depends on whether the Salesforce org uses the Lead conversion model. If it does, defaulting to Contact creation bypasses qualification workflows and breaks the handoff process. Define this before implementing - changing it after go-live requires a full data correction.
Step 7: Activate the sync
Once the data model, governance, automations, and sync rules are clearly defined, the implementation itself becomes significantly more straightforward.
Before activating the sync, review sync settings for each property. For every field, define one of four behaviors:
- Prefer Salesforce unless blank
- Always use Salesforce
- Two-way sync
- Do not sync
This prevents important data from being overwritten unintentionally.
Note: HubSpot still cannot natively sync Salesforce products. If the business relies on SKUs or product IDs, create a custom field in HubSpot to track them before the sync goes live.
With the foundation in place, implementation becomes clean and the messy backtracking that happens when teams jump in too early gets avoided entirely.




