
TL;DR / Key Takeaways
| What is it? | A comprehensive breakdown of how HubSpot's native Salesforce integration handles deduplication — which objects it deduplicates, which it doesn't, and why your merge strategy matters more than you think |
| Key Insight | HubSpot deduplicates Leads, Contacts, and Accounts during sync, but NOT Deals (Opportunities) — and Salesforce itself does zero automatic deduplication without admin configuration |
| Who Should Read This | CRM administrators, RevOps teams, and data quality managers responsible for maintaining clean records across a dual-CRM environment |
| Best For | Organizations with high-volume lead intake from multiple channels that need reliable data integrity across HubSpot and Salesforce |
| Bottom Line | Deduplication isn't a set-it-and-forget-it feature — it requires understanding the logic, configuring Salesforce-side rules, and following strict merge procedures to preserve integration mappings |
Introduction: The Duplicate Problem Nobody Wants to Talk About
Duplicate records are the silent tax on every CRM operation. They inflate pipeline reports, fragment customer timelines, trigger duplicate outreach, and erode trust in the data that drives business decisions. In a single-CRM environment, duplicates are annoying. In a dual-CRM environment with an active integration, duplicates are dangerous.
When HubSpot and Salesforce are connected, a duplicate in one system can propagate to the other, multiply, and create cascading data quality issues that take weeks to untangle. The good news: HubSpot's native Salesforce integration includes built-in deduplication logic. The less-good news: that logic doesn't work the same way for every object type, and Salesforce itself doesn't deduplicate anything without explicit configuration.
This is Post 2 of a 7-part series. In Post 1, we covered the data model differences between platforms. Now we're getting into what happens when those data models collide and records need to be reconciled.
Which Objects Does HubSpot Deduplicate During Sync?
HubSpot's integration applies deduplication logic to three Salesforce object types during sync:
- Leads — Deduplicated by email address
- Contacts — Deduplicated by email address
- Accounts — Deduplicated by account ID and account name
Deals (Opportunities) are NOT deduplicated. Every Opportunity that syncs from Salesforce creates a distinct Deal record in HubSpot, regardless of whether a similar Deal already exists. This is because Deals lack a natural unique identifier like an email address — there's no reliable field to match on.
This distinction is critical for organizations with complex deal structures. If your sales team creates multiple Opportunities per Account in Salesforce (common in financial services for separate product lines or service agreements), each one will appear as a separate Deal in HubSpot. That's by design, but it means your HubSpot pipeline reporting must account for this volume.
Which Salesforce objects does HubSpot deduplicate during sync?
HubSpot deduplicates Leads, Contacts, and Accounts during the Salesforce sync. Deals (Opportunities) are not deduplicated — each Opportunity syncs as a distinct Deal record in HubSpot. The deduplication logic uses email addresses for Leads and Contacts, and a combination of account IDs and names for Accounts.
How Contact and Lead Deduplication Works
For Contacts and Leads, HubSpot uses a straightforward matching mechanism: email address.
When a Salesforce Lead or Contact syncs to HubSpot, the integration checks whether a HubSpot Contact already exists with the same email address. If a match is found, the integration links the existing HubSpot record to the Salesforce record rather than creating a duplicate. If no match is found, a new HubSpot Contact is created.
This logic runs in both directions:
- Salesforce → HubSpot: A new Salesforce Lead syncs to HubSpot. HubSpot finds an existing Contact with the same email and maps them together.
- HubSpot → Salesforce: A new HubSpot Contact syncs to Salesforce. If a Lead or Contact with that email already exists in Salesforce, the integration links them.
The edge cases that cause problems
Email-based deduplication is effective but not bulletproof:
- Missing email addresses: If a Salesforce Lead has no email address, HubSpot can't deduplicate it. A new HubSpot Contact will be created, potentially producing a duplicate if the person is later entered with an email.
- Multiple email addresses: If a person has different email addresses in each system (personal vs. work), the deduplication logic won't match them. They'll exist as separate records.
- Email format variations: HubSpot normalizes email addresses (lowercase, trimmed whitespace), but Salesforce doesn't always. Misformatted emails can slip through.
- Shared email addresses: In some B2B contexts (info@ addresses, shared team inboxes), multiple people may share an email. The integration will treat them as one person.
What property does HubSpot use to deduplicate contact records?
HubSpot uses the email address to deduplicate Contact and Lead records during the Salesforce sync. When a record syncs from either direction, HubSpot checks for an existing Contact with a matching email address. If found, the records are linked rather than duplicated. This approach works well for most scenarios but requires that both systems have accurate, consistent email data — records without email addresses or with mismatched addresses will not be deduplicated.
How Company (Account) Deduplication Works
Company deduplication follows different logic than Contact deduplication. Instead of email addresses, HubSpot matches Companies to Accounts using account IDs and account names.
The process works in two stages:
- Account ID matching: If a Salesforce Account has already been mapped to a HubSpot Company (via a previous sync), the integration uses the stored Salesforce Account ID to find the correct HubSpot record.
- Account name matching: If no ID match exists (i.e., the Account has never synced before), HubSpot attempts to match by company name. If a HubSpot Company with the same name already exists, the integration links them.
Name matching is inherently less precise than email matching. "Acme Corp," "Acme Corporation," and "ACME Corp." might all refer to the same company but won't match automatically. This is why Company deduplication requires more manual oversight than Contact deduplication.
How does HubSpot deduplicate Salesforce companies?
HubSpot deduplicates Salesforce Accounts by matching on account IDs first, then account names. If a Salesforce Account has previously synced and has a stored mapping, the Account ID ensures an exact match. For new Accounts, HubSpot falls back to company name matching — which is effective but imprecise. Variations in naming conventions (abbreviations, punctuation, capitalization) can prevent matches, making it important to standardize company naming across both systems.
The Deal Gap: Why Opportunities Don't Get Deduplicated
Deals are the one major object type that HubSpot does not deduplicate during the Salesforce sync. Every Salesforce Opportunity syncs as a unique HubSpot Deal, period.
Why? Because Deals don't have a natural unique identifier comparable to an email address. Deal names aren't unique (many organizations use templated naming like "Company Name - Product - Date"). Deal amounts change. Close dates shift. There's no single field that reliably identifies "this is the same deal."
Practical implications:
- If a Salesforce Opportunity is deleted and recreated (common during data cleanup), the new version will sync as a brand-new Deal in HubSpot. The old Deal record remains unless manually deleted.
- If your team creates test Opportunities in Salesforce, those will sync to HubSpot as real Deals. Use sandbox environments for testing.
- In financial services, where a single client Account might have dozens of Opportunities (one per product, per account, per portfolio), HubSpot will faithfully create a Deal for each one. Pipeline reports in HubSpot must be filtered appropriately.
Salesforce-Side Deduplication: Nothing Happens Automatically
Here's a fact that surprises many HubSpot administrators: Salesforce does not automatically deduplicate records. Unlike HubSpot's integration logic, Salesforce has no built-in mechanism that prevents duplicate Leads, Contacts, or Accounts from being created.
To manage duplicates in Salesforce, an administrator must configure two features:
- Matching Rules — Define the criteria for identifying potential duplicates (e.g., "Leads with the same email address" or "Accounts with the same name and billing city").
- Duplicate Rules — Define what happens when a match is found: block the record from being created, allow it with a warning, or allow it silently and create a report.
Without these rules in place, Salesforce will happily accept duplicate records from any source — including the HubSpot integration.
Does Salesforce automatically deduplicate records?
No. Salesforce does not automatically deduplicate records. Duplicate management requires explicit configuration by a Salesforce administrator using Matching Rules (which define the criteria for identifying duplicates) and Duplicate Rules (which define whether to block, warn, or report when duplicates are detected). Without these rules, duplicate records from any source — including the HubSpot integration — will be created without restriction.
The Merge Procedure: Preserving Integration Mappings
When duplicates do exist across systems, merging them correctly is essential to preserving the integration mapping. Merge the wrong way, and you'll break the sync relationship — requiring manual re-linking or, in worst cases, creating a new duplicate.
Merging duplicate Salesforce Contacts
When you have duplicate Contacts in Salesforce and one of them is syncing with HubSpot:
- Identify which Contact record is currently mapped to the HubSpot Contact (check the HubSpot Contact for the "Salesforce Contact ID" property).
- Select the syncing record as the primary record in the Salesforce merge process.
- Merge the duplicate into the primary record.
Why this order matters: Salesforce's merge process preserves the primary record's ID and deletes the secondary record's ID. Since HubSpot's integration mapping is keyed to the Salesforce record ID, selecting the non-syncing record as primary would orphan the HubSpot mapping, effectively breaking the sync.
Merging duplicate HubSpot Companies
The same principle applies in HubSpot. When merging duplicate Companies while the Salesforce integration is installed:
- Identify which Company is currently syncing with a Salesforce Account.
- Select the syncing Company as the primary record in the HubSpot merge process.
- Merge the duplicate into the primary record.
This preserves the Salesforce Account mapping and ensures ongoing sync continuity.
What's the best practice when merging duplicate Salesforce contacts with HubSpot connected?
Always select the record that is currently syncing with HubSpot as the primary record in the Salesforce merge process. Salesforce preserves the primary record's ID and deletes the secondary's. Since HubSpot's integration maps to the Salesforce record ID, choosing the wrong primary record breaks the sync mapping. The same rule applies when merging duplicate HubSpot Companies — always designate the syncing record as primary to preserve the Salesforce Account association.
Why Deduplication Matters More in Financial Services
In financial services, duplicate records aren't just a data quality nuisance — they're a compliance risk and a client experience failure:
AUM and portfolio reporting
If a wealth management firm has duplicate Contact records for the same client, portfolio data associated with one record won't appear on the other. AUM reports may undercount, advisor dashboards may show incomplete positions, and compliance reviews may miss activity.
Client communications
Duplicate records mean duplicate outreach. In a regulated industry, sending the same marketing email twice — or worse, sending contradictory communications — damages trust and can trigger compliance scrutiny. For firms subject to SEC or FINRA oversight, communication records must be accurate and complete.
Multi-channel intake
Financial services firms often acquire client data through multiple channels: advisor referrals, seminar registrations, website forms, centers of influence, custodial feeds, and direct mail responses. Each channel may use different data formats, creating high duplicate risk at the point of entry.
Household consolidation
Many wealth management firms need to view clients at the household level — multiple individuals associated with shared accounts, trusts, and entities. Duplicates at the individual level cascade into incorrect household groupings, affecting everything from relationship pricing to estate planning visibility.
The compliance documentation requirement
Regulators expect firms to maintain accurate, complete client records. Duplicate records create gaps in the audit trail — if client interactions are split across two records, neither record tells the full story. In an examination, that's a finding.
Building a Deduplication Strategy for Dual-CRM Environments
A proactive deduplication strategy should address prevention, detection, and remediation across both platforms:
1. Prevention — Stop duplicates before they're created - Configure Salesforce Matching Rules and Duplicate Rules with "Block" actions for high-confidence matches - Standardize email address formatting in both systems - Enforce required email fields on Lead and Contact creation - Use HubSpot form progressive profiling to capture email early in the journey
2. Detection — Find duplicates that already exist - Run HubSpot's built-in duplicate management tool regularly (Settings → Data Management → Data Quality) - Use Salesforce duplicate reports to identify matches flagged by Duplicate Rules - Cross-reference Salesforce Contact IDs in HubSpot to identify orphaned mappings - Audit Deal records in HubSpot for unexpected volume (which may indicate Opportunity duplication in Salesforce)
3. Remediation — Merge correctly when duplicates are found - Always merge with the syncing record as primary - Document the merge in both systems for audit purposes - Verify the integration mapping is intact after the merge (check for the Salesforce ID on the HubSpot record) - Re-run any affected reports or dashboards to confirm data accuracy
4. Ongoing governance - Include deduplication checks in monthly integration maintenance (covered in Post 6: Maintenance and Troubleshooting) - Assign ownership of data quality to a specific person or team — deduplication is everyone's problem until someone is accountable for it - Train sales and marketing teams on proper record creation procedures in both platforms
Frequently Asked Questions
If I merge two Contacts in Salesforce, does HubSpot automatically update?
Yes, but only if you merge correctly. When the syncing Contact is selected as the primary record, HubSpot recognizes the merge event and updates accordingly. If you accidentally select the non-syncing Contact as primary, the integration mapping will break and you'll need to manually re-link the records.
Can third-party deduplication tools help with cross-system duplicates?
Yes. Tools like DemandTools, Cloudingo, and Insycle can identify and merge duplicates within each platform. Some can even flag cross-system duplicates by comparing records in both HubSpot and Salesforce. However, the merge itself should still follow the primary-record rules described above to preserve integration mappings.
How often should I audit for duplicates?
For most organizations, a monthly audit is sufficient. For high-volume environments (firms processing hundreds of new leads per week), weekly audits may be necessary. Include duplicate detection as part of your monthly integration maintenance checklist.
What happens if I delete a duplicate instead of merging it?
Deleting a record in one system doesn't automatically delete the corresponding record in the other. If you delete a Salesforce Contact that was syncing with HubSpot, the HubSpot Contact will remain but lose its Salesforce mapping. It's generally better to merge than delete, as merging consolidates the data history.
Does the HubSpot deduplication logic run retroactively on existing records?
No. The deduplication logic runs at the point of sync — when a record is first synced or when it's updated. It doesn't retroactively scan for duplicates that were created before the integration was installed. Existing duplicates must be identified and resolved manually or with third-party tools.
Are there deduplication differences with Person Accounts?
Person Accounts follow the Contact deduplication logic (email-based matching) since they function as a Contact-Account hybrid. However, the Account side of a Person Account doesn't go through separate Account deduplication. If your org uses both standard Accounts and Person Accounts, make sure your Matching Rules cover both object types.
What's Next in the Series
With data model differences (Post 1) and deduplication logic (this post) established, the next piece of the puzzle is understanding how data actually flows: Sync Rules, Directions, and Field Mappings — Controlling How Data Flows. We'll cover sync directions, selective sync, the "Prefer Salesforce unless blank" rule, and how to handle property mapping errors.
Need Help With Your Deduplication Strategy?
Clean data is the foundation of every successful integration. At Vantage Point, we've helped 150+ clients across financial services, healthcare, and other regulated industries build deduplication strategies that actually work — across both HubSpot and Salesforce.
Whether you're dealing with years of accumulated duplicates or building a prevention-first strategy for a new integration, our dual-platform expertise means we understand the deduplication logic on both sides of the connector.
Schedule a Data Quality Assessment →
This is Part 2 of 7 in The Definitive Guide to HubSpot-Salesforce Integration from Vantage Point. Next up: Sync Rules, Directions, and Field Mappings.
