Running both HubSpot and Salesforce is a common but expensive and complex configuration that organisations adopt when marketing will not give up HubSpot and sales will not give up Salesforce. The integration is one of the most mature CRM-to-CRM connections available, but it is also one of the most frequently broken, misconfigured, and misunderstood. Sync conflicts, duplicate records, and lead data flowing in the wrong direction are among the most common and damaging HubSpot community issues. This guide explains what actually syncs, the failure modes that cause real business problems, and how to configure the integration correctly from the start.
That makes the integration especially important for teams already using both platforms in different parts of the workflow.
HubSpot integration with Salesforce is useful when two systems need to share data without forcing the team to duplicate everything manually. It helps keep sales and marketing records aligned so the business can work from a more complete customer view.
Why Organisations Run Both HubSpot and Salesforce
The most common scenarios:
- Marketing uses HubSpot for inbound lead generation, email automation, and MQL management. Sales was already on Salesforce for complex deal management, territory-based pipelines, and CPQ — and will not migrate.
- A company acquired or merged with a Salesforce-heavy org and needs to bridge the two systems during a multi-year migration.
- Enterprise sales needs Salesforce’s CPQ, territory management, and advanced forecasting. Marketing needs HubSpot’s more intuitive automation and content tools.
Running both long-term adds subscription cost (~$90+/user/month for HubSpot Sales Hub Professional + $150+/user/month for Salesforce Sales Cloud), maintenance overhead, and sync complexity. Evaluate this setup with clear eyes — in many cases, migrating fully to one platform is more cost-effective than maintaining both.
How the Integration Works
The HubSpot-Salesforce integration is a native integration built and maintained by HubSpot. It uses Salesforce’s API (not a third-party middleware). Install from Settings → Integrations → Connected Apps → Salesforce → Install. The integration requires a Salesforce user with API access — create a dedicated “HubSpot Integration” Salesforce user for this purpose (not an admin’s personal account). Using a dedicated integration user prevents the sync from breaking when an admin changes their Salesforce password and keeps activity attribution clean.
The sync is bidirectional for contacts/leads and can be configured to sync companies (Accounts) and deals (Opportunities).
What Syncs: Full Data Map
| HubSpot Object | Salesforce Object | Direction | Notes |
|---|---|---|---|
| Contacts | Contacts and/or Leads | Bidirectional (configurable) | HubSpot contacts can map to SF Contacts or SF Leads or both |
| Companies | Accounts | Bidirectional (configurable) | Requires enabling company sync |
| Deals | Opportunities | Bidirectional (configurable) | Sales Hub Professional required |
| Activities (calls, meetings) | Activity History | HubSpot → Salesforce | Configurable; can be heavy volume |
| Contact properties | Contact/Lead fields | Per-field configuration | Each field has its own sync direction setting |
Inclusion Lists: The Most Critical Configuration
By default, the integration would sync every HubSpot contact to Salesforce — including every newsletter subscriber, every trade show badge scan, and every low-quality inbound lead. This creates serious data quality problems in Salesforce: too many unqualified leads, too much noise, and too many Salesforce licences consumed by contacts the sales team has no reason to work.
Always configure an inclusion list before enabling sync. An inclusion list is a HubSpot active list that defines which HubSpot contacts should sync to Salesforce. Typical inclusion criteria: Lifecycle Stage is SQL or above, Lead Score is greater than 50, or the contact has an open deal. Only contacts that meet these criteria sync to Salesforce. When a contact exits the criteria (e.g., they’re disqualified), they stop syncing — but are not deleted from Salesforce.
Configure the inclusion list under Settings → Integrations → Salesforce → HubSpot to Salesforce → Inclusion List.
Field Mapping and Conflict Resolution
The field mapping section maps HubSpot contact/company/deal properties to their corresponding Salesforce fields. For each mapped field, set the sync direction and conflict resolution rule:
- HubSpot always wins: HubSpot’s value overwrites Salesforce’s value on conflict. Use for fields that marketing owns (lifecycle stage, lead score, original source).
- Salesforce always wins: Salesforce’s value overwrites HubSpot’s value on conflict. Use for fields that sales owns (account manager, deal stage, close date).
- Most recently updated wins: The most recently changed value in either system wins. Use with caution — can create unpredictable overwrites in high-activity periods.
Leaving conflict resolution undefined causes one of two problems: sync loops (both systems keep overwriting each other) or silent data loss (one system’s updates are silently discarded).
Pricing and Hidden Costs
The integration itself is included in HubSpot Sales Hub Professional and above — no separate charge. However, the total cost of running both platforms is substantial: HubSpot Sales Hub Professional is ~$90/user/month; Salesforce Sales Cloud Professional is ~$150/user/month. A 10-person sales team running both platforms pays approximately $2,400/month in platform cost alone. Factor in implementation time (a well-configured HubSpot-Salesforce integration typically takes 20–40 hours to set up correctly), ongoing maintenance, and the lost productivity from reps navigating two systems.
When to Use Both vs Migrate to One
Use both when: marketing’s entire workflow is built in HubSpot (content, landing pages, complex nurture sequences) AND sales has years of customisation in Salesforce that cannot be migrated without major disruption AND the budget for both platforms is justified by the business scale. Consider migrating to HubSpot-only when: the Salesforce instance is relatively uncustomised, the organisation is under 200 people, and the primary Salesforce use case (pipeline management) can be replicated in HubSpot’s Sales Hub. Consider migrating to Salesforce-only when: the business requires CPQ, territory management, and enterprise-scale customisation that HubSpot cannot support.
Verdict
Established enterprises with both platforms in heavy use: The integration is mature enough to be reliable when properly configured. Invest the setup time, use a dedicated integration user, configure inclusion lists carefully, and assign a RevOps owner to monitor the sync health monthly.
Teams considering running both long-term as a permanent strategy: Model the total cost carefully. Platform subscriptions, implementation complexity, and ongoing maintenance often justify a full migration to one platform — especially for sub-200-person organisations.
Teams in a short-term transition period: The integration is well-suited for managed coexistence during a migration — it lets both systems run in parallel with controlled data flow while the migration completes.
The best Salesforce connection is the one that keeps both systems useful without creating sync confusion. If the data model is not planned well, the integration becomes harder to trust.
Common Problems and Fixes
“Contacts are being duplicated — one in HubSpot, one in Salesforce”
This happens when the same contact exists in both systems with slightly different email addresses (capitalisation difference, alias vs primary email), and the integration cannot match them. Fix: (1) run HubSpot’s duplicate management tool to identify and merge HubSpot duplicates; (2) audit Salesforce for the same; (3) after cleanup, re-enable sync and let the integration match by email. Going forward, enforce email standardisation at the form and data entry level.
“A contact’s lifecycle stage in HubSpot keeps resetting to ‘Lead’ after sales updates it in Salesforce”
Caused by conflicting sync direction settings for Lifecycle Stage. If Salesforce has a corresponding field (e.g., Lead Status) set to sync back to HubSpot’s Lifecycle Stage with “Salesforce always wins,” Salesforce’s value will overwrite every HubSpot update. Fix: set the lifecycle stage field sync direction to “HubSpot always wins” — HubSpot owns lifecycle stage; Salesforce can have Lead Status as a separate field that does not overwrite HubSpot’s lifecycle stage.
“Activity logging is flooding Salesforce with HubSpot email records”
By default, every HubSpot email sent to a synced contact creates an Activity record in Salesforce. For high-volume email marketing (newsletters, nurture sequences sent to thousands), this creates thousands of Salesforce Activity records per day — degrading Salesforce performance and cluttering activity history for sales reps. Fix: disable the “Log Marketing Emails to Salesforce” option in the integration settings, or limit it to only log emails sent from individual reps (sequences) rather than marketing sends.
“The sync stopped working and I can’t tell why”
Check the integration sync log in HubSpot: Settings → Integrations → Salesforce → Error Log. Common error causes: the Salesforce integration user’s API access was removed or their profile permissions changed, a required Salesforce field has no default value and HubSpot is trying to create records without it, or Salesforce’s API daily limit was hit (Salesforce limits API calls per 24-hour period — high-volume syncs can exhaust this). Check the error messages and address the root cause rather than simply reconnecting, which would not fix the underlying issue.
“HubSpot deals aren’t creating Salesforce Opportunities”
Deal-to-Opportunity sync is not enabled by default — it requires configuration under the Salesforce integration settings and requires Sales Hub Professional. Enable it explicitly, map the deal stage values to Salesforce opportunity stage values (these rarely match by default — custom mapping is almost always required), and verify the Salesforce integration user has Create permission on the Opportunity object.
Getting Your Team to Consistently Use HubSpot
Adoption gaps happen when teams fall back to old habits after initial training. Fix: identify the 2–3 daily workflows where HubSpot adds the most value for your specific role and focus training on those first. Use HubSpot in-app guidance to provide contextual help at the moment of need rather than relying on one-time sessions.
CRM Data Quality Degrading Over Time
CRM data decays at approximately 30% per year as contacts change roles and companies. Fix: schedule a quarterly data quality audit. Use HubSpot deduplication tools to merge duplicate records, establish data entry standards enforced through validation rules, and consider a data enrichment tool like Clearbit or ZoomInfo to update stale records automatically.
HubSpot Reports Not Matching Actual Business Results
Reports are only as accurate as the data entered. Discrepancies between CRM reports and actual revenue point to data entry gaps. Fix: audit closed-won records against actual invoices monthly. Make CRM data the source of truth for commission calculations so reps have a direct incentive to keep their data accurate.
Frequently Asked Questions
Can I sync HubSpot custom objects to Salesforce custom objects?
Not natively — the standard integration maps HubSpot’s built-in objects (contacts, companies, deals) to Salesforce’s standard objects. Custom object bidirectional sync requires a custom API integration or a third-party integration tool like Workato or Tray.io.
Does the integration support Salesforce Person Accounts?
Salesforce Person Accounts (a Salesforce configuration that merges Contact and Account into one object) requires specific configuration in the HubSpot integration. Check HubSpot’s documentation for the current Person Accounts setup guide, as it requires different field mapping than standard Account/Contact setups.
What happens if we disconnect the integration?
Disconnecting stops all future syncs. Records that have already synced remain in both systems — no data is deleted. You can reconnect later and re-configure, but any changes made in either system during the disconnected period will not retroactively sync.
