HubSpot import templates
Import a CSV into HubSpot
without losing data
How HubSpot’s importer treats your file, screen by screen, and the choices that decide whether it adds data or overwrites what’s already there.
Each template page checks your export first, in your browser, for what HubSpot would skip. Nothing is uploaded.
Only need HubSpot’s columns? Download the blank CSV
FreeNo accountExcel for Microsoft 365 and Google Sheets
An import can report 0 errors
and still damage your data
The summary counts the contacts it updated. It doesn’t show which of their values it replaced.
What the summary doesn’t show
1,992new contacts were set as marketing contacts by one checked box, and each now counts toward the marketing contact tier you pay for.
47of the “new” contacts are people already in HubSpot, under an email address HubSpot doesn’t hold for them.
312existing contacts had their phone, job title and lead status replaced by whatever the badge scanner typed.
An example import. Each behavior is from HubSpot’s import documentation, and each comes from a choice on its import screens.
How to import contacts
into HubSpot
Go to Data Management > Data Integration, click Import data, then Advanced imports (all objects), and choose Contacts. Four screens follow, and the choices on them decide what happens to the data already in HubSpot.
Quick import (contacts only) has fewer steps because it skips the marketing contact and overwrite settings, so every mapped value replaces the one in HubSpot.
| Column header from file | Preview | Import as | Manage existing values |
|---|---|---|---|
| Email Address | priya.shah@northwindhq.io | ||
| Full Name | Priya Shah | First Name | Don’t overwrite |
| Title | Head of Sales & Ops | Job Title | Don’t overwrite |
| Stage | Prospect | Lifecycle Stage212 errors | Don’t overwrite |
| Rep | Sarah Lee | Contact owner | Don’t overwrite |
| Phone number | 07700 900123 | Phone Number | Don’t overwrite |
| Notes from booth | Asked about pricing | Don’t import column |
Drawn from HubSpot’s import screens and documentation. Not a screenshot.
What one row does
to an existing contact
Priya is already in HubSpot. She’s also in the event file. This is what an import with the default settings does to her record.
- Replaced
- Job title, phone and lead status. Any value in the file wins, even a worse one: her phone lost the +44 HubSpot needs to format it, and a connected lead went back to New. To keep existing values, check Don’t overwrite on those columns at the Map step, or leave them unmapped.
- Ignored
- Lifecycle stage. An import only moves lifecycle stage forward, so Lead can’t replace Customer and the import doesn’t apply it. To move a stage back on purpose, clear it in HubSpot first.
- Skipped
- Contact owner. Blank cells are skipped, so an empty cell never clears a value. It also means an import can’t empty a field for you. Do that in HubSpot, with a bulk edit or a workflow.
The duplicates an email match misses
HubSpot matches contacts on the email addresses it holds for them. These two rows use addresses it doesn’t hold for her, so each creates a new contact.
priya@northwindhq.io
Her short work alias. Same inbox, but to HubSpot it’s a different email.
priya.s@mail.example
Her personal address. Only her name and company give her away.
HubSpot now has three Priya Shahs, each with part of her history. Before you import, look for the same name and company under two addresses. How to find, merge and prevent duplicate contacts in HubSpot covers the ones already in.
One row HubSpot
accepts the first time
HubSpot maps a column on its own when the header matches a property name. Then write each value the way HubSpot expects.
Columns E and F are custom properties, there to show their formats.
The key HubSpot matches on. Use the address HubSpot already has for them, or the row creates a new contact.
The internal value or the English label of an option that exists. lead works. Prospect is skipped: the contact imports, but that field isn’t filled.
+442079460123, with ext12 for an extension. Without the country code, HubSpot can’t format it, unless that phone property has a default country code set in its rules.
An active user’s email matches every time. A name works until two users share one. Owners aren’t notified.
Then pick that format on the Details screen. 2026-03-05 can’t be read the wrong way round.
No spaces. A leading semicolon adds to the values already there. Without it, the import replaces them.
The other formats to watch
- Single checkbox
YesorNo- Percentage
25%or.25- Currency
123.45, in a currency set up in the account- Company domain
- Cut to the domain:
northwindhq.io/aboutbecomesnorthwindhq.io - Encoding
- CSV UTF-8, or accents arrive as odd symbols
- Opening it in Excel
- Double-clicking a CSV drops leading zeros. Use Data, From Text/CSV and set the column to Text.
HubSpot’s internal names for the fields you’ll use most
The 18 properties our 24 HubSpot templates fill, most used first. HubSpot’s own sample file uses plain labels such as Email Address, and those map automatically too.
emailfirstnamelastnamenotesphonecompanycountrycityjobtitlestateaddresszipwebsitehs_lead_statushs_linkedin_urllifecyclestagemobilephoneindustryHow much HubSpot
takes in one go
From HubSpot’s import documentation. Free accounts get far less.
Limits run on a rolling 24 hours, not from midnight. Three imports can run at once, and only two of them over 10,000 rows. Every file needs one sheet and fewer than 1,000 columns.
Or start from
your export’s template
24 exports already mapped into HubSpot’s fields, each with a free Excel file that builds the import file for you.
When it’s the same export every week
Everything above is how to get an import right by hand. These do it for you.
How to export contacts
from HubSpot
Open a contacts view and click Export. HubSpot emails you a download link to a CSV, XLSX or XLS file, and the link works for 30 days.
- Go to CRM > Contacts.
- Open the view to export, or All contacts for every contact.
- Click Export in the top right of the table.
- Pick the file format, and the language of the column headers.
- To get more than the view’s columns, click Customize and choose All properties on records. Check Include all email addresses for contacts that have more than one.
- Click Export, then download the file from the email.
A CSV over 2 MB arrives zipped. You need export permission in HubSpot to see the Export button.
More on HubSpot imports
Our how-tos for the problems this page doesn’t cover, and how HubSpot’s importer compares with other tools.
HubSpot import questions
Will a HubSpot import overwrite data that’s already there?
Yes, by default. Every mapped value in your file replaces the one on the matching contact. Blank cells are skipped, so they never clear anything. To protect existing values, check Don’t overwrite on each column at the Map step, or leave those columns unmapped. Checked, it also skips any property that had a value in the past.
Can I see what an import changed?
Partly. The import’s page lists the records it created and the ones it updated, not the values it replaced. On plans with HubSpot’s restore tool, a Super Admin can see and restore the previous values for 14 days. Otherwise, export the contacts first if you might need the old values back.
Why did my import create duplicates?
HubSpot matches contacts on the email addresses it holds for them, or on Record ID if you map it. The same person under an address HubSpot doesn’t have, a work alias or a personal email, creates a new contact. Before you import, look for the same name and company under two addresses. Pushing from Operelio instead matches on email before anything is written. A match updates the existing record and fills only its blank fields unless you choose to overwrite. A new email creates a record, and a row with no email is skipped. By default, rows in your file that share an email are cut to one first, the first one kept. A new row with a similar name at the same company as someone already in HubSpot can be flagged as a possible duplicate. The report shows which rows are new, updated or not sent before you confirm, and Operelio never merges or deletes HubSpot records.
Does setting imported contacts as marketing contacts cost more?
It can. Marketing contacts count toward your marketing contact tier. New contacts import as non-marketing unless you check the box, which only appears with Marketing Hub Starter and up. Leave it off unless you’re about to email them.
Why won’t my import change a contact’s lifecycle stage?
An import can only move lifecycle stage forward. To set an earlier stage, clear the stage on those contacts first, then import.
Can I undo a HubSpot import?
A Super Admin can roll an import back with the Restore tool for up to 14 days, on the plans that include it. New contacts and changed values are restored separately, and deleting the new contacts doesn’t undo the changes, so export a backup before a large import.
Which fields are required to import contacts into HubSpot?
Email on every contact, which is also the key existing contacts are matched on.
See what an import will do, first.
The CRM Formatter maps any export into HubSpot’s fields, on every plan. From Starter, it checks the file against your own HubSpot and shows what will be created, updated and skipped before anything moves. For every CRM, see CRM imports.