Sea of Knowledge

Syncing Salesforce Leads and Contacts with HubSpot Contacts

Written by Lauren Ryan | September 2024

There are Leads and Contacts in Salesforce, and, as of recently, there are also Leads and Contacts in HubSpot. This can be kind of confusing if you're used to not having Leads in HubSpot.

At INBOUND 2023, HubSpot announced that there are now Leads. Many people thought that now that both systems have Leads and Contacts, syncing issues would be a thing of the past. However, this is not the case, as HubSpot Leads have a different data structure and usage. In short, they do not sync. So, for the purposes of our discussion, we’ll forget about HubSpot Leads.

Historical Context About the Lead Object in Salesforce

Salesforce created the Lead object as a landing pad for a Contact. So, Leads are essentially contacts for whom you didn’t know much information before you added them to your CRM. Maybe you only knew their name, title, and company and didn’t have their email or phone number, and your sales team needed to build more context for that lead before they could officially enter your database. Once you have that extra information, you convert a Lead into a Contact and create an Account, and you can even make an Opportunity as well. The Lead object is only meant to serve as a way to store whatever we know about someone until we have enough data to store them properly.

Nowadays, teams use the Lead object differently from this initial intent. Some teams will use the Lead object until an opportunity is ready to be ‘closed won’ and we're ready to collect revenue. We're only supposed to keep that Lead until we have enough data to know who they are as a person and we can contact them. So once you have a name, email address, and phone number, it should no longer be a Lead in Salesforce.

HubSpot designed its model with only one object representing the Contact. Even though there’s now a Lead object in HubSpot, the Contact remains the only object representing contact data, and a Contact is required to create a Lead record.


How do Salesforce Leads and Contacts Sync to the Contact Object in HubSpot?

For the integration to work, HubSpot needs to sync its Contact object with the objects holding Contact data in Salesforce. Here’s what that mapping looks like.

You can choose between a few settings when setting up the integration.

First, is what happens to HubSpot Contacts based on what happens to Salesforce Leads and Contacts? If we create a Contact in Salesforce, do we want it to be created in HubSpot? If we create a Lead in Salesforce, do we want it to be created in HubSpot?

The Create and Update settings are connected, so you can’t choose to create records without updating them, and vice versa. If you want to sync updates between Contacts in Salesforce and HubSpot, you must have the setting turned on to create new Contacts if a new Contact is created.

From HubSpot to Salesforce, you need to decide whether to sync new records in HubSpot as Leads or Contacts in Salesforce. This is one simple setting—a quick dropdown—but there are many strategic things to consider when choosing this setting.

If we are syncing Leads from HubSpot to Salesforce, what are we going to do if a Lead reconverts down the line? As you may know, you cannot have duplicate records in HubSpot based on your email address. A lot of teams, if they are not using HubSpot or a different platform, have a new Lead created for every form submission, event registration, or any sort of qualifying action that a Contact might take instead of updating the Contact record in Salesforce. They normally do this via an API or a similar workaround because this isn’t an option with the native HubSpot Salesforce integration.

If you are creating Leads in Salesforce from HubSpot, whenever that record is created in Salesforce, HubSpot will just sync updates moving forward. It will not create an additional Lead record for an existing email address. You can use other platforms like Zapier to work around that and create a new record in Salesforce.

Next, when you're setting up or managing the integration settings, you can control what happens when a record is deleted in Salesforce. If a Contact or Lead is deleted in Salesforce, you can also choose to delete that record in HubSpot or do nothing. However, this doesn’t work the other way around. If a HubSpot Contact is deleted, it will not affect the Salesforce record.

We recommend selecting the option to do nothing in HubSpot when a Contact or Lead is deleted in Salesforce to prevent losing data when a Lead is converted to Contact. For context, when Salesforce merges records, it deletes the merged record and moves the relevant data to the surviving record. If this setting is active and HubSpot is syncing with the record that is merged, not the surviving record, the HubSpot Contact will be deleted.

If you do have duplicate issues, which many teams using Salesforce do, we recommend turning this setting off and manually managing duplicates, through a tool like Insycle rather than relying on this setting.

Considerations Around Syncing Leads and Contacts from Salesforce to HubSpot

There are a few essential things to consider that will have a big impact on your account. First, we'll recap what we've already covered.

What will we create in Salesforce from HubSpot—Leads or Contacts?

We recommend creating Contacts in Salesforce because HubSpot has enough data to be considered a Contact when it syncs with Salesforc. We know their name, company, and email address at minimum. 

That said, every Salesforce admin and every organization has a different opinion on this, so it depends on how your organization works.

In any case, the decision to use Leads or Contacts should be discussed. Deciding to switch the integration to create Contacts instead of Leads without communicating it internally or building a plan can be very disruptive to your organization.

Our HubSpot Salesforce Integration Certification Course takes a deep dive into our recommended design where you use Contacts and Opportunities to represent those existing conversions. 

If you want to master this aspect of the HubSpot Salesforce integration, enroll in the course and check out module two.

The second consideration is duplicate management. 

What do we do when we have multiple records per email address? This is not possible in HubSpot, so if you try to create a new Contact record with the same email address as an existing record, it will not let you. But in Salesforce, whenever you go to create a duplicate Contact, you will be notified.

The notification is great, but it can be overridden by clicking Save again. Technically, your sales team could read the notification and deal with the root cause, but they will likely click until the Contact is saved. Instead, we recommend choosing not to allow duplicates to be created.

Remember, the most recently updated record (Lead or Contact) with the same email address will sync with HubSpot. Suppose you create a duplicate with an existing email address in Salesforce. In that case, it will overwrite the Contact data, and the new data will move over to HubSpot, even if the Contact has already been converted in the past. The implications of reporting are huge, not to mention the potential issues of triggering workflows and having people receiving communications they shouldn’t be.

We recently hosted a training session on managing duplicates in the HubSpot Salesforce integration. Join the Navigators Community to access every training session and master the HubSpot Salesforce integration.

The next consideration is mapping fields between Leads and Contacts in the integration.

Mapping fields in the integration essentially means selecting which field from one platform corresponds to a field on the other platform. A common mistake we see is when people need to sync data from HubSpot to both the Contact and Lead objects in Salesforce but do not use the same API name on the Salesforce fields.

The image below shows a side-by-side comparison of a custom field on both a Lead and a Contact. Both store direction data, but there’s only one property in HubSpot despite there being two in Salesforce. If we were to map these properties, we’d need to create two mappings. When we create the second one, we’ll get an error that says the property is already mapped, and it will create a mapping loop.

Some teams choose to do this because they might have different data in one versus the other, but it will always be problematic in some way if you choose to use different API names.

Instead, there should be one property in HubSpot with its corresponding field in Salesforce, as you can see below. So, if you have records in your HubSpot account where it is mapped twice or you're dealing with these two different fields on the Lead and Contact, you can condense those by just updating the API name, and then you only have one mapping and one field to manage.

Join Navigators and Master the HubSpot Salesforce Integration

If you’re a HubSpot and Salesforce user, chances are, at least once, you’ve hit a wall with the integration and spent days or weeks trying to get an answer. Heck, maybe you even contacted support or posted on the community, hoping to get some help.

Now, we’ve made it easier for you to find answers. The Navigators Community is a dedicated space for users of the HubSpot Salesforce integration to post questions, share their experiences, and celebrate their wins together.

Each month, we host live training sessions to discuss the integration’s ins and outs. Can’t wait until next month? Post a question in the forum, and our experts will answer. Plus, joining the community grants you instant access to dozens of recorded training sessions and a growing resource library, including weekly how-to articles and much more.