How-To Guide • Updated March 2026

How to Fix HubSpot Duplicate Contacts (3 Methods)

Step-by-step instructions for finding and merging duplicate contacts in HubSpot. Three methods: manual merge for <20 duplicates, native Manage Duplicates tool for 2,000-10,000 records, and automated solutions for ongoing cleanup.

Free tier compatible
Works immediately
Prevents data loss

Why This Matters

Duplicate contacts break everything in your CRM:

  • Workflows enroll contacts multiple times: Same person gets 2 emails for every campaign
  • Reports are wrong: Your dashboard shows 5,000 contacts but you only have 3,200 real people
  • Sales reps call the same person twice: Because they have 2 records in the pipeline
  • List limits hit faster: Marketing contact limits are based on your tier. Duplicates inflate your contact count, pushing you toward tier upgrades

Duplicates creep in from form submissions, CSV imports, integrations, manual entry, and they quietly wreck your reporting, your automations, and your team's trust in the CRM.

Method 1: Manual Merge (For Small Cleanups)

Use when: You have fewer than 20 duplicate pairs to merge, or you spot duplicates while working in the CRM.

Time required: 2-3 minutes per duplicate pair

HubSpot tier: Works on Free tier and above

Step-by-Step Instructions:

  1. Navigate to the contact record you want to keep as primary

    Go to Contacts > All Contacts, then click on the contact record with the most complete information (usually the one with the earliest creation date but most recent activity).

  2. Click "Actions" in the top-right corner

    A dropdown menu will appear.

  3. Select "Merge"

    HubSpot will open a search box.

  4. Search for the duplicate contact

    Type the contact's name or email to find the duplicate record.

  5. Review the merge preview

    HubSpot shows you a side-by-side comparison of both records. The remaining record combines activities, associations, and most property values from both records.

  6. Click "Set properties to review" to compare all fields

    This shows you all contact properties side-by-side. Pay special attention to:

    • Email addresses (both will be preserved)
    • Lifecycle stage
    • Lead status
    • Contact owner
    • Deal associations
  7. Select the record to keep, or cherry-pick properties

    You can either keep all data from the primary record, or select specific property values from each record.

  8. Click "Merge"

    Once you've merged two records, it is not possible to unmerge them. Make sure you're merging the right contacts.

Pro Tip: Which record to keep?

Pick the one with the most recent engagement and the earliest creation date. You want the longest history with the most current information.

What Happens When You Merge:

Method 2: Native Manage Duplicates Tool (Bulk Cleanup)

Use when: You have 20+ duplicate pairs to clean up.

Time required: 30-60 minutes for initial cleanup

HubSpot tier: Professional or Enterprise (limits: 2,000 duplicates on Pro, 10,000 on Enterprise)

Step-by-Step Instructions:

  1. Go to Contacts > All Contacts
  2. Click "Actions" dropdown

    Located above the contacts table.

  3. Select "Manage duplicates"

    This only works for admin and users with full access on CRM settings. If the user has either a "team only or owned only" access, this tool is disabled.

  4. Review the duplicate pairs HubSpot identified

    HubSpot shows you a list of potential duplicates based on matching email addresses and similar names.

  5. For each pair, click "Review"

    This opens a side-by-side comparison.

  6. Choose which record to keep, then click "Merge"

    Or, if the records aren't actually duplicates, click "Reject" to remove this pair from the list.

  7. For bulk merging: Select checkboxes next to multiple pairs, then click "Merge all"

    This merges all selected pairs at once. Use with caution—make sure they're all legitimate duplicates.

Limitation: Caps at 2,000-10,000 results

HubSpot's native Manage Duplicates tool is capped at 2,000-10,000 results depending on your plan and can't be customized. If you have more duplicates than this, you'll need Method 3.

Method 3: Automated Deduplication (For Ongoing Prevention)

Use when: You have thousands of duplicates, or you want to prevent duplicates from forming in the first place.

Time required: 2-3 hours for initial setup, then automatic ongoing

HubSpot tier: Works on any tier (requires third-party app)

Option A: Use Koalify (Recommended for Most Teams)

Koalify is the best HubSpot-native app for deduplication: custom matching rules, bulk merge via workflows, and it works across contacts, companies, deals, and custom objects.

Why Koalify:

Setup:

  1. Install Koalify from HubSpot App Marketplace
  2. Define your matching rules (e.g., "Match contacts with same email" or "Match companies with same domain + same city")
  3. Set merge priority (which record to keep when duplicates are found)
  4. Enable auto-merge or manual review
  5. Schedule daily/weekly scans

Option B: Use Insycle (For Advanced Data Operations)

Insycle allows you to match duplicates using any field in your database as a matching field, with deep data retention settings at the field-level.

Why Insycle:

Tradeoff: More powerful than Koalify, but steeper learning curve and takes you outside the HubSpot interface.

Prevention Strategies (Stop Duplicates Before They Start)

1. Use Email as the Primary Identifier on Forms

When someone submits a form on your site, HubSpot checks their browser cookie against existing contacts. If the submission comes from the same browser, HubSpot updates the existing record instead of creating a new one.

Action: Make sure every form includes an email field. When a new contact is added, HubSpot will look for a matching value in the Email property.

2. Use Record IDs When Importing Data

Record IDs can be used to manually deduplicate contacts, companies, deals, tickets, products, and custom objects.

  1. Export your contacts with Record ID included
  2. Use VLOOKUP in Excel/Sheets to match new data to existing Record IDs
  3. Import with Record ID column—HubSpot will update existing records instead of creating duplicates

3. Turn Off "Always Create New Contact" in Form Settings

If you want each form submission to create a new contact, you can select Always create new contact for new email in your form options. This overrides token-based deduplication. Turn this OFF unless you have a specific reason to create duplicates.

4. Create Custom Properties That Require Unique Values

HubSpot enables you to create up to 10 custom properties that require unique values. Examples: order numbers, user IDs, trial IDs. These properties flag potential duplicates.

Common Mistakes to Avoid

Mistake 1: Merging Too Quickly

Once you've merged two records, it is not possible to unmerge them. Always review the side-by-side comparison before clicking merge.

Mistake 2: Not Checking Deal Associations

If one contact is associated with a $50K deal and the other with a $5K deal, make sure both deals stay associated after the merge. Check the "Associations" section in the merge preview.

Mistake 3: Ignoring Lifecycle Stage Conflicts

If one duplicate is "Lead" and the other is "Customer," you probably want to keep "Customer." Check lifecycle stage in the merge preview and choose the more advanced stage.

Need help cleaning up your HubSpot database?

We run HubSpot audits and data cleanup for B2B companies. We'll find your duplicates, merge them properly, and set up prevention systems so they don't come back.

Get a Free HubSpot Audit