Warbble Blog

How to Prepare Your Data for a HubSpot Import

Written by Charlene Lutge | 3 Nov 2026, 06:38:10
HubSpot Guide

How Do I Prepare My Data for a HubSpot Import?

To prepare data for a HubSpot import, you need one tidy file per object (companies, contacts, deals), a header row whose columns match HubSpot properties, a unique identifier on every row (email for contacts, company domain for companies, Record ID for everything else) and values that already match the format HubSpot expects. Get those four things right and most imports go through first time. Skip them and you get duplicates, broken associations and a clean-up job that takes longer than the migration itself. This guide covers the base level you need before you click Import, the order to import in, and a free template you can copy.

 

How to Prepare Your Data for a HubSpot Import | warbble·digital
1
Unique identifier every row needs
1,000
Column ceiling per import file
512MB
Max file size on paid HubSpot

What Does Import-Ready Data Actually Look Like?

Most data arrives at HubSpot as an export from somewhere else: an old CRM, a spreadsheet the sales team has kept for years, an email platform or an events list. That export is shaped for the system it came from, not for HubSpot. Import-ready data is the same information, reshaped so HubSpot can read it, match it to records that already exist and connect it to the right companies and deals.

The difference is rarely the volume of data. It is whether each row can be identified, whether each column has somewhere to go, and whether the values inside those columns are ones HubSpot will accept.

Ready to Import
An Import-Ready File

Built for HubSpot. Every row can be matched, every column can be mapped and every value is accepted first time.

  • One object per file, or a shared key linking files
  • A unique identifier on every row
  • Headers that match HubSpot property names
  • Dropdown values that match the options exactly
  • Owners listed by their HubSpot user email
Raw Export
A Straight Export

Shaped for the old system. It looks complete in a spreadsheet but falls apart once HubSpot tries to read it.

  • Several tabs or objects mixed in one sheet
  • Missing or shared email addresses
  • Legacy column names with no HubSpot match
  • Free-text statuses like "hot lead?" or "Cust."
  • Owners listed by first name or initials

Seven Things Every Import File Needs.

These are the minimum standards we check before any client import, whether it is 300 contacts from a spreadsheet or a full migration from another CRM. None of them need technical skills. They just need doing before the file reaches HubSpot, not after.

01

One Object per File

Keep companies, contacts and deals in separate files, each saved as .csv or .xlsx with a single sheet. You can import two files together, or several objects in one file, but only when every row carries identifiers that link the records. If you are not sure, separate files are safer.

02

A Header Row That Maps

Row one must be column headers, and each header should match a HubSpot property. Default names like "First Name", "Company Domain Name" and "Lifecycle Stage" map automatically. Anything custom needs a property created in HubSpot first, or you will be creating properties on the fly during mapping, which is how portals end up with three versions of "Industry".

03

A Unique Identifier on Every Row

This is the single biggest cause of duplicates. Contacts are matched on email, companies on company domain name, and deals, tickets and custom objects on Record ID. A row with no identifier is always treated as a brand new record, so a contact without an email will be created again every time you import it.

04

The Required Columns for Each Object

Contacts need an email. Companies need a name or a domain. New deals need a deal name, a pipeline and a deal stage, and both the pipeline and the stage must already exist in HubSpot. New tickets need a ticket name, pipeline and status. Miss one of these and the row will error.

05

Dropdown Values That Match Exactly

For dropdown, radio and checkbox properties, every value in your file must match an option that already exists in HubSpot, either its label or its internal value. Default properties like Lifecycle Stage need the internal value or the English label. Multiple checkbox values are separated with a semicolon and no spaces.

06

Consistent Formats

Pick one date format and use it in every row, then tell HubSpot which one it is on the final import screen. Phone numbers import most cleanly with the country code, such as +353 or +44. Checkboxes should read Yes or No. Mixed formats in a single column are where silent errors creep in.

07

Owners as Emails, Consent Decided Up Front

Assign owners using the HubSpot user's email address rather than a first name, especially if two people share one. Before you import contacts, decide which of them should be marketing contacts and what your lawful basis for processing is, because both are set on the final screen of the import.

How to Run a HubSpot Import Without Creating Duplicates.

The order you import in matters as much as the data itself. This is the sequence we follow during HubSpot onboarding and migrations.

01
Build the Structure Before the Data

Create any custom properties, dropdown options and deal pipelines your file relies on before you import anything. HubSpot will reject deal stages and dropdown values it does not recognise, so the structure has to exist first.

Settings → Data Management → Properties

02
Clean and Deduplicate in the Spreadsheet

Remove duplicate rows, fill in missing identifiers, standardise your dropdown values and fix date and phone formats while the data is still in a spreadsheet. It is far quicker to clean one column in Excel than thousands of records in a CRM. Blank cells are ignored on import, so they will not wipe existing values, but they will not fill gaps either.

03
Import Companies, Then Contacts, Then Deals

Companies go in first so contacts and deals have something to attach to. Include the company domain on your contact file and the company domain or Record ID on your deal file, so each record associates with the right parent. If your contacts use personal email addresses, switch off automatic company association and link them through the import instead.

Data Management → Data Integration → Import data

04
Test With a Small Batch First

Import 10 to 20 rows before the full file. Open a handful of the records it creates and check the properties, owners and associations. If something looks wrong, you have 20 records to fix rather than 20,000.

05
Name the Import and Create a Segment

Give every import a clear name, such as "2026-11 Trade show contacts", and tick the option to create a contact segment. That segment is your safety net: if anything needs correcting later, you can find every affected record in seconds.

What Each Object Needs at a Glance.

Object Required Columns Unique Identifier Watch Out For
CompaniesName or Company domain nameCompany domain nameDomains are cut after the top-level domain, so paths are stripped
ContactsEmailEmailShared inboxes like info@ merge several people into one record
DealsDeal name, Pipeline, Deal stageRecord IDThe stage must belong to the pipeline you name
TicketsTicket name, Pipeline, Ticket statusRecord IDStatus must exist in that pipeline first
Notes and tasksNote body, or Task title and Due dateCreated only, never updatedMust be associated with a record to be useful
Free Template

Copy our HubSpot import template

Separate tabs for companies, contacts and deals, headers that map to HubSpot's default properties, example rows and a pre-import checklist. Replace the examples with your data and you are most of the way there.

Download the Template →

Is Your Data Ready to Import?

Run through both columns before you upload. If anything on the right sounds familiar, fix it in the spreadsheet first.

Ready to Go

Every contact row has a real, individual email address
Every company row has a domain, not just a name
Custom properties and pipelines already exist in HubSpot
Dropdown values have been checked against HubSpot's options
You know which contacts are marketing contacts
A 20-row test import has been checked by hand

Warning Signs

Several objects mixed together in one sheet
Columns called "Notes 2" or "Status (old)" with no clear home
The same company spelt three different ways
Dates in a mix of UK and US formats
Owners listed as "Dave" or "JB"
A purchased list you are hoping to email straight away
The warbble take. An import is the moment your CRM's data quality is decided. Everything you bring in on day one becomes the foundation for your reports, segments and automation, so the hour spent cleaning a spreadsheet saves weeks of chasing duplicates later. Treat the import file as part of your HubSpot build, not an admin task to rush through at the end. If you have already imported and suspect the damage is done, a Thrive Score audit will show you exactly where your data quality stands.

Frequently Asked Questions.

What file types can I import into HubSpot? ▾
HubSpot accepts .csv, .xlsx and .xls files with a single sheet and a header row. Each file must have fewer than 1,000 columns. If your data contains accented or non-English characters, save the file with UTF-8 encoding so names come through correctly.
How do I stop a HubSpot import creating duplicates? ▾
Include a unique identifier on every row: email for contacts, company domain name for companies, and Record ID for deals, tickets and custom objects. HubSpot uses these to match rows to existing records and update them instead of creating new ones. Rows without an identifier are always created as new records.
Does HubSpot have an import template? ▾
Yes. HubSpot offers example import files you can download from its knowledge base, and the import tool will map common column headers automatically. Our free template goes a step further, with separate tabs for companies, contacts and deals, example rows in the right formats and a pre-import checklist.
What order should I import companies, contacts and deals in? ▾
Import companies first, then contacts, then deals. This gives each contact and deal an existing company to associate with. Include the company domain on your contact and deal files so HubSpot can link them, and create your deal pipelines and stages before the deal import.
Will a blank cell in my import file delete existing data? ▾
No. HubSpot ignores blank cells during an import, so existing values on a record stay as they are. To clear values in bulk, use bulk edit on the records or a workflow instead. You can also tick "Don't overwrite" on any column where you want to protect existing values.
Do imported contacts automatically become marketing contacts? ▾
Only if you choose that option. On the final screen of a contact import there is a setting to mark the imported contacts as marketing contacts, which affects your billing tier. Leave it unticked for contacts you only need for sales or service, and you can change their status later.
Free Thrive Score

Already imported and not sure it went well?

Get a free Thrive Score in 30 minutes. We benchmark your portal across Feature Adoption, Data Quality, Automation Maturity, and Revenue Readiness - so you can see where duplicates, gaps and broken associations are holding your reporting back.

Book Your Free Thrive Score →