30% of Your HubSpot Records Are Duplicates. Here's the 20-Minute Fix
Learn how to clean up duplicate contacts in HubSpot in 20 minutes using Manage Duplicates, unique ID properties, Operations Hub rules, and import locks.
Table of contents
When we audit a B2B scale-up between $2M and $25M ARR (£2M–£20M), we always check the ratio of total contacts to unique commercial buyers first. Across portals live for over twenty-four months without dedicated RevOps governance, 18% to 30% of contact and company records are functional duplicates.
Most leadership teams treat duplicate records as minor admin friction. In reality, duplicate contacts and companies quietly sabotage three commercial systems at once: they split sales activity timelines across competing records, corrupt multi-touch attribution, and expose your organisation to avoidable UK GDPR compliance risk.
If your team is searching for how to clean up duplicate contacts in HubSpot without spending weeks inside VLOOKUP spreadsheets or wiping active deal associations, here is the exact 20-minute triage workflow we run — plus the four governance rules that stop duplicates from returning.
1. Why Duplicate Contacts in HubSpot Cost More Than Tier Fees
Paying HubSpot twice for the same buyer in your Marketing Contacts tier is frustrating, but the real cost sits in lost pipeline and compliance exposure. When your CRM turns into a HubSpot portal junk drawer, duplicates trigger four failure modes:
- Split sales timelines and double outreach: An SDR enrols
j.smith@company.co.ukinto an outbound sequence while an Account Executive negotiates a £45,000 proposal withjohn.smith@company.co.ukon a separate record created by a webinar CSV import. - Broken attribution and funnel reporting: A buyer downloads a guide using a secondary email (stamping
Original Source = Paid Socialandhs_v2_date_entered_marketingqualifiedlead), then books a demo under their corporate alias. Sales logs the Deal on the second contact, attributing closed-won revenue toOffline Sources. - UK GDPR and PECR Reg 22 opt-out violations: Under the Data Protection Act 2018 and PECR, if a prospect unsubscribes on Record A (
Unsubscribed from all email = True), your obligation applies to the individual, not one database row. If Record B remains aMarketing contactwith a blankhs_legal_basisand receives a campaign, you risk an ICO complaint — a core check in our GDPR compliance checklist for HubSpot. - Inflated contact tier billing: Carrying 8,000 duplicate marketable contacts (
hs_marketable_status = true) costs UK scale-ups £3,600 to £9,600 per year in wasted HubSpot fees. See how we govern contact tiers inside a B2B data governance framework your board will trust.
2. The 20-Minute Triage: How to Clean Up Duplicate Contacts in HubSpot
You do not need a third-party app for an initial cleanup. HubSpot's native deduplication tools resolve obvious duplicates in twenty minutes when executed in this order:
- Minutes 1–5 — Export a pre-merge safety snapshot: Merging in HubSpot is irreversible. When you merge Record B into Record A, Record A's
Record ID(hs_object_id) survives, Record B's ID moves intoMerged Contact IDs(hs_merged_object_ids), and Record B unenrolls from active workflows. Filter suspect duplicates into an active list and export all properties to CSV as a rollback reference first. - Minutes 5–12 — Batch-triage in Manage Duplicates: Navigate to
Contacts > Contacts > Actions > Manage Duplicates(Professional and Enterprise; Starter portals merge directly on a contact record viaActions > Merge). HubSpot pairs duplicate candidates by name similarity, normalised phone number (hs_searchable_calculated_phone_number), IP country, and company domain. - Minutes 12–16 — Apply the Primary Record survivorship rule: When reviewing a pair, always keep the contact with the earliest verified
Create dateand populatedOriginal Source, unless the newer record holds your live SaaSApp User ID. HubSpot combines timeline activities, form submissions, and deal associations from both records, while the primary record's current values win on single-value fields likeLifecycle StageandContact owner. - Minutes 16–20 — Lock secondary emails into
hs_additional_emails: Merging two contacts with different email addresses keeps the primary address inEmailand stores the second inAdditional email addresses(hs_additional_emails). HubSpot then deduplicates future form fills and tracked emails against both addresses automatically.
Free 30-Minute HubSpot Data Governance Review
Worried about merging thousands of duplicate HubSpot records and breaking active deals?
Marketick audits B2B HubSpot portals globally to clear duplicate backlogs, configure safe survivorship rules, and lock down enrichment integrations without losing attribution.
Book Your Free Discovery Call →How much pipeline revenue is your CRM leaking right now?
Most B2B scale-ups lose 15–30% of potential pipeline to unworked MQLs, stalled deal stages, and attribution blind spots. Answer 8 quick questions to calculate your exact annual revenue leak in GBP (£) and get a prioritised fix roadmap.
3. Company Deduplication: Avoiding the Parent-Child Association Trap
Next, switch Manage Duplicates from Contacts to Companies. Merging duplicate companies requires three technical checks:
- Standardise
Company domain namefirst: HubSpot deduplicates companies usingCompany domain name(domain), notCompany name. When SDRs create accounts from LinkedIn without a domain, HubSpot spawns duplicate records (e.g.,Acme UK Ltdwith a blank domain alongsideacme.co.uk). Populate the missing domain before merging so future contacts auto-associate cleanly. - Clear Parent-Child hierarchy locks (
hs_num_child_companies): HubSpot blocks any company merge where either record sits in a Parent-Child hierarchy (hs_parent_company_idis known orNumber of child companies > 0). Temporarily remove the parent/child association on the record sidebar, merge the companies, and re-attach the hierarchy. - Pause automatic Lifecycle Stage syncing before bulk merges: In
Settings > Objects > Companies, check whetherSync lifecycle stageis active. Merging a legacy prospect company with an activeCustomercompany while sync is enabled can overwrite contact lifecycle timestamps — a control we verify in our 7-point HubSpot audit checklist.
4. Stop Duplicates Before They Start: 4 Preventive Governance Rules
Cleaning duplicates once without fixing ingestion pipes guarantees they will return within six months. To advance up our RevOps maturity model and harden your revenue operations framework, enforce four rules:
- 1. Enable
Require unique valueson custom external IDs: InSettings > Properties, enableRequire unique values for this property(up to ten custom properties per object) onApp User ID,Stripe Customer ID, orCompanies House Number. Passing that property asidPropertyduring API upserts updates the existing record even when a buyer changes their email. - 2. Restrict CSV imports and enforce deduplication keys: In
Settings > Users & Teams > CRM Tools, disable bulkImportpermissions for standard reps. Require every admin-approved CSV import to mapEmail(contacts),Company domain name(companies), orRecord ID. - 3. Set enrichment integrations to "Update Only If Blank": Configure Cognism, Apollo, ZoomInfo, and Clay to match on
EmailandCompany domain namebefore creating records, block free webmail domains on high-intent forms, and never overwrite existingOriginal SourceorContact ownerfields. - 4. Automate formatting in Operations Hub Data Quality Command Center: In Operations Hub Professional/Enterprise, open
Data Management > Data Qualityto turn on duplicate spike alerts, and use the workflowFormat dataaction to lowercase emails, trim whitespace on names, and standardise UK phone numbers to+44E.164 format.
Frequently Asked Questions
How does HubSpot automatically deduplicate contacts and companies?
HubSpot deduplicates contacts using the primary Email property (plus secondary addresses in hs_additional_emails) and deduplicates companies using Company domain name (domain). During CSV imports or API calls, you can also deduplicate using Record ID (hs_object_id) or custom properties with Require unique values enabled.
What happens to deals, activities, and workflows when you merge two contacts in HubSpot?
HubSpot keeps the primary contact's current property values (unless blank), combines all historical timeline activities, form submissions, and associated Deals/Tickets from both records, moves the secondary email into Additional email addresses, and unenrolls the secondary record from active workflows.
Can you undo a contact or company merge in HubSpot?
No. Merging contacts or companies in HubSpot is permanent and cannot be undone via the UI or API. Always export a full CSV backup of target records before running batch merges in Manage Duplicates.
Why won't HubSpot let me merge two duplicate companies?
HubSpot blocks company merges when either company belongs to a Parent-Child hierarchy (hs_parent_company_id or hs_num_child_companies is populated) or is locked by Salesforce sync rules. Temporarily remove the parent-child relationship on the company record, merge the records, and re-attach the hierarchy.
Does HubSpot Operations Hub automatically merge duplicate contacts?
HubSpot's Manage Duplicates tool and Data Quality Command Center flag duplicate pairs for review, while Operations Hub workflows standardise formatting (lowercase emails, whitespace, phone numbers). For automated rule-based bulk merging, RevOps teams run custom-coded workflow actions hitting the HubSpot Merge API (/crm/v3/objects/contacts/merge).
Want a second pair of eyes on your setup?
Book a free 30-minute discovery call. We'll tell you exactly where the leverage is — no pitch deck, no fluff.
Book a Free Discovery Call →