How to Clean a CSV Before Importing into HubSpot
Updated
Most failed or messy HubSpot imports come from a handful of fixable problems in the file. Work through this checklist before you upload and you'll get fewer errors, fewer duplicate contacts, and properties that are actually usable for segmentation.
1. Make the header row importer-friendly
HubSpot maps each column to a property using the header row. Make sure the first row contains the headers (no title rows above them), every column has a name, and no two columns share a name. Use names close to HubSpot's properties — “First Name”, “Last Name”, “Email”, “Phone Number”, “Company Name”, “Country/Region” — so automatic mapping works.
Delete columns you don't intend to import, and completely empty columns.
2. Clean and deduplicate email addresses
For contacts, the email address is how HubSpot identifies a person: a row with an existing email updates that contact instead of creating a new one. That makes the email column the most important one in the file.
- Trim spaces and lowercase every address.
- Remove wrappers such as “mailto:” or “Name <email>”.
- Fix or remove invalid addresses (missing @, missing domain).
- Remove duplicate rows for the same email within the file — otherwise the last one processed silently wins. Keep the most complete row.
3. Use one phone number format
Phone numbers are far more useful — for calling, SMS integrations and matching — when they include the country code. Convert them to international E.164 format (+919876543210, +14155552671). Decide which country national numbers belong to rather than letting a tool guess.
4. Make dates unambiguous
Date properties need one consistent format per column. Mixed formats — 25/03/2024 next to 2024-03-26 — cause errors or, worse, wrong dates. Convert every date to YYYY-MM-DD, and resolve ambiguous values like 03/04/2024 by confirming whether the source was day-first or month-first.
5. Standardise dropdown-style values
Properties with a fixed set of options (country, lifecycle stage, lead status, industry) only accept values that match the options. Normalise spellings first: India / IN / IND / india should all become one value. Check the internal option values in HubSpot's property settings and make the file match them.
6. Remove empty and junk rows
- Blank rows left over from filtering.
- Rows with no email and no name — they can't be matched to anyone.
- Test entries (test@test.com, “asdf”) from form spam.
Checklist
| Check | Why it matters |
|---|---|
| Unique, named headers in row 1 | Columns map to the right properties |
| Emails trimmed, lowercased, valid | Contacts match instead of duplicating |
| No duplicate emails in the file | No silent overwrites during import |
| Phones in E.164 | Usable for calling/SMS, consistent display |
| Dates in YYYY-MM-DD | No rejected or shifted dates |
| One spelling per country/option | Values match dropdown options |
| No blank or junk rows | Cleaner database, fewer errors |
TheSpreadFix checks all of these in one Data Health Report and lets you fix them before you download the import file. Save the fixes as a recipe to prepare the next import the same way.
Frequently asked questions
Should I import CSV or Excel into HubSpot?
Both work. If you use CSV, save it as UTF-8 so accented names import correctly.
Will re-importing create duplicates?
For contacts, rows whose email already exists update the existing contact. Duplicates usually come from rows without emails or from inconsistent email formatting.