Skip to content
All posts

How to Import Contacts Into HubSpot Without Creating Duplicates

To import contacts into HubSpot without creating duplicates, give every row a unique identifier: Email for contacts, Company Domain Name for companies, or the HubSpot Record ID for any object. Then choose "Create and update" when you start the import, so HubSpot updates the records that match and only creates the ones that don't. Rows with no identifier always come in as new records, so fix those before you upload.

Last updated: November 2026

Most duplicate problems come from importing the same data through more than one channel, like a CSV upload and a form submission, or two CSVs from different sources, without a consistent match key. Here's how to avoid that.

Step-by-step: a clean import

  1. Standardize your source file first. One email format, no leading or trailing spaces, consistent casing. Remove exact-duplicate rows in the spreadsheet before you ever open HubSpot.
  2. Check existing duplicates before importing. Go to CRM → Contacts, click the three-dot menu in the upper right and select Manage duplicates. You can also go to Data Management → Data Quality and open the Manage Duplicates tab. Clear out existing duplicates so you aren't importing on top of messy data. This tool needs a Professional or Enterprise subscription.
  3. Start the import. Click Import in the upper right of the Contacts index page, or go to Data Management → Data Integration and click Import data. Choose Advanced imports (all objects), select Contacts, and click Next.
  4. Pick how to import. In the "Choose how to import" dropdown, select Create and update contacts for most lists. Use Update existing contacts only if you're just enriching records you already have. Create new contacts only ignores existing records, so don't use it when you want updates.
  5. Map the unique identifier. Map your email column to Email. The right field shows a key icon. If your file includes a Record ID column, map it to Record ID. Record ID overrides any other identifier in the file, and rows without one are created as new records.
  6. Map the rest of your columns carefully. Map each column to an existing property or create a new one. Choose "Don't import column" for anything you don't need. Check Don't overwrite on any property where you want to keep the value already in HubSpot.
  7. Review the results. After you click Finish import, HubSpot shows the import's status. Compare your new contact count to what you expected. A much bigger jump than planned on a list you expected to mostly update means the match key didn't work.
  8. Check for duplicates again after import. Even a well-planned import can surface a few, especially for contacts without an email address.

Common mistakes

The most frequent cause of duplicates is importing contacts that don't have an email address. Without Email, a Record ID or another unique identifier, HubSpot imports each row as a new contact, every time. Another common one: re-importing an updated version of a list without realizing the original import is still in HubSpot, so every record with a typo or formatting difference in the email gets doubled. And teams sometimes bring in the same event list through both a form and a manual CSV upload, creating two records for the same person before anyone notices.

Frequently Asked Questions

Does HubSpot deduplicate contacts on import?

Yes, by email address. If a row's email matches an existing contact, HubSpot updates that contact instead of creating a new one. Only the properties you mapped are updated, and the import won't delete existing records. If a row matches more than one existing contact, you get an import error and that row isn't imported.

What if my contacts don't have an email address?

Without an email or another unique identifier, each row is imported as a new contact. To update existing contacts that have no email, export them first and include their Record ID in your file. Otherwise, plan to review and merge those records after the import.

Can I update existing contacts with an import?

Yes. Choose "Create and update contacts" or "Update existing contacts only" and map Email or Record ID as the unique identifier. Check "Don't overwrite" on any property where you want to keep the existing value.

How do I merge duplicates that were already created?

Use Manage duplicates from the Contacts or Companies index page, or the Manage Duplicates tab under Data Management → Data Quality. You pick the record to keep, and timeline activity from both records ends up on the merged record. The other contact's email is added as a secondary email. Merges can't be undone, so review before you click.

Does a company import dedupe by domain?

Yes. HubSpot uses the Company domain name to match companies on import, unless you've set a custom unique value property as the identifier. Rows with no domain and no other identifier are imported as new companies. One catch: companies created through the API or a third-party sync app aren't deduplicated by domain.

When to bring in a pro

A single clean list with consistent email addresses is safe to import yourself. It's worth getting help when you're migrating from another CRM with unknown data quality, merging lists from multiple sources (a webinar platform, a trade show scanner, a CRM export) that likely already overlap, or dealing with an existing HubSpot portal that already has thousands of duplicate contacts you need cleaned up before any new import. Reach out if you'd like a data audit before your next import.


Written by John Hulina, founder of CRM Assist and leader of the Orange County HubSpot User Group. John is also a CRMmys awards judge and has helped B2B revenue teams clean up and migrate CRM data across Salesforce, HubSpot, and Clarify.ai.