Operelio

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.

IntoHubSpot

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.

Import completetrade-show-leads.csv · Contacts
2,304rows
1,992new contacts
312updated
0errors

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.

Contacts/Import
Upload your file
UploadMapDetailsFinish
event-leads-march.csv2,304 rows · 14 columns · 1.8 MB
CSV, XLSX or XLS
Choose how to import contactsCreate and update contacts
Language of column headersEnglish
BackNext

1 of 5

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.

In HubSpot now
Priya Shahpriya.shah@northwindhq.io
Job titleHead of Sales
Phone number+44 20 7946 0123
Lead statusConnected
Lifecycle stageCustomer
Contact ownerJames Ward
Row 412 of your file
event-leads-march.csvfrom the event’s badge scanner
Job titleHead of Sales & Ops
Phone number07700 900123
Lead statusNew
Lifecycle stagelead
Contact ownerempty
In HubSpot after
Priya Shahpriya.shah@northwindhq.io
Job titleHead of Sales & Opswas Head of Sales
Phone number07700 900123was +44 20 7946 0123
Lead statusNewwas Connected
Lifecycle stageCustomerlead ignored
Contact ownerJames Wardblank skipped
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.

Row 518

priya@northwindhq.io

Her short work alias. Same inbox, but to HubSpot it’s a different email.

Row 1,207

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.

Xhubspot-import.csv
ABCDEF1emaillifecyclestagephonehubspot_owner_iddate_of_eventinterests2priya.shah@northwindhq.io1lead2+4420794601233james@yourco.example42026-03-055;Pricing;Demo6

Columns E and F are custom properties, there to show their formats.

1
One email per person

The key HubSpot matches on. Use the address HubSpot already has for them, or the row creates a new contact.

2
Dropdowns must match an option

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.

3
Phones with + and the country code

+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.

4
Owners by email

An active user’s email matches every time. A name works until two users share one. Owners aren’t notified.

5
One date format per column

Then pick that format on the Details screen. 2026-03-05 can’t be read the wrong way round.

6
Checkboxes split by semicolons

No spaces. A leading semicolon adds to the values already there. Without it, the import replaces them.

The other formats to watch

Single checkbox
Yes or No
Percentage
25% or .25
Currency
123.45, in a currency set up in the account
Company domain
Cut to the domain: northwindhq.io/about becomes northwindhq.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.

Download the blank CSV
email,firstname,lastname,notes,phone,company,country,city,jobtitle,state,address,zip,website,hs_lead_status,hs_linkedin_url,lifecyclestage,mobilephone,industry
Emailemail
First Namefirstname
Last Namelastname
Notesnotes
Phone Numberphone
Company Namecompany
Country/Regioncountry
Citycity
Job Titlejobtitle
State/Regionstate
Street Addressaddress
Postal Codezip
Website URLwebsite
Lead Statushs_lead_status
LinkedIn URLhs_linkedin_url
Lifecycle Stagelifecyclestage
Mobile Phone Numbermobilephone
Industryindustry

How much HubSpot
takes in one go

From HubSpot’s import documentation. Free accounts get far less.

512 MBper file
1,048,576rows per file
10,000,000rows a day
500imports a day

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.

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.

  1. Go to CRM > Contacts.
  2. Open the view to export, or All contacts for every contact.
  3. Click Export in the top right of the table.
  4. Pick the file format, and the language of the column headers.
  5. 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.
  6. 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.

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.

HubSpot import templates

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.