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.
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
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:
- 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).
- Click "Actions" in the top-right corner
A dropdown menu will appear.
- Select "Merge"
HubSpot will open a search box.
- Search for the duplicate contact
Type the contact's name or email to find the duplicate record.
- 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.
- 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
- 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.
- 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:
- Email addresses: The email address of the primary contact is maintained as the primary email address, the secondary contact's email address will be added as a secondary email address
- Activity timeline: All emails, meetings, calls, notes from both records merge into one timeline
- Deal associations: If both contacts are associated with deals, all deal associations are preserved
- List memberships: The merged contact appears in all lists both contacts were part of
- Workflow enrollments: Active workflow enrollments from both contacts are preserved
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:
- Go to Contacts > All Contacts
- Click "Actions" dropdown
Located above the contacts table.
- 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.
- Review the duplicate pairs HubSpot identified
HubSpot shows you a list of potential duplicates based on matching email addresses and similar names.
- For each pair, click "Review"
This opens a side-by-side comparison.
- 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.
- 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)
Why Koalify:
- Fully native: CRM cards for quick action right where you're already working
- Custom matching rules: Match by name, email, phone, or any property combination
- Workflow integration: Merge duplicates automatically when contacts are created
- Works beyond contacts: Handles companies, deals, tickets, and even custom objects
- Trusted: 4,000+ installs and a perfect 5.0 rating from 100+ reviews
Setup:
- Install Koalify from HubSpot App Marketplace
- Define your matching rules (e.g., "Match contacts with same email" or "Match companies with same domain + same city")
- Set merge priority (which record to keep when duplicates are found)
- Enable auto-merge or manual review
- Schedule daily/weekly scans
Option B: Use Insycle (For Advanced Data Operations)
Why Insycle:
- Field-level control: Choose which property values to keep when merging
- Advanced matching: Match by any combination of fields (not just email)
- Bulk operations: Merge duplicates in bulk or on a case-by-case basis
- Preview before merge: Review HubSpot contact, company, and deal deduplication changes before they go live
- Scheduled automation: Schedule automated deduplication hourly, daily, weekly, or monthly
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
- Export your contacts with Record ID included
- Use VLOOKUP in Excel/Sheets to match new data to existing Record IDs
- 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