Sigmera.

Clean a CSV before a HubSpot import

To clean a CSV for a HubSpot import, fix the phone column to E.164, lowercase and validate the email column, then remove duplicate rows by email — in that order. Sigmera does all three in your browser, so your contact list is never uploaded to a server and stays GDPR-safe by design.

Not sure what HubSpot means by a valid phone value? Here is what E.164 format is, with examples.

Last updated: September 2026

Why messy exports break the import

A CSV exported from a webform, an old spreadsheet, or another CRM almost never lines up with what HubSpot expects. Phone numbers arrive as (415) 555-0132, 415.555.0132, and +1 415 555 0132 all in the same column. Emails have stray capitals and trailing spaces. The same person appears three times. When you push that into HubSpot, the import either fails outright, silently drops rows, or — worse — creates duplicate contacts that pollute your database and inflate your seat count. Cleaning up afterwards inside HubSpot is slow and error-prone. It is far cheaper to fix the file first.

If your list is still an Excel workbook, save it as a CSV first — HubSpot imports comma-separated files, and working in plain text keeps every cleanup step below predictable.

Step by step: prep your CSV for HubSpot

  1. 1. Clean the phone-number column. Open the phone-number cleaner and convert the whole column to E.164 (+14155550132) so HubSpot stores it as a valid phone property.
  2. 2. Normalise the email column. Open the email-column cleaner to lowercase, trim, and validate addresses, dropping the ones HubSpot would reject.
  3. 3. Remove duplicate contacts. Open the duplicate remover and match on the email column so each contact appears once.
  4. 4. Preview, download, and import. Check the cleaned preview, download the file, and map the columns in HubSpot’s import wizard.

How to import a CSV to HubSpot once it is clean

The cleaning above is the hard part. To import a CSV to HubSpot, open CRM → the object you are importing (Contacts, Companies, Deals) → Import, choose “Start an import”, pick a file from your computer, and select one object and one file. HubSpot then asks you to map each column header to a property, and flags any header it cannot match so you can map it by hand or skip it.

For a one-off import, doing those browser steps yourself is usually fastest. If the same handoff repeats, a file cleaner stops where the clean CSV ends; a desktop agent can continue into the importer. See how Lapu AI can automate the browser side of the workflow while keeping form submissions behind an approval step.

Two details decide whether the import updates records or duplicates them. First, contacts are keyed on Email or Record ID — HubSpot marks the unique identifier with a key icon in the mapping screen. If your email column is inconsistent, rows that should match an existing contact will instead create a new one, which is exactly why the dedupe step runs on email. Second, the file has to fit HubSpot’s limits.

HubSpot import file limits

  • Format: a .csv, .xlsx, or .xls file containing only one sheet.
  • Size: up to 20 MB on free tools, up to 512 MB on Starter, Professional, and Enterprise.
  • Rows: up to 500,000 per day on free tools; paid tiers allow up to 10,000,000 per day with a limit of 1,048,576 rows per file.
  • Columns: fewer than 1,000, with a header row whose column headers correspond to HubSpot properties. Header order does not matter.

Limits per HubSpot’s import file requirements (checked July 2026). If your file is an Excel workbook with several sheets, split it or export the one sheet you need as CSV first. HubSpot keys contacts on separate First name and Last name properties, so a single Full Name column has to be split into first and last name before the mapping step.

Date, currency, and phone formats HubSpot accepts

Phone and email get all the attention, but a date column is the quieter way an import goes wrong: nothing errors, the records just land on the wrong day. HubSpot is generous about the shape of a date and unforgiving about mixing shapes. Its import guide accepts day month year (28/10/2023), month day year (10-28-23), and year month day (2023.OCT.28); months may be a number, three letters, or a full name (10, OCT, October); years may be two digits or four; and the separator may be a slash, hyphen, or period.

The trap is a single column that holds more than one convention — typically because rows came from two exports. 03/04/2026 is 3 April to one system and 4 March to another, and HubSpot cannot tell which you meant. Settle the whole column on one order before you import; a find-and-replace pass over the CSV is enough to normalise stray separators without touching the rest of the file.

Two smaller rules from the same page. Currency must use one of the account’s accepted currencies and be written with decimals — 123.45, no symbol and no thousands separator. Phone numbers go in as +[country code][number], with an extension appended as ext[number] (+11234567890 ext123) — the same E.164 shape step 1 produces, which is the reason that step comes first.

Date, currency, and phone rules per HubSpot’s import file requirements (checked August 2026).

Before and after

FieldMessy exportHubSpot-ready
Phone(415) 555-0132+14155550132
Email Jane@Acme.COM jane@acme.com
Duplicate rows3 rows, same email1 row
Import resultErrors / duplicate contactsClean import, no duplicates

🔒 Your contact list stays on your device. Every step runs in your browser’s memory — no file is uploaded, which keeps customer PII GDPR-safe by design.

Check the HubSpot file layout before importing

Use one sheet, a header row, and one property per column. Save text containing accented or non-Latin names in UTF-8. If the source has one Full Name column, split it into first and last nameand map the resulting columns to HubSpot's corresponding properties.

Keep the primary Email column separate from Additional email addresses. HubSpot's import-file guide describes semicolon-separated values for additional addresses and other multi-value properties. Check the property-specific format rather than combining every address into the primary email field.

Sigmera works on your file, not your HubSpot account: no connector, OAuth grant, or account access is needed. Download the cleaned file and import it through HubSpot. Review the current import-file requirementsfor supported formats, column limits, and the limits of your subscription.

Frequently asked questions

Why does my HubSpot import keep failing?
The most common causes are phone numbers in inconsistent formats, invalid or blank email addresses, and duplicate rows that collide on the same email. Cleaning the phone column to E.164, validating emails, and removing duplicates before you upload fixes the majority of failed HubSpot imports.
What phone format does HubSpot expect?
HubSpot stores and validates phone numbers best in E.164 format — a plus sign, country code, then the number with no spaces or brackets, like +14155550132. Sigmera's phone cleaner converts a messy column to E.164 in your browser before you import.
Will this upload my contact list anywhere?
No. Every step runs inside your web browser using client-side JavaScript. Your contact CSV is never sent to a server and never leaves your device, so handling customer PII this way is GDPR-safe by design.
How do I import a CSV to HubSpot?
In HubSpot, go to CRM, open the object you are importing (for example Contacts), click Import, then "Start an import", and choose a file from your computer. Select one object and one file, upload the CSV, and map each column header to a HubSpot property. Clean the file first — fixing phone formats, emails, and duplicates before the upload is what keeps the mapping step from failing.
What are HubSpot's CSV import limits?
The file must be a .csv, .xlsx, or .xls containing a single sheet, with fewer than 1,000 columns and a header row that maps to HubSpot properties. Free tools accept files up to 20 MB and 500,000 rows per day; Starter, Professional, and Enterprise accept up to 512 MB and 10,000,000 rows per day, capped at 1,048,576 rows per file.
What file encoding does HubSpot need for a CSV import?
HubSpot asks that the file be UTF-8 encoded if it contains foreign language characters. This is where accented names and non-Latin scripts get mangled: Excel's default Save As on Windows writes a locale codepage rather than UTF-8, so "Müller" arrives in HubSpot as "Müller". Exporting the file as UTF-8 CSV before you import avoids the whole class of problem — Sigmera's converter writes comma-delimited UTF-8 every time.
How do I undo a HubSpot import that went wrong?
Only partly, which is why cleaning the file first matters. HubSpot lets you open a past import, select the records it created, and delete them. But records that the import updated cannot be rolled back that way — HubSpot's own guidance is that you would need to run another import with the correct information or edit the properties manually. A bad phone format or a duplicate-heavy file is far cheaper to fix in the CSV than in the CRM afterwards.
What date format does HubSpot need for a CSV import?
HubSpot is flexible about the shape but strict about consistency. It accepts day-month-year (28/10/2023), month-day-year (10-28-23), or year-month-day (2023.OCT.28); months can be a number, three letters, or a full name; years can be two digits or four; and the separator can be a slash, hyphen, or period. What breaks an import is mixing conventions inside one column — 03/04/2026 is ambiguous, so a column holding both UK and US ordering will silently land some records months away from the real date. Pick one order for the whole column before you import.
How should currency and phone values be formatted?
HubSpot expects currency data in one of the account's accepted currencies, formatted with decimals — 123.45 for USD, with no thousands separator or currency symbol. Phone numbers go in as +[country code][number], with an extension appended as ext[number] (for example +11234567890 ext123). That is the same E.164 shape the phone cleaner produces, which is why the phone step runs before the import rather than after.
Should I deduplicate on email or on the whole row?
For a HubSpot import, deduplicate on the email column. HubSpot uses email as the primary key for contacts, so two rows with the same email are the same contact even if other fields differ. Matching on email removes the duplicates HubSpot would otherwise merge or reject.