In HubSpot, go to Data Management > Data Integration, or click Import on any object index page. Choose Import data, then Advanced imports, and select contacts. Upload a file or paste from a spreadsheet, map Email as the unique identifier, map your columns to properties and finish the import. There's also a quick import tool for contacts only.
Get the spreadsheet right before you open HubSpot
Most import problems are spreadsheet problems. Before you start, give every property its own column, and make sure there's an Email column, because that's what stops duplicates. A few file rules to check:
- Fewer than 1,000 columns.
- UTF-8 encoding if it includes foreign-language characters, or names can come out garbled.
- One row per contact, with column headers that describe the data.
You'll also need Import and Edit permissions for contacts. To import contacts with a marketing status, the account needs a Marketing Hub subscription with Marketing Contacts.
Running an advanced contact import
- Go to More > Data Management > Data Integration, or click Import in the upper right of the contacts index page.
- In the Import a file section, click Import data, then Advanced imports (all objects), select contacts and click Next.
- Choose Create and update, Create new only, or Update existing only.
- Upload your file or paste straight from a spreadsheet such as Numbers or Google Sheets. Set the language of the column headers so HubSpot can match default properties, then click Next.
- Map Email as the unique identifier, then map or skip each remaining column and finish the import.
If your import is contacts only, with no extra options, the quick import tool is the shorter route.
Choosing create, update or both
| Option | What happens | Use it when |
|---|---|---|
| Create and update | New contacts are added, existing ones updated | Most imports from another tool |
| Create new only | Contacts not already in HubSpot are added; nothing else changes | Adding a fresh list without touching existing records |
| Update existing only | Existing contacts are changed; no new ones are added | Filling in a new property for people you already have |
Updating needs a unique identifier in your file, which for contacts is Email.
Mapping columns, and the email identifier trap
On the mapping screen, the correct identifier property shows a key icon. Map your Email column to it. If you include Record ID, that takes priority over other identifiers. Columns that don't match a property can be mapped to an existing property, set up as a new custom property, or skipped with Don't import column.
The HubSpot Knowledge Base flags the trap for anyone cleaning up old data. A secondary email used as the identifier won't replace a contact's primary email unless the Record ID column is also in the file. If you're trying to correct email addresses in bulk, export the Record IDs first and include them.
And know what import can't do: emails, meetings, notes and tasks can't be updated by import.
File and daily limits
| Limit | Free tools (as of Nov 2026) | Smart CRM or Starter, Professional, Enterprise |
|---|---|---|
| File size | 20MB | 512 MB |
| Imports per day | 50 | 500 |
| Rows per day | 500,000 | 10,000,000 |
| Rows per file | Not stated here | 1,048,576 |
| Imports at once | 3 | Not stated here |
On the free tools, a large export from an old CRM can hit the 20MB file limit before anything else. Split it into several files by date or by region, and import them one after another.
If you're moving from another system, my CRM data clean-up guide helps you tidy the file first, and my HubSpot setup checklist shows where importing fits in the order of jobs.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
How an email tool handles the same job
Mailchimp's import tool adds or updates contacts from a connected app, a CSV upload, copy and paste from a spreadsheet, or direct entry in the import table. If you're still choosing a CRM, my comparison of HubSpot and Pipedrive is worth a read.
My advice for a clean first import
Do a test import of ten rows first, with Create and update and Email mapped as the identifier. Check those ten contacts in HubSpot, fix any mapping mistakes, then import the rest. It's far quicker than cleaning up a thousand duplicates afterwards.
Want your tool on this list? Featured spots and reviews here are paid partnerships. Here's how to partner with me.
Frequently asked questions
What file types can I import?
Spreadsheet files, or paste straight from a spreadsheet. Use UTF-8 encoding for foreign characters.
How do I avoid duplicate contacts?
Map Email, marked with a key icon, as the unique identifier.
Can I update existing contacts?
Yes, with Create and update or Update existing only, using a unique identifier.
Is there a size limit?
20MB on free tools (as of Nov 2026), up to 512 MB with Smart CRM or a Starter, Professional or Enterprise subscription.
Is there a quicker way?
Yes. There's a quick import tool for contacts-only imports.


