When to build a custom HubSpot-Salesforce integration
Choose the right architecture for your RevOps stack.
So, you decided to integrate HubSpot and Salesforce to leverage the power of both platforms.
Good choice.
But now you face the classic RevOps dilemma: Do you go "native" or build "custom"?
You can head to the HubSpot App Marketplace and install the official connector, or you can hire a developer to build a custom API solution.
Which one is better?
While every case is unique, here is the verdict we give 90% of our clients: Start with native.
In this guide, we will:
- Break down why the native integration is more powerful than you think.
- Explore the "middle ground" option: HubSpot Operations Hub.
- Explain when a custom build is actually necessary.
- Warn you about the "Campaign Member" sync gap that trips up most marketers.
Let’s dive in.
Option 1: the native HubSpot-Salesforce integration
The native integration is the best choice for the vast majority of teams.
It acts as a bridge that translates Salesforce language (Leads and Contacts) into HubSpot language (Contacts).
It simplifies the process, provides a built-in "Sync Health" dashboard for error monitoring, and doesn't require a developer on retainer to maintain.
Use the native integration if:
✅ You rely on the standard "Lead to Contact" conversion process
The integration handles the lifecycle change automatically.
When a Lead creates an Opportunity in Salesforce, HubSpot updates the Lifecycle Stage accordingly.
✅ You need "selective sync"
You don't want every single marketing contact cluttering up your Salesforce org.
The native app allows you to use a Salesforce Inclusion List to ensure only marketing-qualified leads (MQLs) sync to Salesforce.
✅ You use Business Units
The native integration now supports Business Unit mapping (Enterprise), allowing you to partition data effectively across different brands.
The limitation: speed to lead
The native integration polls for changes roughly every 10-15 minutes.
It is not instant.
If your sales team requires a record to appear in Salesforce 3 seconds after a form fill for an instant dialer, the native integration might be too slow.
Option 2: the "middle ground"
Most people forget there is a third option.
HubSpot Operations Hub (Data Sync) offers a way to sync data without custom code but with more flexibility than the standard app.
Use Operations Hub if:
✅ You need to sync historical data two-way
The standard app is great for new changes, but Operations Hub is better at comparing two massive databases and merging them historically.
✅ You need to sync custom objects simply
If you have a simple custom object (like "Vehicles" or "Properties") that needs to mirror between systems, Operations Hub can often handle this cheaper than a custom API build.
Option 3: custom integration (or iPaaS)
The native integration is robust, but it follows strict rules.
If your business model breaks those rules, you might need a custom solution via API or an iPaaS tool like Make or Workato.
You might need a custom integration if:
✅ You require "strict" duplicate leads
The native integration creates a "one-to-one" relationship.
It will not create a new Salesforce Lead every time a contact fills out a form; it will update the existing one.
If your business model requires a brand new Lead record for every inquiry (common in high-volume call centers), you need a custom build.
✅ You use a custom object as your primary person record
If you store customers as "Students" or "Patients" in a custom object (instead of the standard Lead/Contact objects), the native sync cannot "see" them to send marketing emails.
✅ You need instant webhooks
As mentioned above, if you need sub-minute syncing for an auto-dialer, a custom webhook is the only way to achieve real-time speed.
The big warnings: what the native integration misses
Before you click install, you need to know about two major gaps that often force teams to build workarounds.
A. The "campaign member" nightmare
Salesforce uses "Campaigns" and "Campaign Members" to track event attendance (e.g., Status = Invited, Registered, Attended).
HubSpot does not sync Campaign Member Statuses natively.
You can see which campaign someone is in, but updating their status from "Registered" to "Attended" often requires a complicated workflow or a third-party tool.
If this is critical to your reporting, plan for a workaround.
B. Multi-currency logic
The native sync sends the number (e.g., "100") but doesn't always handle the conversion rate logic perfectly for closed deals if your two systems have different currency rate tables.
This can cause revenue reporting discrepancies for global teams.
How to implement the native integration (the modern way)
Implementing the HubSpot Salesforce integration is straightforward, but "clicking install" is the easy part.
The strategy is the hard part.
1. Build a systems integration map
Map out every single tool you use. Use a tool like Miro to visualize how data moves.
The goal is to identify "sources of truth.”
Who owns the Email Address? (Usually HubSpot).
Who owns the Opportunity Stage? (Usually Salesforce).
2. Prepare your data (the "state/country" trap)
The number one cause of sync errors is mismatched picklists.
If Salesforce requires "United States" but HubSpot sends "USA," the sync will fail.
- The Fix: Ensure Salesforce's "State and Country Picklists" match HubSpot's standardized values exactly before you turn the sync on.
3. Install with the "integration user"
Stop! Do not buy a full Salesforce license for this.
In the past, you had to burn a pricey Salesforce license ($150+/mo) just to connect the API.
As of late 2023, Salesforce offers 5 Free "Salesforce Integration User Licenses" in most Enterprise/Unlimited editions.
The process:
- Go to Salesforce Setup > Users.
- Create a new user and assign the "Salesforce Integration" user license.
- Assign the "HubSpot Integration Permission Set" to this user.
- Connect HubSpot using these credentials.
This is more secure (API access only) and saves your budget for actual sales reps.
4. Configure the inclusion list
Never turn on the sync without a filter.
Create a Static List in HubSpot called "Salesforce Inclusion List.
Configure the integration settings to only sync contacts who are members of this list.
This prevents junk leads, newsletter subscribers, and competitors from polluting your Salesforce database.
The verdict:
Most companies integrating HubSpot and Salesforce can, and should, go native.
It preserves your budget, reduces technical debt, and allows your RevOps team to manage the system without calling a developer every time a field changes.
Struggling to untangle your Salesforce sync?
A failed integration can paralyze your sales team.
If you are seeing constant "Sync Errors" or duplicate leads, let us help.
Read next
For the architect: HubSpot lifecycle stages vs. lead status: defining the difference
Once your integration is live, you need to map these fields correctly to prevent data conflicts.
For the strategist: The 2025 RevOps lead scoring playbook
Data is flowing. Now, how do you prioritize it for sales?
For the skeptic: 8 reasons HubSpot & Salesforce implementations fail
Read this before you flip the switch.





