HubSpot matches contacts on email address. When a form or import brings in an email that already belongs to a contact, HubSpot updates that contact. When the email is new, or there is no email at all, it creates a new record. That leaves two ways to end up with duplicates. The same person arrives under a second address, or a tool creates contacts with no email for HubSpot to match on.
Start by opening two of the duplicate records and comparing the email field. Then look at the Record source property on each one, which shows how the record was created. If the extra records all come from the same form, import or app, that is where the fix goes. After that, merge the pairs you already have.
Why HubSpot creates duplicate contacts
The same person under two email addresses
A work address on one form and a personal address on another gives you two contacts, and so does a typo. HubSpot deduplicates contacts on email, plus Record ID during imports, so a matching name or phone number won't stop a new record from being created.
Forms add a wrinkle. With the form setting Automatically create new contacts from unknown email addresses on, every submission with an email HubSpot hasn't seen creates a new contact. With it off, HubSpot can fall back to the browser cookie and update the contact it already knows on that device, which can overwrite someone else's details on a shared computer. Check how each form is set.
Contacts created without an email
Email isn't required to create a contact. HubSpot's contacts API accepts a record with only a first or last name, and an import row with no email or other unique identifier becomes a new contact every time. Any app that creates contacts from just a name or a phone number gives HubSpot nothing to match against later, so the same caller can end up as several records.
Forms can do this too. By default a form submission needs an email to create a contact. If someone turned on the account-wide setting Allow submissions without email addresses to create contacts and the form also creates new contacts for unknown emails, HubSpot says each submission will create a new contact.
Imports with no email or Record ID mapped
During an import, HubSpot finds existing contacts through the Email column or a Record ID column. If neither is in the file, or the column was mapped to the wrong property, every row becomes a new contact. Rows with a blank Record ID also create new records. The import errors article goes through this in more detail.
Integrations and Zaps that create before they search
An app that writes to HubSpot without passing an email, or with a different address from the one on file, leaves HubSpot with two records it can't connect. If the Record source on your duplicates names an integration, check that app's sync and matching settings before you merge, or the duplicates will keep coming back.
How to find and merge duplicate contacts
- Check what your plan allows. The Manage duplicates tool needs a Professional or Enterprise subscription to Marketing Hub, Sales Hub, Service Hub, Data Hub (formerly Operations Hub) or Smart CRM, as of October 2026, according to HubSpot's duplicates article. Merging two records by hand works on every plan.
- Open the duplicates tool. On the contacts index page, click Actions and choose Manage duplicates. HubSpot suggests pairs by comparing first and last name, email, phone number, IP country, zip code and company name.
- On a Starter or free account, export your contacts, sort the file by last name, phone and company, and note the pairs.
- Choose the primary record carefully. Its email stays as the main address and the other email becomes a secondary email. Lifecycle stage keeps the furthest stage. Marketing contact status keeps the more marketable value, so if either record is a marketing contact, the merged one will be too. For other properties the primary's values win unless they are empty, and the merge dialog lets you pick.
- Merge. From a contact record, open Actions in the left panel, choose Merge and select the other contact. In the duplicates tool you can merge pair by pair. Bulk merging there needs Data Hub Professional or Enterprise.
- Reject the false matches so the tool stops suggesting them. A rejected pair can be restored within 14 days if neither record has changed.
- Check anything that relies on HubSpot IDs. By default the merged contact gets a new Record ID, and the old IDs stay searchable in the contact's merged record IDs property. Both contacts are also unenrolled from the workflows they were in when you merged.
Merges can't be undone, so review each pair before you click. HubSpot also won't merge records that have been part of 250 or more merges in total (merge rules).
How to stop duplicates coming back
- Keep email required on your forms, and leave Allow submissions without email addresses to create contacts off unless you have a real need for it.
- Before an import, export your contacts with their Record IDs, match your file against them, and split it into an update file and a create file.
- Make every integration and Zap search for the contact by email before it creates one.
- If another system gives each person an ID, store it in a custom property with Require unique values for this property turned on. You can only choose this when you create the property, and it isn't enforced on forms (validation rules).
- Once a month, filter new contacts by Record source and see which tool made the most.
From client work
At Frontline Facility Partners, where I run HubSpot and the outreach program, calls and texts from JustCall are logged to HubSpot. Part of the cleanup was stopping JustCall from auto-creating blank contacts. When I built the Zaps for IAP Foundation, each one checks their donor CRM, Givebutter, by email first and creates a contact only when there is no match, so nobody is added twice.
If the duplicates run into the thousands or keep arriving from an integration, I can audit your portal and fix it with you.
Questions
Can I undo a merge in HubSpot?
No. Merges are permanent. If you merged the wrong contacts, delete the extra email from the merged record and create a new contact with that address.
Why didn't HubSpot catch two contacts with the same name?
Automatic deduplication uses email, and Record ID during imports. Names, phone numbers and company names come into play in the Manage duplicates tool, which suggests pairs for you to review.
Will merging change a contact's marketing status?
It can. The merged contact keeps the more marketable status, so merging a non-marketing contact into a marketing one leaves you with a marketing contact. See why contacts become marketing contacts for the other causes.
Did this fix it?
Good to hear. If something else in the portal looks off, the help centre has more fixes.
Some problems need someone to look inside the portal. Book a free 30-minute call and show me what's happening. If it needs work, you get a written scope and one fixed price.