Import Contacts Into HubSpot CRM From Excel, Duplicate-Free
To import contacts into HubSpot CRM from Excel, clean the spreadsheet, save it as a supported file type, and use HubSpot's import tool to map each column to a contact property. For a basic list, use a single-file, single-object contact import and use email addresses to match existing contacts. HubSpot can create new contacts and update existing ones with matching email addresses, so careful preparation helps prevent duplicates, bad records, and unusable fields.
Get your Excel file ready before you upload it
Before you start, have the following ready:
- Access to the HubSpot account and permission to import contacts.
- Your contact spreadsheet saved as a
.csv,.xls, or.xlsxfile. - A list of the fields you want to keep, such as email, name, phone number, company name, and lead source.
- An email address for each contact whenever possible.
- A backup copy of the original spreadsheet in case you need to compare or restore values later.
HubSpot treats one row as one contact. Use the first row for clear column headers, then place one person's details on every row below it. Common headers include First name, Last name, Email, Phone number, Company name, and Lifecycle stage.
Remove title rows, notes, subtotal rows, blank separator rows, and merged cells. Merged cells can shift values into the wrong columns during an import. If the workbook contains formulas, replace them with their displayed values before saving. HubSpot imports the values in cells, not the logic behind a formula.
Use a separate column for each value. For example, split a full name into First name and Last name if you want to report on those fields separately. Keep a phone number and extension in separate columns unless you intend to store them as one value.
Email is the normal identifier for contacts in HubSpot. Put one email address in an Email column for each row, remove obvious typos, and find repeated email addresses in Excel before uploading. You can sometimes import a contact without an email address, but HubSpot has less reliable information for matching that row to an existing contact.
Save a working copy in the format your team can review most easily. CSV is often a simple choice because it contains only rows and columns, but HubSpot also accepts .xls and .xlsx files. When saving a CSV, make sure Excel encloses commas in addresses, notes, or company names correctly.
Import your Excel contacts into HubSpot step by step
For a spreadsheet that contains contact details only, use a single-file, single-object import. This tells HubSpot that each row is a contact and that the file does not need to create associations with another CRM object.
- Open the Import tool from the imports area of your HubSpot account.
- Select the option to start a new import.
- Choose a single file as the source of your data.
- Choose one object, then select Contacts.
- Upload your
.csv,.xls, or.xlsxfile.
- Confirm that the preview shows the expected header row and that contact data appears in the correct columns.
- Choose the option that allows HubSpot to create new contacts and update existing contacts if the spreadsheet should refresh records already in the CRM.
- Continue to the property-mapping screen and match every spreadsheet column before completing the import.
- Give the import a clear name, such as
October event contacts - cleaned, so you can find the results later.
- Complete the import and wait for HubSpot to process the file.
If the spreadsheet contains only new prospects and you are certain none are already in HubSpot, you can choose to create contacts only. For most inherited lists, allowing both creates and updates is more practical when the email column is clean and the mappings have been checked.
Match every spreadsheet column to the right HubSpot field
The mapping screen tells HubSpot what each spreadsheet column represents. Check each automatic match rather than accepting it by default. A column named Phone might map correctly to Phone number, while a vague header such as Source could mean something different from what you intended.
- Map
First nameto the HubSpot contact property First name.
- Map
Last nameto the HubSpot contact property Last name.
- Map
Emailto Email. In a standard contact import, this is the most useful field for identifying existing contacts.
- Map
Phone numberto Phone number, using a consistent phone format where possible.
- Map
Company nameto Company name if you want that text stored on the contact record.
- Map
Lifecycle stageto Lifecycle stage only when the spreadsheet values match the lifecycle-stage options in your HubSpot account.
- Map remaining columns to existing contact properties only when both the meaning and data type match.
If no suitable property exists, create a custom contact property during mapping or before you import. Choose the property type that fits the data. A short text field suits a value such as Legacy account owner when it is simply a name from the old spreadsheet. A dropdown select property works better for a controlled value such as Event source, with options including Webinar, Trade show, and Partner event.
Take care with ownership fields. A spreadsheet column containing a salesperson's name is not automatically the same as HubSpot's Contact owner property. HubSpot ownership depends on users set up in the account, so a plain-text name may be better stored in a custom field until you can confirm the correct owner mapping.
Don't map a notes column to a structured field such as Job title or Lead status simply because the field is available. Create a text property for unstructured notes instead of making a useful CRM field inconsistent.
Avoid duplicates, overwritten data, and messy contact records
HubSpot normally uses the email address as the standard identifier for a contact import. If a row contains an email address that matches an existing contact, HubSpot can update that contact rather than create another one. If the email is new, HubSpot can create a new contact.
This works best when the email data is clean. Remove duplicate email addresses within Excel before uploading, because two rows with the same email address can produce confusing results. Also review shared inboxes such as info@ or sales@. They can be valid records for your process, but they do not identify one individual person.
When an imported row matches an existing contact, mapped values in that row may update the record. Review fields that are likely to contain older or less reliable data, especially lifecycle stage, phone number, lead status, and owner-related fields. If a spreadsheet column does not need to update existing records, do not map it.
Blank cells usually do not erase existing values during a normal import update. An empty phone cell, for example, generally will not clear a phone number already stored on a matching contact. Do not use blank cells as a cleanup method. If you need to clear values intentionally, use HubSpot's supported bulk-editing options and verify the result on a small set of records first.
A single-object contact import stores company names as contact data but does not necessarily create a formal contact-to-company association. Use a multiple-object import when you need to import contacts and companies together and connect each person to the correct company record. That file structure requires identifiers for both objects, such as contact email and company domain name, so HubSpot can create the association accurately.
If you only need a company name displayed on the contact, a single-object contact import is usually enough. If you need company records, company reporting, or associations for sales workflows, plan a multiple-object import rather than trying to repair those relationships later.
Check that the import worked and fix any rejected rows
After the import finishes, open its summary page in the Import tool. You should see how many records were created, updated, skipped, or failed. Review those results before treating the import as complete.
- Open the completed import and review the counts for created and updated contacts.
- Download the error file if HubSpot reports rejected or failed rows.
- Read the error message for each failed row. The exact message varies.
- Correct the source spreadsheet rather than editing around the problem in HubSpot.
- Save only the corrected failed rows as a new file.
- Re-import that smaller file after confirming its headers and mappings.
- Open several imported contact records and compare their email, name, phone number, lifecycle stage, and custom fields against the spreadsheet.
- Create or use a filtered contact view or list based on the import to confirm that the expected contacts are present.
The error file usually points to issues such as an invalid email format, an unsupported value for a dropdown property, a missing required identifier, or a column that could not be mapped as expected. Correct the specific issue shown rather than uploading the unchanged original file again.
You know the import worked when the created and updated counts are plausible, the failed rows have been resolved or accounted for, and spot-checked records contain the expected property values. Check more than the total contact count: review contacts that should have updated, contacts that should be new, and several records with custom properties. If you intended to add contacts to a static list as part of the import, confirm membership from the list itself and from individual contact records. If you used a multiple-object import, open several contacts and confirm that the expected company association appears.
Conclusion
Keep the cleaned spreadsheet and the import name for your records, especially when the list came from another system. Once the first batch looks right, you can reuse the same headers and property mappings for future uploads. If you need to import company relationships, deal data, or other connected records next, prepare a separate multiple-object import instead of adding those details to an otherwise simple contact file.
Frequently Asked Questions
Can I import contacts into HubSpot without email addresses?
You can sometimes import contacts without email addresses, but email is the standard identifier for matching and deduplicating records. Without email, HubSpot has less reliable information for determining whether a row belongs to an existing contact.
Will importing a blank cell erase a value already in HubSpot?
Usually, blank cells in a standard import do not clear existing property values. Do not use blank spreadsheet cells to erase data; use HubSpot's bulk-editing tools when you need to clear values, then verify the change first.
Should I import company names with my contact list?
Yes, if you only need the company name stored as a field on each contact. Use a multiple-object import when you need HubSpot company records and formal associations between contacts and companies.
