If you import a spreadsheet without the right identifier column, HubSpot creates a new record for every row—even if half those contacts already exist in your account. Here’s how the matching works and where it can go wrong.
The three identifiers HubSpot accepts for contacts
HubSpot requires a unique identifier column to match an incoming row to an existing contact rather than create a duplicate. For contacts, three options are accepted:
- Email — the contact-specific match key
- Record ID — the internal HubSpot ID, available by exporting existing records
- A custom property set to require unique values
Email is one accepted choice for contact imports and doesn’t require a prior export from HubSpot.
What Email matching actually does
When HubSpot finds a contact with the same email address as an incoming row, it updates that existing record rather than creating a new one. Only the properties you’ve mapped in the import are touched; nothing is deleted.
The failure case is worth knowing: if your file has no Email column (or no other identifier), every row is imported as a new contact. You also can’t import through an email collision—if multiple records in your account already share the same address, HubSpot returns an error for that row and skips it.
How Record ID behaves differently
Record ID lets you update contacts you’ve already exported from HubSpot, including contacts with no email address. The catch is that any row missing a Record ID value creates a new record, even if a matching contact exists. If you’re importing an external file rather than a re-import of HubSpot data, it’s worth checking for existing records first—HubSpot’s own documentation flags this specifically.
The secondary-email trap
There’s one scenario worth handling carefully. If your import file includes both a Secondary Email column and a Record ID column, and you use the secondary email as the identifier, HubSpot will overwrite the contact’s primary email with that secondary address. To avoid that, leave the Record ID column out when you’re importing secondary emails as identifiers.
In short: include a unique identifier for contact imports, use Record ID only when every row has a value, and don’t combine a secondary-email identifier with Record ID unless you intend to replace the primary address.
Tags
About Maya Patel
RevOps workflow strategist
Maya writes about outbound systems, CRM handoffs, and revenue-team operating rhythms. She spent eight years in RevOps roles supporting B2B SaaS teams, where she owned routing rules, enrichment workflows, pipeline inspection, and sales-to-CS handoffs.
