All guides
HubSpotData Cleanup

HubSpot Duplicate Removal: Find and Merge Duplicates

By SearchReplace··9 min read

Duplicate records are the most visible symptom of CRM data quality problems. When the same person exists as two contacts, the same company appears three times, or the same deal is tracked twice, everything downstream suffers. Reports overcount. Automations fire multiple times. Sales reps reach out to the same prospect twice (or not at all, because each rep sees a different record and assumes the other person is handling it).

HubSpot has built-in tools for finding and merging duplicates, but they only handle part of the problem. This guide covers the full deduplication lifecycle: finding duplicates, merging them correctly, cleaning up the data that causes duplicates, and preventing them from recurring.

How duplicates get created

Understanding the sources of duplicates helps you prioritize your cleanup and prevention efforts.

Multiple form submissions with different emails

A contact submits a form with their work email, then later submits another form with their personal email. HubSpot creates two contact records because email is the primary deduplication key. Both records are the same person, but HubSpot does not know that unless the emails match.

Imports without proper dedup keys

Importing a CSV of contacts from an event, a purchased list, or another system creates duplicates when the import does not include an email address that matches existing records. If John Smith exists in HubSpot as [email protected] and the import file has his name but a different email ([email protected]), HubSpot creates a second record.

Manual creation by sales reps

A rep searches for a company, does not find it (because of a typo or different naming), and creates a new one. Now "Acme Corporation" and "Acme Corp" both exist. This happens more often than anyone wants to admit, especially in fast-moving sales teams where reps are focused on speed, not data entry precision.

Integration sync errors

Salesforce, Intercom, Drift, and other integrated tools can create contacts in HubSpot. If the sync configuration does not properly match on email or a custom ID, new records get created instead of updating existing ones. A misconfigured integration can create hundreds of duplicates before anyone notices.

Marketing-to-sales handoff

In some setups, marketing captures leads through forms and ads, while sales uses a different tool to prospect. Both systems sync contacts to HubSpot independently, creating duplicates for anyone who exists in both systems.

HubSpot's built-in duplicate tools

For contacts

Navigate to Contacts > Contacts, click the Actions dropdown, and select Manage duplicates. HubSpot shows pairs of contacts it believes are duplicates, ranked by confidence level.

HubSpot identifies potential duplicates using:

  • Matching email addresses (highest confidence)
  • Matching first name + last name + company
  • Similar names with the same email domain
  • Matching phone numbers

For each duplicate pair, you can:

  • Review the two records side by side
  • Merge them by selecting which record to keep as the primary and which values to preserve
  • Reject the match if they are not actually duplicates

The merge process combines the two records: all associations (deals, tickets, activities), all property values (you choose which record's values to keep for conflicting properties), and all timeline events are consolidated into one record.

For companies

Company duplicate management works similarly but is based on the Company Domain Name property. Companies sharing the same domain are flagged as potential duplicates.

This is effective for straightforward duplicates but misses cases where:

  • Two company records represent the same company but have different domains (e.g., after an acquisition)
  • The domain field is blank on one or both records
  • The company has multiple legitimate domains (corporate domain + product domain)

Limitations of the native tools

HubSpot's duplicate management is a manual, one-pair-at-a-time process. There is no "merge all" button. For a portal with 500 duplicate pairs, you are clicking through and resolving 500 pairs individually. At 1-2 minutes per pair, that is over 8 hours of work.

The tool also only catches duplicates that match its detection criteria. Duplicates with different emails, different name spellings, or missing properties may not appear in the duplicate suggestions at all.

There is no native deduplication for deals, tickets, or custom objects. If duplicate deals exist, you need to find and resolve them manually.

A systematic deduplication process

Step 1: Standardize before deduplicating

This is counterintuitive, but standardizing your data before running dedup catches more duplicates. Here is why: if one contact record has the company name "Acme Corp" and another has "Acme Corporation," HubSpot's duplicate detection may not match them because the company names differ.

If you first standardize all variations of the company name to one value (using find-and-replace), both records now show "Acme Corporation." The duplicate detector has a better chance of flagging them.

Key properties to standardize first:

  • Company Name (on both contact and company records)
  • Email domain capitalization (lowercase all email addresses)
  • Phone number format (so phone-based matching works)
  • Name formatting (remove prefixes, standardize casing)

Step 2: Run HubSpot's duplicate management

After standardization, go through HubSpot's duplicate suggestions:

For contacts:

  1. Open the duplicate management view
  2. Start with the highest-confidence pairs (email matches)
  3. For each pair, check the timeline events on both records — this tells you which record has more activity and is likely the "better" primary
  4. Merge, keeping the primary record and selecting the most accurate property values from either record
  5. Work through lower-confidence pairs, rejecting false positives

For companies:

  1. Open company duplicate management
  2. Focus on same-domain duplicates first
  3. Before merging, check associated contacts and deals on both records to understand the merge impact
  4. Merge, choosing the primary record

Step 3: Find duplicates the native tool misses

HubSpot's tool does not catch everything. To find remaining duplicates:

Export and analyze. Export your contacts to CSV and use spreadsheet functions to find potential duplicates:

  • Sort by First Name + Last Name and look for matches
  • Sort by phone number and look for matches
  • Sort by company + email domain and look for pairs

Use custom lists. Create HubSpot lists that surface likely duplicates:

  • Contacts where First Name + Last Name appears more than once
  • Companies where Company Name (without suffixes like "Inc." or "LLC") matches another company
  • Contacts at the same company with the same first name

Look at behavioral signals. If two contacts always engage with the same content, attend the same events, and are at the same company, they might be the same person with different email addresses.

Step 4: Prevent future duplicates

Deduplication is a losing battle if new duplicates are created as fast as you merge old ones.

Enforce email validation on forms. Make email a required field on every form. Use HubSpot's email validation to reject obviously invalid addresses.

Standardize imports. Before importing any data, check the import file for internal duplicates (same email appearing twice) and for matches against existing HubSpot records. HubSpot's import tool has a "Don't import" option for rows that match existing records — use it deliberately.

Configure integration dedup rules. For every integration that creates contacts in HubSpot, verify the matching logic. Most integration platforms let you define what field to match on (email, custom ID) and what to do when a match is found (update vs. create). Set these correctly.

Use marketing-to-sales handoff workflows. Instead of having both marketing and sales independently create contacts, use HubSpot workflows to manage the handoff. Marketing creates the contact, the workflow assigns it to sales — no duplicate created.

Establish naming conventions. Document how company names should be entered. "Acme Corporation" (not "Acme Corp," "Acme Corp.," or "ACME"). When reps know the convention and follow it, they find existing records instead of creating new ones.

Where find-and-replace fits into deduplication

Deduplication and find-and-replace serve different purposes but work together in a data quality workflow.

Find-and-replace standardizes data to make dedup more effective. By normalizing company names, email formats, and other text values, you increase the chance that HubSpot's duplicate detection algorithms will flag actual duplicates. Two records with different company name spellings are harder to match than two records with identical company names.

Find-and-replace cleans up after merges. When you merge two contacts, the surviving record may have properties that reference the old record's values. For example, if a deal description says "Primary contact: John at [email protected]" and you merged John's old email into a record with [email protected], that deal description still references the old email. A find-and-replace on deal descriptions corrects these stale references.

Find-and-replace prevents certain types of duplicates. Some duplicates exist because property values diverged — the same company spelled two ways, the same email domain in different cases. Periodically running find-and-replace to standardize these values reduces the conditions that allow duplicates to hide.

Dealing with large-scale duplication

For portals with thousands of duplicates (common after years of operation or a major import), a manual pair-by-pair approach is not practical. Options:

Triage by impact. Focus on duplicates that affect active deals, open tickets, and engaged contacts first. Duplicate records for contacts who have not opened an email in two years are lower priority.

Set a merge policy. Decide in advance: when two records conflict on a property value, which wins? Possible policies:

  • Most recently updated value wins
  • The value on the record with more activity wins
  • Always keep the value from the primary record

Having a policy lets you work through merges faster because you are not making judgment calls on every property for every pair.

Use batch processing. For obvious duplicates (exact email matches, exact company domain matches), the merge decision is clear. Process these in batches without extensive review. Reserve careful, one-at-a-time review for ambiguous cases.

Accept imperfection. For large-scale dedup, 100% accuracy is not practical. You will merge some records that should have stayed separate, and you will miss some duplicates. The goal is to get the database to a state where duplicates are the exception rather than the norm, and then maintain that state going forward.

Deduplication is not glamorous work, but it is foundational. Every report, every automation, every personalized email, and every sales workflow assumes that one person equals one record and one company equals one record. When that assumption is wrong, everything built on top of it is unreliable. Start with standardization, deduplicate systematically, and put prevention measures in place to keep it clean.

If your dedup project starts with data standardization — and it should — SearchReplace handles the bulk cleanup that makes duplicate detection reliable.

Related HubSpot guides for planning, previewing, and validating the next step.

Still editing HubSpot records one by one?

Start with 100 free applied records — no credit card required.