Sync HubSpot contacts with Salesforce leads and contacts

A simple explanation of how HubSpot & Salesforce sync contact records

HubSpot and Salesforce don’t model people the same way.

HubSpot uses a single object - Contact.

Salesforce splits people into two objects - Leads and Contacts.

When you integrate the two, Salesforce Leads and Contacts both sync with HubSpot as Contacts.

That mismatch is the source of most headaches, especially when you want precise control over how new records are created and kept in sync.

Where the sync gets tricky

The first friction point is duplication.

HubSpot allows only one Contact per unique email address.

Salesforce can store multiple Leads and Contacts with the same email, and its duplicate rules are configurable by a Salesforce Administrator.

HubSpot’s duplicate rules are standard and cannot be changed by an admin. Put simply, Salesforce can tolerate duplicates that HubSpot will collapse, and the integration has to reconcile those differences.

If you don’t manage this carefully, duplicates pile up fast. Here’s how to keep marketing data clean in your CRM.

The second friction point is record creation.

In the integration settings, you must choose whether HubSpot should create Leads or Contacts in Salesforce.

HubSpot cannot create both. That single setting often clashes with real-world scenarios.

For example, if a new person at an existing customer company fills out a HubSpot form and your integration is set to create Leads, Salesforce will receive a Lead - even though the better categorization would be Contact on the existing Account. The native integration cannot switch on the fly.

Here’s how those limits show up in practice.

Say the requirement is to create a new Lead in Salesforce for every new form submission in HubSpot.

Because HubSpot Contacts sync with both Salesforce Leads and Contacts, whichever Salesforce record with that email address was updated most recently is the one that syncs back into HubSpot.

If a HubSpot Contact already exists and is linked to an existing Salesforce record, a brand-new Lead will not be created in Salesforce for that same email.

The cleanest way some teams avoid this tug-of-war is to move to an Opportunity-based approach to inquiry management in Salesforce and stop using the Lead object entirely.

How to set up the sync correctly

Start by installing the HubSpot-Salesforce integration from the HubSpot App Marketplace and walking through the integration settings, including the choice of whether HubSpot will create Salesforce Leads or Contacts.

Once connected, you’ll tighten the sync by aligning fields on the Salesforce side and mapping them in HubSpot.

Create fields on Lead and Contact in Salesforce

Every Salesforce field has two identifiers: Field Label and API Name.

The Field Label is what end users see on the page layout and what they’ll reference in day-to-day use. The API Name is what formulas, templates, and integrations reference.

HubSpot relies on the API Name when it syncs to Salesforce.

That distinction matters because HubSpot Contact properties do not inherently distinguish between the Lead and Contact objects in Salesforce when they look for a matching field.

If the Lead field and the Contact field in Salesforce share the same API Name, HubSpot will treat them as one target and sync a single HubSpot property to both. If the API Names differ, HubSpot will treat them as separate fields.

For more guidance, see why field mapping matters in the HubSpot-Salesforce integration.

The practical takeaway: when you create or align fields on Salesforce Lead and Contact for use with HubSpot, make sure the API Name is identical on both objects if you want one HubSpot property to sync cleanly to each.

Map Salesforce fields to HubSpot properties

With fields aligned, configure the mappings in HubSpot.

Go to Connected Apps > Integrations > Salesforce.

Under the Contacts tab, open Contact property mappings and click Add new field mapping.

On the left, choose the HubSpot property. On the right, select the corresponding Salesforce field.

If your Salesforce Lead and Contact fields share the same API Name, you’ll see a single Salesforce field option in the dropdown.

If they don’t, you’ll see multiple options, which is a signal the API Names differ.

Fix that on the Salesforce side by updating the API Names to match, then return to HubSpot and remap. This ensures one HubSpot property writes consistently to Lead and Contact in Salesforce.

Put simply

Syncing HubSpot Contacts with Salesforce Leads and Contacts requires working within two core constraints: HubSpot’s one-record-per-email rule and the integration’s one-choice setting for creating either Leads or Contacts in Salesforce.

Those constraints explain why duplicates behave differently and why a single form submission cannot dynamically create a Salesforce Lead sometimes and a Contact other times.

If those limits are creating operational drag, many teams find relief by shifting to an Opportunity-based inquiry model in Salesforce and retiring the Lead object.

We are HubSpot-Salesforce integration experts

RevBlack works with marketing and sales teams who rely on HubSpot for marketing and Salesforce for revenue.

We fix the messy middle - sync errors, duplicates, lost leads, and reporting gaps - so both platforms actually work together.

If your team is overwhelmed with integration issues and needs a setup you can trust, contact us and we’ll scope how we can be of assistance.

FAQ: Syncing HubSpot contacts with Salesforce leads and contacts

Why can’t HubSpot create both Leads and Contacts in Salesforce?
The native integration requires you to choose one object type. HubSpot can either create Leads or Contacts in Salesforce, but not both.

If you need flexibility, you’ll have to adjust your process or consider custom development.

What happens if multiple Salesforce records share the same email?
HubSpot only allows one Contact per email. If Salesforce has duplicates, whichever record with that email was updated most recently will sync back into HubSpot.

This can prevent new Leads from being created in Salesforce.

How do API Names impact the sync?
HubSpot looks at the API Name when syncing fields.

If the API Names on Lead and Contact objects match, HubSpot treats them as one field. If they don’t, you’ll see duplicates in your mapping.

Aligning API Names prevents conflicts.

Can I work around the Lead vs Contact limitation?
Many companies move away from Salesforce Leads and shift to an Opportunity-based approach.

This reduces friction with HubSpot, since Contacts become the main object tied to deals.

What’s the best way to prevent sync errors?
Start with a clean data strategy.

Align field names, set clear ownership for Leads vs. Contacts, and define when HubSpot should create records.

Use Inclusion Lists in HubSpot and monitor duplicates with tools like Insycle.

Still lost? HubSpot has a step-by-step guide on how Salesforce Leads and Contacts sync with HubSpot Contacts. You can find it here.

Guides

Don't miss these

Get started with revblack today

Ready to see these results for your business?

Fill out form