Importing data into HubSpot is easy. Importing it well is the part that decides whether your portal is trusted a year from now. The goal isn't to move records into HubSpot — it's to land on clean, deduplicated, correctly-associated data that your team and your reporting can rely on. Most failed HubSpot rollouts trace back to a rushed first import: duplicates, broken associations, and properties nobody agreed on. Here's the practitioner's read on doing it right the first time.
What should you do before you import anything?
Decide your data model first — objects, properties, and owners — because an import only ever bakes in the structure you bring to it. HubSpot organizes everything into records (contacts, companies, deals, tickets) connected by associations. Before a single row goes in, confirm three things: which objects you're importing, which properties each one needs (and that they exist in HubSpot, with the right field type), and how records associate to each other. Worked example: importing contacts and companies in one pass with a shared Company name or domain column lets HubSpot auto-associate them — skip that and you get thousands of orphaned contacts you'll spend weeks reconnecting.
How do you actually structure the import file?
One object per file (or one multi-object file with clear column headers), with a unique identifier in every row. Clean the spreadsheet before HubSpot ever sees it: consistent date formats, split first/last names, a single column per property, and a deduplicated unique key — email for contacts, domain for companies. HubSpot matches on those unique IDs to update existing records instead of creating duplicates, so getting the key right is what separates a clean import from a doubled database. Map every column to a HubSpot property during the import — anything left "Don't import" is data quietly lost.
How do you avoid creating duplicates?
Let HubSpot deduplicate on a unique identifier, and run a duplicate check before and after. Contacts dedupe on email (and Record ID); companies on domain (and Record ID). If your source has two rows for the same person with different emails, HubSpot can't know they're the same — so the dedupe work happens in the spreadsheet first. After import, use HubSpot's duplicate management tool to catch what slipped through. Worked example: a 6,000-row list where 400 contacts already existed in HubSpot — matching on email updated those 400 in place and created only the genuinely new records, instead of leaving you with 6,400 contacts and 400 duplicates.
What happens after the import — and why does it matter most?
Validation is the step everyone skips and the one that decides whether the data is trusted. After import, spot-check a sample of records: did associations form, did properties land in the right fields, are lifecycle stages and owners correct? Set up the validation and required-property rules that keep the data clean going forward, because an import is a snapshot — without hygiene rules, the same decay creeps back within a quarter. This is exactly the order we follow with clients: model the data, import on clean keys, then validate and put guardrails in place.
The IV-Lead take
The import is the easy 20%; the data model, the dedupe discipline, and the validation rules are the 80% that decide whether anyone trusts the portal later. A clean import is the cheapest insurance you'll ever buy on a HubSpot investment — and a messy one is the most expensive shortcut. If you're migrating off another CRM, that's doubly true: you want to land on clean records, not a faithful copy of the old mess.
Planning a HubSpot import or migration? Book a 30-minute portal audit — we'll tell you straight whether your data is ready to import, and what to fix first. For the bigger picture, see how we approach HubSpot implementation and optimization.
Frequently asked questions
What file format does HubSpot need for imports?
A .csv, .xlsx, or .xls file, UTF-8 encoded, with one property per column and a header row. Keep it under HubSpot's row/size limits or split it into batches.
How do I import contacts and companies so they associate automatically?
Include a shared key — company name or domain — in both, and import them together (or import companies first). HubSpot uses that key to form the association automatically.
Will importing create duplicate records?
Not if you import with a unique identifier (email for contacts, domain for companies). HubSpot matches on it to update existing records rather than duplicate them — so the dedupe work in your source file is what prevents duplicates.
Can I undo a HubSpot import?
Yes — HubSpot lets you roll back a recent import, which deletes the records it created. It won't reverse updates to pre-existing records, so validate on a small test batch before running the full file.