← All guides

Why your HubSpot contact import fails (and how to fix it)

The Importly team · Published 2026-08-22 · Updated 2026-08-23

You upload the file, HubSpot reports the import as successful, and then 300 of your 1,200 contacts are missing — or every é has turned into é. HubSpot rarely tells you which column caused it.

Here are the seven causes, in the order worth checking them.

1. Your column headers match no HubSpot property

HubSpot maps each column of your file to a contact property by name. Headers written in your own language — Prénom, Courriel, Téléphone — match nothing. The importer leaves them unmapped, and unmapped columns are simply not imported. The contacts are created, but half their fields are empty.

The fix. Either map every column by hand on the import wizard's mapping screen, or rename the headers in your file first. HubSpot's default contact properties are:

Your header might say HubSpot expects
Prénom, Firstname, Given name First Name
Nom, Surname, Last name Last Name
Courriel, Mail, E-mail Email
Téléphone, Tel, Mobile Phone Number
Société, Entreprise Company Name
Fonction, Poste Job Title

Anything that isn't a standard property has to exist as a custom property in HubSpot before the import, or it cannot be mapped at all.

2. Accents turn into é, è, Ã

Your file is encoded in Windows-1252 (ANSI) instead of UTF-8. On a French or German Windows machine, Excel's plain Save as → CSV does exactly this.

The fix. In Excel, use Save as → CSV UTF-8 (Comma delimited), which is a separate entry in the format list. Simpler still: keep the file as .xlsx. HubSpot accepts .xlsx directly and the encoding question disappears entirely.

3. Your CSV uses semicolons, not commas

French, German, Spanish and Italian versions of Excel write CSV files with ; as the separator, because the comma is the decimal mark. HubSpot expects a comma-delimited file, so every row arrives as one single column.

The fix. Save as .xlsx instead — or change the list separator in Windows (Control Panel → Region → Additional settings → List separator) and re-export.

4. Duplicate emails silently overwrite each other

Email is HubSpot's default unique identifier for contacts. Two rows sharing an address are not two contacts: they are one contact, imported twice, and the last row wins. If your second row is the sparser one, it quietly erases data from the first.

The fix. Deduplicate before importing, and decide deliberately which row survives. In Excel: sort by email, then use Data → Remove Duplicates on the email column — but check first that you are keeping the most complete row, not just the last one.

5. Empty rows and rows with no identifier

Email is the only property HubSpot actually requires on a contact import — first and last name are optional. A row without an email address is rejected outright, however complete the rest of it looks.

The usual culprit is invisible: after deleting rows in Excel, the sheet often keeps hundreds of blank-but-existing rows at the bottom. They get exported, counted, and rejected.

The fix. Select the first truly empty row, press Ctrl+Shift+↓, delete the whole selection, then save.

6. Dates HubSpot reads the wrong way round

03/04/2026 is 3 April in Europe and 4 March in the United States. HubSpot interprets date properties against a set format, so an ambiguous column lands the whole year's worth of dates on the wrong day.

The fix. Convert date columns to ISO format — 2026-04-03 — which is unambiguous and always accepted.

7. Phone numbers Excel has already damaged

Excel treats 06 12 34 56 78 as a number and strips the leading zero, so the file exports 612345678. Mixed formats across the same column (+33 6…, 06.12…, 0033 6…) also make the field unusable for later automation.

The fix. Format the phone column as Text before pasting the data in, and standardise on E.164 — +33612345678. If the leading zero is already gone, re-export from the source rather than trying to repair it.

Pre-flight checklist

  • File saved as .xlsx, or as CSV UTF-8 comma-delimited
  • Headers renamed to HubSpot's property names
  • No trailing empty rows
  • Duplicate emails resolved, deliberately
  • Dates in YYYY-MM-DD
  • Phone column stored as text

When it's the same export every week

For a one-off migration, the manual route above is perfectly fine — an hour of work and you're done.

It stops being fine when it's the same export every week. That's what Importly is for: upload the raw file, pick the HubSpot — Contacts profile, and it renames the columns to HubSpot's schema, fixes the encoding, normalises dates and phone numbers, removes duplicate emails and drops the empty rows. Save it as your own profile and every later export goes through exactly the same rules — same input, same output, no re-checking.

Clean your first export free →

Set up the HubSpot profile →

Stop reformatting exports by hand.

Try Importly free