How to handle contact reconversions in HubSpot + Salesforce
Avoid duplicates & align workflows using Opportunities instead of Leads.
If only the buyer’s journey were linear. A prospect fills out a form, sales converts them, and an Opportunity closes. Done. In reality, B2B and SaaS businesses face upsells, renewals, expansions, and cross-sells long after that first deal.
Here’s where Salesforce’s traditional lead model collides with HubSpot’s contact-centric data model (we have a thorough guide exploring the different data models of HubSpot and Salesforce.)
Without careful planning, reconversions (when an existing customer raises their hand again) can cause duplicate records, disjointed nurture streams, and lost inquiries.
This guide explains why reconversions are messy in a HubSpot–Salesforce setup, how duplicate records behave, and the recommended approach to manage them cleanly.
Salesforce’s default inbound lead model
Traditionally in Salesforce:
- A new lead submits a form.
- A Lead record is created, assigned, and worked.
- If qualified, it’s converted to a Contact, Account, and Opportunity.
- The Opportunity is pursued until closed.
It’s tidy UNTIL a customer shows interest in something new.
At that point, many Salesforce users open a new Lead tied to the same individual.
It forces every interest through the same lead funnel, but it creates a duplicate.
Where HubSpot makes things complicated
HubSpot treats all individuals as Contacts.
Salesforce uses both Leads and Contacts to represent people.
Both sync to HubSpot as Contacts.
That means if a customer already exists as a Salesforce Contact but is also created as a new Lead, HubSpot is forced to choose.
HubSpot uses email address as the unique identifier, so only one record survives: the most recently updated one.
This causes HubSpot to toggle between the Lead and Contact, breaking workflows.
A Contact might be enrolled in a “book a meeting” nurture from the Lead record and a “buy more products” nurture from the Contact record, all at once.
New inquiries for existing contacts
When an existing Salesforce Contact submits a HubSpot form:
- HubSpot does not create a new Lead.
- Instead, it logs the submission as a completed Task in Salesforce.
- The Task is assigned to the integration user by default.
No sales rep gets notified, and therefore, no action is taken.
Workaround: creating new leads via Salesforce flow
Some teams want to keep the Lead object alive. It’s possible to auto-create a new Lead from HubSpot form submissions using Salesforce Flow.
This is not the recommended approach, but here’s how to configure it:
1. Create the flow
- Navigate to Setup > Flows.
- Click New Flow > Record-Triggered Flow.
- Select Task as the object.
- Trigger when a record is created.
- Entry Conditions: Subject Starts With “Form Submitted” AND WhatID Starts With 003 (Contact ID prefix).
2. Assign the contact ID
- Add an Assignment element.
- Store the WhatID from the Task into a variable called ContactID.
3. Pull contact information
- Add a Get Records element.
- Object = Contact.
- Condition: Contact ID equals ContactID.
- Store the first record and all fields.
4. Create the lead
- Add a Create Records element.
- Object = Lead.
- Map fields: Name, Email, and Recent Conversion (HubSpot property).
- If Recent Conversion isn’t mapped yet, create a text field on both Contact and Lead objects, then sync it through HubSpot.
5. Test & activate
- Test using the ID of a recent form submission Task.
- If successful, activate the Flow.
This ensures a new Lead record is created whenever an existing Contact reconverts.
But remember, HubSpot will still sync only the most recently updated record, which means toggling issues persist.
Recommended approach: use opportunities instead
Rather than duplicating Leads, the better long-term solution is to manage reconversions with Opportunities.
How to implement:
- Convert all Leads to Contacts. Add a Status field to Contacts (New, Working, Qualified, Customer, etc.).
- Deactivate the Lead object in Salesforce.
- Update the HubSpot integration to create new Contacts instead of new Leads.
- Create a HubSpot workflow that generates a Deal whenever a sales-interest form is submitted. That Deal syncs to Salesforce as an Opportunity.
This model ensures every reconversion (net-new or upsell) lives as an Opportunity tied to the existing Contact.
Why approach B works better
✔️ You get a unified customer view: No split between Lead/Contact.
✔️ Automation is more consistent: HubSpot workflows don’t break from record flipping.
✔️ Reporting is much easier: All interest flows through Opportunities.
✔️ It’s scalable: Handles complex B2B sales cycles (renewals, expansions) without duplicate noise.
Tired of fighting duplicate records and messy syncs?
RevBlack helps SaaS and PE-backed teams design clean HubSpot–Salesforce integrations that scale. Let’s talk.