Importing contacts into HubSpot is one of the first tasks most teams face when starting with the platform. Done well, a clean import gives you a structured CRM from day one. Done poorly, it creates duplicates and messy data that take weeks to clean up.
This guide covers how to import contacts, companies, and deals into HubSpot — what to prepare, how to run the import, and what to check afterwards. If you are just getting started, it pairs well with our HubSpot CRM setup guide.
Export your data from your existing system. Use one sheet per object type — contacts, companies, or deals. HubSpot’s import tool maps columns to properties, so clean column headers help. Required fields for contacts: email address (or first name plus last name if no email). For companies: company name. For deals: deal name and pipeline stage.
HubSpot recognises many common column names automatically (“Email”, “First Name”, “Phone Number”). For custom data such as segment tags, lead source, or intake year, make sure you have the corresponding custom properties already created before importing. You can map non-standard columns manually during the import wizard.
In HubSpot, go to Contacts (or Companies or Deals) and click Import in the top right. Choose “Import from file”. Upload your CSV or XLSX. The wizard walks you through mapping columns to properties and lets you preview the first few rows before confirming.
HubSpot checks for existing records by email address for contacts, and by company domain or name for companies. If a match is found, it updates the existing record rather than creating a duplicate — but only for the fields you include in the import. Decide upfront whether the import should overwrite existing values or skip them.
After the import runs, HubSpot shows a summary: records imported, records updated, rows skipped (with reasons). Download the error log to see which rows failed and why — usually a missing required field or a value that does not match a property’s field type.
What file formats does HubSpot accept?
HubSpot supports CSV and XLSX files. UTF-8 encoding is recommended, especially if your data includes Thai, Japanese, or other non-Latin characters. If your file has Thai names or addresses, open it in a text editor to confirm the encoding before uploading. Excel sometimes saves in a different encoding that causes garbled characters in HubSpot.
The maximum file size is 512MB, with up to 1,048,576 rows per file. For large datasets, split into batches of 100,000 rows or fewer for easier error handling.
How do you import multiple object types at the same time?
If you want to import contacts and associate them with companies at the same time, HubSpot supports multi-object imports. You include both object types in one file using a specific column structure, or run two separate imports and link them via a shared identifier — typically company domain for contacts, or a deal name for deal-to-contact associations.
For most teams migrating from a spreadsheet or basic CRM, running contacts first and companies second using domain matching is the simplest approach. The full migration guide has a broader checklist if you are moving from another platform.
Can you import data into custom properties?
Yes, but the property must already exist in HubSpot before you import. If you try to map a column to a property that does not exist, you will need to create the property first and re-run the import. This is the most common source of import errors for teams with complex data structures.
Create all your custom properties before running the import. In Settings, go to Properties and add each field with the right type: single-line text, dropdown, date, checkbox, or number. Field type matters — if you import a number into a text field, filtering numerically will not work as expected.
What happens to existing contacts during an import?
HubSpot deduplicates contacts on email address. If you import a contact whose email already exists in the portal, the import updates that record with any new values you included. It does not create a second record. For contact management, this means a re-import is safe as an update mechanism, as long as your file only includes the columns you want to update.
If you import without an email address (name only), HubSpot creates a new record regardless of whether a contact with that name already exists. Avoid this unless you genuinely have records with no email — it is the most common cause of duplicates in new portals.
How do you import deals or tickets?
The same import flow applies to deals and tickets. Go to the Deals or Tickets section, click Import, and upload your file. Required fields for deals: deal name, pipeline, and deal stage. For tickets: ticket name and pipeline stage.
When importing deals, you can include an associated contact email or company domain. HubSpot will look up the matching contact or company and create the association automatically during the import if a match is found.
What should you check after the import finishes?
- Spot-check 10 to 20 records — open individual contacts to confirm properties populated correctly
- Filter by import date — in Contacts, filter by “Create date” matching today to see the full imported set
- Check for partial duplicates — contacts with the same name but different email addresses may need manual review
- Review lifecycle stage — HubSpot defaults new contacts to “Lead”; update in bulk if your data reflects a different stage
- Verify custom property values — especially dropdown fields, to confirm the values match valid options for that property
Can you undo an import?
Yes. From the import history page, you can delete all records created by a specific import within 90 days. This removes those records entirely. If you updated existing records via import, the undo deletes the newly created records but does not revert changes made to pre-existing contacts.
Because of this, it is worth running a test import with 10 to 20 rows first to confirm the column mapping is correct before uploading the full dataset.
Frequently asked questions
- Does HubSpot charge for importing contacts?
- The import itself is free. What matters is your marketing contact tier. Each billing period, HubSpot counts contacts enrolled in marketing emails or ads. If an import pushes you over your tier limit, you may see a charge at renewal.
- Can I import contacts from LinkedIn?
- You need to export from LinkedIn first as a CSV, then import that file into HubSpot. There is no direct LinkedIn contact import because of LinkedIn’s own data-portability restrictions.
- What is the difference between importing and syncing?
- An import is a one-time file upload. A sync via HubSpot Data Sync or a connector keeps records continuously updated between two systems. If you are migrating from another CRM and want a clean cut-over, import is usually the right approach. If you need ongoing two-way data flow between platforms, a sync is the better path.
- How do I import contacts with email subscription status?
- Include a column for subscription type and set the value to “Subscribed”. HubSpot will apply that status to the contact’s email subscription settings during import. Only import contacts who have genuinely consented to receive marketing emails from you.
This is an independent informational resource produced by a HubSpot Platinum Partner. HubSpot is a trademark of HubSpot, Inc.
Planning a HubSpot setup or integration in the region?
Contact us