HubSpot assigns a qualified lead to one sales rep. Salesforce shows another owner. Marketing counts the handoff as complete, but sales is working from a different record. Both systems appear to be running, yet the teams no longer trust what they see.
That is the risk in a HubSpot Salesforce integration. Connecting the platforms is relatively quick, but the connection cannot decide who owns the data. The native connector syncs contacts, leads, companies, deals and activities according to the rules you configure, checking for updates roughly every 15 minutes. Before you turn it on, someone needs to decide which records qualify, which system controls each field and how much Salesforce API capacity the integration can use. Otherwise, the connector keeps running while the two CRMs gradually disagree.
This guide is for RevOps and sales operations leaders running marketing in HubSpot and sales in Salesforce who need both systems to reflect the same customer and revenue data. It covers what the connector syncs, what you need before setup, how to configure it in the right order, how sync rules work, what to test before launch and where the integration most often breaks.
The HubSpot Salesforce integration matches records across the two systems and syncs changes according to the rules you configure for each object and field. HubSpot checks both accounts for new or updated information approximately every 15 minutes, and certain actions, including form submissions, logged emails and meetings, and property updates, can also trigger a sync.
Connecting the systems does not immediately copy all of your data from one CRM to the other. According to HubSpot's integration FAQ, records begin syncing gradually as triggers occur unless you deliberately run an import. That gives your team time to define the rules before large amounts of data start moving. Based on HubSpot's integration settings documentation, this is how each HubSpot object maps to Salesforce:
HubSpot
Marketing data and engagement
Field ownership and sync rules
Connection between the two systems
Salesforce
Sales records and opportunities
| HubSpot object | Salesforce object | How it syncs |
|---|---|---|
| Contacts | Leads and contacts | Two-way by default, matched on email address |
| Companies | Accounts | Optional, deduplicated on a mapped field you choose |
| Deals | Opportunities | Optional, with pipeline and stage mapping |
| Tickets | Cases | Optional |
| Activities (emails, meetings, form submissions) | Tasks | Optional |
| Custom objects | Custom objects | Optional |
Contact matching deserves particular attention. HubSpot identifies duplicate Salesforce leads and contacts using email address, and when several Salesforce records share the same email, it syncs with the one updated most recently. If Salesforce already contains duplicates, one HubSpot contact can be overwritten again and again by different Salesforce records, so cleaning them up before setup prevents problems later.
You need an eligible HubSpot Professional or Enterprise subscription, a supported Salesforce edition with API access, and the right administrator permissions to install and configure the integration. Requirements differ by Salesforce edition and by the objects or features you plan to sync, so check the current HubSpot installation requirements against your actual setup before connecting production systems.
| Requirement | HubSpot | Salesforce |
|---|---|---|
| Subscription or edition | Professional or Enterprise of Marketing, Sales, Service, Data or Content Hub, or Smart CRM | An edition with API access, or Professional. Government Cloud is supported, Group Edition is not |
| User who installs | A user with Account Access permission | A system administrator |
| Permissions | Account Access for the HubSpot installer | Salesforce administrator access and API permissions. Specific features may also need object, metadata or package permissions |
If you are still deciding whether your business needs both CRMs, our HubSpot vs Salesforce comparison covers the differences in cost, customisation and fit.
The installation itself happens in step four. The first three steps are what decide whether your HubSpot Salesforce integration stays manageable after launch, because they establish what data should move, which platform owns it and how the integration should behave when the two systems disagree.
Start by merging Salesforce records that share the same email address. The integration uses email to match leads and contacts, so duplicates create conflicting updates as soon as syncing begins. Our guide to auditing a HubSpot portal covers the same cleanup on the HubSpot side.
Before you configure field mappings, decide which CRM owns each important field. Salesforce might own opportunity amount and account owner, for example, while HubSpot owns lead source and marketing engagement. Document these decisions before setup, because you will use them to choose the sync rule for each mapped field.
The installer lets you connect to a Salesforce sandbox, and you should use it. A sandbox gives your team a safe place to test field mappings, ownership rules, automations and sync behaviour before any production records are involved. The testing checklist further down shows what to cover.
In HubSpot, open the Marketplace and search for the Salesforce app. Click Install, then log in with your Salesforce administrator credentials. The connection is complete once Salesforce redirects you back to HubSpot.
An inclusion list, which HubSpot also calls selective sync, decides which HubSpot records are allowed to sync to Salesforce. Without one, every eligible HubSpot contact can move into Salesforce, including students, competitors, newsletter-only subscribers and other records your sales team does not need. The inclusion list draws a clear line between marketing records that belong in HubSpot and records that should enter the sales CRM.
Map HubSpot properties to compatible Salesforce fields, then assign each one a sync rule based on the system of record you set in step two. HubSpot supports up to 500 field mappings per object, but the goal is not to connect as many fields as possible. It is to make sure each field moves in the right direction and that one system clearly wins when values conflict.
Use the Sync Health tab to set how much of your Salesforce API capacity HubSpot can use. Once the allocation is in place, run the initial import and watch sync errors closely. Checking errors daily for the first two weeks makes it easier to catch incorrect mappings, permission problems, duplicate records or automation conflicts before they spread across both systems.
For standard contact property mappings, HubSpot documents four common sync rules, and the right one depends on which CRM owns the field. Other objects and newer sync configurations may offer more choices, including Always use HubSpot and object-level sync direction settings. A common mistake is turning on two-way sync everywhere. Two-way does not mean the platforms reconcile conflicting information intelligently. It means the most recent edit wins, whichever system made it, and that causes problems when HubSpot workflows, Salesforce flows or users in both systems edit the same property.
| Sync rule | What it does | Use it for |
|---|---|---|
| Prefer Salesforce unless blank | HubSpot only sends a value when the Salesforce field is empty, and Salesforce values always overwrite HubSpot | Fields Salesforce owns but HubSpot can fill first, such as industry or employee count |
| Always use Salesforce | HubSpot never sends data to Salesforce, even into an empty field | Fields sales or finance owns, such as opportunity amount, contract dates or account tier |
| Two-way | The most recent value overwrites the other system, and deletions sync too | A small set of fields both teams genuinely edit, such as phone number or job title |
| Don't sync | Data never passes between the systems | HubSpot-only marketing properties and Salesforce-only internal fields |
For company, deal and custom object configurations, also review the object-level sync settings, because a one-way object rule can override a field-level rule.
There is one important exception. HubSpot notes that the contact owner field only syncs two-way, even when the interface shows Prefer Salesforce unless blank. Owner values also need to match exactly across both systems, so configure user mapping before the initial import. Otherwise, owner assignments can fail or change unexpectedly.
The HubSpot Salesforce integration can use up to four API calls to sync one contact. Those calls count against your Salesforce organisation's daily API limit, which every other system connected to Salesforce shares, so API capacity belongs in the integration design rather than on a checklist after launch.
According to Salesforce's developer documentation, Enterprise and Professional organisations with API access receive 100,000 calls per day plus 1,000 calls for each Salesforce licence. Unlimited and Performance organisations receive 100,000 calls plus 5,000 per licence.
For example, an Enterprise organisation with 50 licences receives 100,000 + 50 × 1,000 = 150,000 API calls per day. A complete resync of 40,000 contacts could need up to 40,000 × 4 = 160,000 API calls. In that scenario, the resync alone could use more than the organisation's full daily allocation, which is why large imports can take several hours. Your actual limit may be higher if you've purchased additional API capacity, so check it in Salesforce Setup before planning a large import.
HubSpot recommends setting its allocation based on your actual Salesforce limit and existing usage. Leave enough capacity for other integrations, particularly the systems that handle billing, enrichment and support, and schedule bulk imports and resyncs outside peak working hours.
A successful connection does not prove the mapping is ready for live records. Test representative scenarios in a Salesforce sandbox, write down the expected result in each CRM and agree what happens when the result is different.
| Test | What to check | Why it matters |
|---|---|---|
| Existing and duplicate contacts | A known lead or contact matches the correct record, and duplicates are found before import | Prevents updates landing on the wrong person |
| Conflicting field edits | Change an approved test field in both systems and check which value wins | Confirms your system-of-record rules |
| Owner assignment | Sync a record owned by a mapped user and one with a missing or inactive user | Exposes user-mapping and reassignment failures |
| Required fields and picklists | Send a record with a missing required value or an incompatible picklist value | Shows which Salesforce validation rules block sync |
| Inclusion criteria | Test one record that qualifies and one that should stay HubSpot-only | Prevents unnecessary sales records and API use |
| Automation interaction | Trigger a HubSpot workflow and a Salesforce flow on the same test record | Catches conflicting updates before they loop |
| API usage and bulk changes | Run a realistic test batch while monitoring sync health and call consumption | Shows whether launch volumes are manageable |
| Reporting reconciliation | Compare counts, ownership and key field values in both systems after syncing | Confirms the business can trust the resulting reports |
Before launch, assign an owner to every failed test and define how you would pause or roll back the sync. Keep a record of field mappings, sync direction, inclusion criteria and expected exceptions. The goal is not a green integration status but consistent records and explainable results on both sides.
Most HubSpot Salesforce integration issues are not caused by the connector suddenly breaking. They come from decisions that were never made during setup. When something goes wrong, start with the Sync Health tab in HubSpot's Salesforce settings, which groups sync errors by type and shows how many records each issue affects. HubSpot also keeps a list of common sync errors.
| What your team sees | Likely cause to investigate first | First check |
|---|---|---|
| Contact details change unexpectedly | Duplicate records or conflicting two-way updates | Record pairing and field history |
| Leads arrive with the wrong owner | User mapping or ownership rule mismatch | Owner mappings in both CRMs |
| A subset of records never appears | Inclusion criteria, required fields or validation rules | Sync Health errors and eligibility |
| Dropdown values fail to update | Incompatible field types or picklist values | Mapping and allowed values |
| Updates are delayed after a large import | API allocation or sync backlog | Usage, allocation and queued records |
These are starting points for diagnosis, not definitive causes. The sections below explain how to isolate and fix each problem.
Because records are matched on email address, several Salesforce records with the same email can keep overwriting a single HubSpot contact. A rep opens a record, sees one value and comes back later to find it has changed again. Eventually, users stop trusting the data in either CRM. The fix is to merge duplicates in Salesforce before the initial import and to keep a regular deduplication routine after launch.
Suppose a HubSpot workflow updates lifecycle stage while a Salesforce flow updates the matching lead status. If the field uses two-way sync, the most recent update wins, so the systems can keep overwriting each other and leave HubSpot and Salesforce reports showing different results. Give the field one owner and switch it to a one-way rule.
Owner fields only sync two-way and need a matching user in both systems. If a salesperson exists in Salesforce but not in HubSpot, or the user mapping is wrong, assignment can fail for every record that person owns. Check user mapping whenever someone joins or leaves the sales team.
Salesforce validation rules or required fields can block records coming from HubSpot when information is missing. You can map a HubSpot property to the required Salesforce field, or adjust the Salesforce rule so records created by the integration user can pass through when that is appropriate.
A HubSpot dropdown can only sync to a Salesforce picklist when the values are compatible, and restricted Salesforce picklists reject any value that is not already in their list. State and country picklists are a common example, and HubSpot's Salesforce integration settings include options for matching those values correctly.
The connector depends on the permissions of the Salesforce user that installed it. If that user loses a permission such as Modify All for an object, syncing for that object can stop. A dedicated integration user reduces this risk, because its permissions are less likely to change during routine employee or admin updates.
When HubSpot reaches its Salesforce API allocation, new syncs queue until capacity resets, and the shortage can also affect other tools sharing the same limit, such as billing and enrichment integrations. If Salesforce still has unused capacity, increase HubSpot's allocation. If not, move bulk imports, resyncs and large automated updates to quieter periods.
The native connector supports standard objects and compatible field mappings, but complex custom objects, calculated fields and cross-object logic can go beyond what it handles cleanly. Teams then start filling the gaps with CSV exports or manual updates, and those workarounds become another source of inconsistent data.
The cost of letting these problems run is substantial. Gartner estimates that poor data quality costs organisations at least $12.9 million a year on average, and when two systems sync constantly, poor data in one quickly becomes poor data in both.
The native HubSpot Salesforce connector is the right choice for most companies that want marketing in HubSpot while sales keeps working in Salesforce. A custom integration makes more sense when your data model or business logic goes beyond what the connector supports. Migration is the third option, when maintaining two CRMs costs more than it gives back.
| Option | Best for | Trade-off |
|---|---|---|
| Native HubSpot Salesforce connector | Marketing in HubSpot, sales in Salesforce, standard objects and fields | Fast to set up and maintained by HubSpot, but limited to the objects, field types and sync rules it supports |
| Custom API integration | Complex custom objects, calculated fields, cross-object logic or strict control over API usage | Fits your data model exactly, but needs building, documentation and an owner to maintain it |
| Migration to one CRM | Teams paying for two systems that hold the same data | Removes the sync entirely, but means a planned move with data validation and retraining. Our Salesforce to HubSpot migration guide covers the process |
We build and repair HubSpot Salesforce integrations for B2B revenue teams with $10 million to $500 million in revenue. As a HubSpot Diamond Partner and Salesforce Consulting Partner, we work on both sides of the integration. That matters, because a problem that shows up in HubSpot often starts in a Salesforce configuration, and a Salesforce reporting issue can begin with a workflow or property decision in HubSpot.
Every project starts with a 45-minute scoping call that inventories your current stack and identifies the three highest-risk data flows. We also tell you honestly whether you need a custom build or whether the native connector will do the job. You then get a written scope with fixed deliverables, a defined data contract, a test plan and a sandbox-first build order, before any code is written.
The work is done by a Growth Architect, who owns the data model, and a GTM Engineer, who writes the code. Releases move from sandbox to staging to production in two-week sprints, with monitoring in place from day one. When the native connector cannot support your data model, we build custom integrations for bi-directional sync beyond it, covering custom objects, custom fields, conflict resolution and ownership rules. Every integration includes monitoring, drift alerts and a quarterly maintenance window, and we have had zero configuration defects across our last 18 custom integration builds.
If your long-term goal is to move from two CRMs to one, our HubSpot migration service runs your old CRM in parallel during a phased move. We define which system is authoritative for each object during that window, so two teams never edit two versions of the same record.
Running HubSpot and Salesforce side by side?
Book a call with our team to talk through field ownership, sync rules and API usage before any data moves.
HubSpot checks for new or updated information in both systems approximately every 15 minutes, according to HubSpot's sync trigger documentation. Certain events, including form submissions, logged activities and property updates, can also trigger a sync when they occur. Large imports may take several hours because HubSpot controls the pace to preserve Salesforce API capacity.
Yes. HubSpot offers a native Salesforce connector through the HubSpot Marketplace, and it can sync contacts, leads, companies, deals, tickets, activities and custom objects. It requires a HubSpot Professional or Enterprise subscription and a Salesforce edition with API access, or Salesforce Professional.
HubSpot replaces Salesforce for some organisations, while many others continue running both platforms, commonly with marketing in HubSpot and sales in Salesforce. Whether consolidation makes sense depends on your sales process, how much custom Salesforce development your business relies on and whether maintaining two CRMs still justifies the cost. Our Salesforce to HubSpot migration guide explains when a migration makes sense and when keeping Salesforce may be the better option.
Neither CRM is better for every company. HubSpot is generally faster to adopt and combines marketing, sales and service in one platform, while Salesforce offers deeper customisation for organisations with more complex sales processes and data models. Our HubSpot vs Salesforce comparison breaks down pricing, capabilities and fit by company type.
Yes. HubSpot's integration settings support custom objects alongside contacts, companies, deals, tickets and activities, and inclusion lists can decide which custom object records are allowed to sync. When those custom objects depend on complex relationships, calculated fields or business logic the connector does not support, a custom integration may be a cleaner solution.
They do not sync from HubSpot to Salesforce. The one exception is when Salesforce is configured to create HubSpot contacts automatically. In that case, a new Salesforce lead or contact can still create or update its matching HubSpot contact, even when that contact falls outside the inclusion list.
No, not by default. HubSpot's settings documentation states that deleting a HubSpot contact does not delete the matching Salesforce record, so cleanup in Salesforce remains a separate and deliberate action.