Skip to content
Datauntangler

No card required. The browser demo is free to use.

HubSpot deduplication that shows every duplicate contact before it merges

HubSpot deduplication means finding the records in your portal that describe the same person or company and merging them into one. HubSpot does part of that job natively, on Professional and Enterprise, through Actions and then Manage Duplicates. It matches on properties it already trusts. Everything that got in through a spreadsheet import, a trade show list or a form filled in with a personal address is still sitting there, and this page is about that half.

In-browser your file never leaves your computer

Every row proposed to you before it is applied

CSV log of what you approved and rejected

Clean a file
01 Try it on this page

Load a messy sample and watch it work

The same engine described below, running on your own machine. Nothing is uploaded and nothing is applied until you approve it.

1. Load a file

Your file is read on your own machine. Nothing is uploaded, so nothing can leak.

Or start from a messy sample

Status

Loading the sample file.

File: CRM contact export

Rows

--

Columns

--

Changes

--

Duplicate rows

--

Date formats

--

Blank emails

--

Load a file to see the diff

Drop a CSV or pick one of the messy samples. Every proposed change appears here as a line you approve or reject.

02 About hubspot deduplication

Why HubSpot still shows duplicate contacts after you run Manage Duplicates

The native tool compares properties. Email address, first and last name, phone, zip, IP country, company name. Two records that share one of those strongly enough get proposed as a pair, and you review them field by field before they merge. It is a good tool for the duplicates it was built for: the same person entered twice, in the same way, by two people.

It is a property match, so it stops where the properties stop agreeing. Jose Munoz at jmunoz@ridgeline.com and Jose Munoz at jose.munoz@ridgelinepartners.com are two contacts with two emails, two domains and no phone on either record. Nothing in the property set says they are one person. The pair is invisible to the match and stays in the portal through every pass you run.

That is the shape of most duplicate debt in a HubSpot portal. It arrived in bulk, from a file, with fields that were typed rather than validated, and it does not look duplicated to a rule that reads one field at a time.

What a property match sees and what a fuzzy pass sees

The pair in your portal Property match Fuzzy pass on the export
Same email, entered twice Found Found
Same email, different case or trailing space Usually found Found
Different email, same person and company Missed Found and scored
Acme Corp against Acme Corporation Missed Found after the suffix is normalized
Markus Hall against Marcus Hall Missed Found by edit distance
Personal address against work address Missed Found when name and company agree
Company record against its own subsidiary Missed Proposed, and usually one you reject

The last row matters as much as the rest. A matcher that is confident enough to catch the middle rows will also propose pairs that are genuinely two records, which is the reason every proposal on this site is a line you approve rather than an action already taken.

The comparison is not native against export. It is exact against approximate. Running both is the whole point: let HubSpot clear the easy pairs inside the portal, then work the export for the ones a field comparison was never going to reach. The matching itself is ordinary fuzzy matching, applied to a contact file instead of a database column.

How to deduplicate HubSpot contacts on the export

  1. 1 Export contacts from HubSpot with the Record ID column included. That column is what lets you act on exactly the right records afterwards, and it is the one people forget.
  2. 2 Load the CSV into the demo above. Nothing uploads: the pass runs in your browser, on your machine.
  3. 3 Read the clusters. Each one names why it matched, shows the score, and marks the most complete row as the one to keep.
  4. 4 Approve the merges you agree with and reject the rest. A subsidiary that matched its parent, two people who share a name at the same firm, a franchise location that is a real second account.
  5. 5 Export the audit log. It lists the losing Record ID against the surviving Record ID, which is the working list your HubSpot admin merges from inside the portal.

Merging in HubSpot is a one way door

A merge in HubSpot is not something you unwind later. The two records become one, and the losing record is no longer a place you can read the old field values from. If the merge was wrong, the argument about which value was correct is an argument nobody has the evidence for.

That is the reason the review step is worth the extra half hour. The export pass costs you one CSV download and one upload, and what it buys is a list you read before anything in the portal changes, plus a file that records what you decided. Six weeks later, when someone asks why a contact has the wrong company, the answer is in a column rather than in a memory.

The same reasoning applies to any CRM export, which is why the general version of this page is CRM data cleansing and the Salesforce version is Salesforce deduplication. The pass is identical. Only the column names change.

When a direct connection is the better answer

Working on the export is the right shape when the duplicates arrived from files, when you want the matching to be fuzzy rather than rule based, and when someone has to sign off on the merge list before the portal changes. It is deliberately a manual loop, and the merges are applied by a person.

If what you want instead is a scheduled job that runs inside the portal and writes back through the API, that is a different product and you should buy one. Insycle connects to HubSpot directly and treats deduplication as one operation in a broader data operations platform. We do not connect to your portal and we are not pretending otherwise. What this data cleaning tool gives you is the file, the matching and the record of the decision.

03 Read it off a real file

Two contacts a property match reads as two people

Record ID First name Last name Email Company Matched on
101948 Jose Munoz jmunoz@ridgeline.com Ridgeline Partners Kept: more complete record
118307 Jose Munoz jose.munoz@ridgelinepartners.com Ridgeline Partners LLC Name exact, company fuzzy, score 0.94

No property agrees except the name, and a name on its own is too weak for HubSpot to propose a merge. Adding the normalized company to the comparison is what makes the pair readable, and the Record ID column is what makes it actionable once you have approved it.

04 Deduplicating inside the portal

What the portal cannot tell you about the pairs it did not find

A native pass reports what it matched. It has no way of reporting the duplicates its rules were never shaped to see, so a clean result reads the same as a clean database.

CRM data cleansing

The match is only as wide as the properties

Two records that disagree on every compared field are two records as far as the rule is concerned, and they survive every pass you run afterwards.

The merge happens where you cannot review it later

Once applied, the losing values are gone, so a merge that turns out wrong is not a merge anyone can reconstruct.

Imports put the duplicates back

If the duplicates came from a file, the next file brings more, and cleaning inside the portal never touches the process that produced them.

What the export pass adds

Fuzzy matching on name and normalized company, every cluster scored and shown to you before anything is applied, and a CSV of the merges you approved keyed on Record ID.

05 Before you run it

Questions about hubspot deduplication

Does HubSpot have a deduplication tool?
Yes. On Professional and Enterprise tiers, the Contacts and Companies indexes carry Actions and then Manage Duplicates, which proposes pairs from properties such as email, name, phone and company, and lets you pick the surviving value field by field. It is exact about the fields it compares and blind to duplicates whose fields disagree.
Can you undo a merge in HubSpot?
No. A merge combines the two records permanently and the losing record stops being somewhere you can read the old values from. That is why a reviewed merge list, exported and kept beside the file, is worth building before you touch the portal rather than after.
How do I find duplicate contacts in HubSpot with different email addresses?
Export the contacts with their Record IDs and match on the combination of name and company instead of on email alone. Normalizing the company first, so that Acme Corp and Acme Corporation collapse, is what makes those pairs visible. That comparison is what the pass above runs.
Does Datauntangler connect to my HubSpot portal?
No. It works on the CSV you export, in your browser, and hands back a cleaned file plus an audit log keyed on Record ID. Your admin applies the merges in HubSpot. Nothing here has access to your portal and nothing writes to it.
Should I deduplicate before or after importing a list into HubSpot?
Before, every time. Cleaning a list on the way in costs one pass over a file. Cleaning it after import costs a pass over the file plus a merge project inside a portal where merges cannot be reversed, and the second one is the expensive half.
06 What it costs

Plans for when the file is bigger than the demo

Yearly billing is two months free. There is no free plan, and no card is needed to use the browser demo above.

Yearly billing is two months free.

Switch to yearly and two months are free.

Analyst

One ops person or analyst with files to clean.

$49$59/mo

Billed $590 a year Billed monthly

  • 50,000 rows a month
  • Files up to 25MB
  • 1 seat
  • Fuzzy matching and entity resolution
  • Reviewable diff and audit log export
  • 3 saved cleaning recipes
  • Email support

Team

Recommended

A RevOps or marketing ops team sharing the work.

$166$199/mo

Billed $1,990 a year Billed monthly

  • 250,000 rows a month
  • Files up to 100MB
  • 5 seats
  • Everything in Analyst
  • Unlimited saved recipes
  • Scheduled recurring cleans
  • CRM connectors (Salesforce, HubSpot)
  • Priority email support

Business

A data team cleaning for several departments.

$499$599/mo

Billed $5,990 a year Billed monthly

  • 1,500,000 rows a month
  • Files up to 500MB
  • 20 seats
  • Everything in Team
  • API access
  • Roles and permissions
  • Priority email support

Enterprise

A head of data who needs it defensible across the company.

Talk to sales

Custom terms, invoicing and PO

  • Unlimited rows and custom file sizes
  • Unlimited seats
  • Everything in Business
  • SSO (SAML / Okta)
  • Custom data retention
  • DPA on request
  • Named support contact
  • Invoicing and PO
  • Named onboarding

A row is one data line in a file you process, not counting the header. The browser demo is free to use and is not a plan: it reads CSV and TSV files up to 5MB on your own machine.

Clean the file, and be able to show what you changed

Try the demo on your own CSV first. It runs in your browser, it costs nothing, and no card is required.

No card required. Your file never leaves your computer.

Clean a file