Duplicates are the number one problem of HubSpot bases that have lived for more than two years. They skew your stats, put two reps on the same prospect, and bill you twice for the same marketing contact. This guide covers the three methods to get rid of them, from the simplest to the most robust, and above all the pitfalls to avoid when merging.
Where do duplicates come from?
Understanding the origin prevents relapse (see also our complete HubSpot database cleaning method). The four classic sources: successive file imports (trade shows, campaigns, bought lists) with no reliable matching key; forms filled by the same person with a different email each time (work then personal); manual entry by reps who do not check what already exists; and third party integrations (billing tool, webinar, enrichment) that create records instead of updating them.
Method 1: the HubSpot duplicate management tool
HubSpot offers a native tool (Contacts, then Actions, then Manage duplicates, depending on your version) that compares records on criteria such as name and email and suggests pairs to review. For each pair, you choose to merge or to ignore.
Its limits in practice: it works pair by pair, which becomes unmanageable beyond a few dozen duplicates; it does not detect email variants of the same person; and it does not tell you which record is the right one to keep (the most recent? the most complete? the one with activity history?).
Method 2: manual detection by export
For an overall view, export your contacts and work in Excel:
- Export all your contacts with the columns: first name, last name, email, phone, company, owner, last activity date.
- Create a matching key column, for example first name + last name + company in lowercase with no spaces.
- Use conditional formatting for "duplicate values" on that key, then sort.
- For each duplicate group, identify the record to keep: favour the one with activity history and an owner, then manually carry over the missing information before merging in HubSpot.
This method is reliable up to around 50 duplicate groups. Beyond that, processing time explodes and so does the risk of human error.
The merge pitfalls (read before you click)
- Properties: in case of conflict, HubSpot usually keeps the most recent value, which is not always the right one (an intern who updated a wrong job title "wins" against the true older value).
- Dead duplicates: merging two records inactive for two years does not create a prospect, it creates a clean dead record. First answer "should we keep this contact?", only then "should we merge?".
- Workflows: a merge can change properties that trigger workflows (lifecycle stage, status). Pause the affected workflows during a bulk deduplication, just like before any large HubSpot import.
Method 3: an external audit for large bases
Beyond a few hundred contacts, manual deduplication is no longer reasonable. An automated external audit detects duplicate groups (including on criteria HubSpot does not cross reference), picks the record to keep according to explicit rules (activity, completeness, owner), carries the copies' data into the kept record, and, crucially, traces every decision in a file you validate before reimporting anything.
On a recent audit of a 1,382 contact base: 73 duplicate groups detected, 64 of them actionable and documented record by record so you validate each merge yourself, and 9 fully inactive groups isolated for human arbitration rather than merged blindly.
How many duplicates in your base?
The free mini-audit gives you the exact figure within 24h, from a simple export, with no access to your portal, and your data goes to no cloud (100% local processing).
Get my free mini-audit