Contact lists rarely start out in HubSpot's shape. An event signup sheet says E-mail and Organization. An old CRM export says Mobile and ZIP. HubSpot's import asks you to match each column to a contact property, and it needs an Email to create a contact. This guide lists the rules HubSpot publishes, then walks one synthetic export through the mapping.
What HubSpot asks of a contacts file
From HubSpot's import help (sources at the end of this section):
- A .csv, .xlsx or .xls file with one sheet and fewer than 1,000 columns.
- A header row where each column header corresponds to a HubSpot property. Columns can be in any order.
- One contact per row, and a separate column for each property, so first and last name sit in two columns.
- UTF-8 encoding if the file has foreign-language characters.
- Email is the property required to create contacts. First name and Last name are suggested, not required.
- To update existing contacts instead of creating duplicates, include a unique identifier. For contacts that can be Email or the Record ID from a HubSpot export.
A few value rules matter for contact lists:
- Blank cells are ignored. A blank doesn't clear a value the contact already has in HubSpot.
- Phone number and Mobile phone number are formatted automatically only when the value is
+, country code, then number, for example+11234567890. - Dropdown properties such as Lifecycle stage need values that match an option's internal value or its English label.
- Multiple checkbox values go in one cell separated by semicolons with no spaces.
The quick import (contacts only) then shows each column's mapping. You confirm it and pick a property for any column it didn't map, or create a new property.
HubSpot sources, read October 25, 2026: Format import files · Import contacts · HubSpot's default contact properties
Pick the target headers
Use the names of the HubSpot properties you want to fill. These default contact properties cover most lists: Email, First name, Last name, Company name, Job title, Phone number, Mobile phone number, Street address, City, State/Region, Postal code, Country/Region, Lifecycle stage. Check the exact names under Settings > Properties in your own account. Accounts can rename objects, and custom properties only exist where someone created them.
Only list targets your export can fill. MapMyCSV won't build the full CSV until every target column has a source, so a target with no matching data blocks the download. Leave it out and set that property in HubSpot instead.
Worked example: an event signup export
Two synthetic files you can run in the free preview. Not customer data.
- contacts-export-sample.csv: 5 contacts with the headers
First Name,Last Name,E-mail,Organization,Title,Mobile,ZIP,Signed Up. - hubspot-contacts-headers.csv: one header row,
Email,First name,Last name,Company name,Job title,Mobile phone number,Postal code.
- Open the free preview. Drop
contacts-export-sample.csvon Input A. - Open
hubspot-contacts-headers.csvand paste its one line into Input B. - Read the column mapping before you read the rows.
| HubSpot header | Source picked | Shown as | What to do |
|---|---|---|---|
Email | E-mail | 100% match | Keep. One row is blank (see below) |
First name | First Name | 100% match | Keep |
Last name | Last Name | 100% match | Keep |
Company name | none | no match | Choose Organization |
Job title | Title | 70% match | Keep. The values are job titles |
Mobile phone number | Mobile | 65% match | Keep. Check the country codes (see below) |
Postal code | none | no match | Choose ZIP |
The percentage scores the header labels, not the values. Organization and ZIP share no words with HubSpot's names, so you pick them from the dropdown and they show as manual. Signed Up has no target, so it's left out of the mapped file.
With the two picks made, the five mapped rows are:
Email,First name,Last name,Company name,Job title,Mobile phone number,Postal code
maya.ortiz@example.com,Maya,Ortiz,Harbor Freightworks,Operations Manager,+15125550142,78704
dev.raman@example.org,Dev,Raman,"Raman, Patel & Co",Partner,(617) 555-0199,02134
jo@example.net,Jo,Lindqvist,Kestrel Labs,Founder,,02446
,Sam,Okafor,Bright Path Tutoring,Director,+447700900123,
priya.shah@example.com,Priya,Shah,Northwind Dental,Office Manager,+15125550110,78745
The preview says "2 rows need attention before you import". Every target column is checked for blanks, so read each flag against HubSpot's rules:
- Sam Okafor has no email. HubSpot needs Email to create a contact. Find it, or take the row out before importing.
- Jo Lindqvist has no mobile, and Sam has no postal code. HubSpot ignores blank cells, so these can stay blank.
Two things the preview doesn't flag:
- Dev Raman's number has no country code.
(617) 555-0199comes through as written. MapMyCSV doesn't reformat phone numbers, and HubSpot formats them automatically only in the+country code form. Fix it in the source as+16175550199if you want that. - The company with a comma stays in one cell.
Raman, Patel & Cois quoted in the CSV, so it stays one value.
Leading zeros stay. 02134 and 02446 come through as text, not as numbers. Some spreadsheet apps strip them if you open and re-save the file, so import the file as downloaded.
What MapMyCSV doesn't do here
- It doesn't connect to HubSpot or run the import. You download the mapped CSV and import it in HubSpot.
- It doesn't remove duplicate rows or check which contacts already exist. That matching happens in HubSpot, by Email or Record ID.
- It doesn't split one full-name column into first and last name, and it doesn't fill values that aren't in the export.
- It doesn't check Lifecycle stage or other dropdown values against your account's options.
- Dates: any target header with the word "date" in it is written as YYYY-MM-DD, and slash dates are read month first. A day-first export like
04/05/2026for 4 May would come out as April 5. This example leavesSigned Upunmapped. If you map a date, check it first. The dates and leading zeros guide covers how.
Before importing a full list, import the first few rows and open those contacts in HubSpot. Check the name, company and phone landed in the right properties, then import the rest. The general CSV column mapping guide has a longer review sequence. If the same customers are going into a Shopify store instead, the Shopify customers CSV import guide covers Shopify's column names and its yes/no and address-code columns.
Questions
Does a HubSpot contacts import need First name and Last name?
No. HubSpot's help lists Email as the property required to create contacts and suggests First name and Last name for basic identifying information.
Do my CSV columns have to be in a set order for HubSpot?
No. HubSpot says the column headers can be in any order. Each header needs to correspond to a HubSpot property, and you confirm the match in the import's mapping step.
Will a blank cell erase a value already in HubSpot?
No. HubSpot's import ignores blank cells, so an existing value stays. HubSpot's help says to clear values in bulk by editing them manually or with the Edit records workflow action.