Why Your CRM Import Fails — and How to Clean the CSV First
When a HubSpot or Salesforce import fails, times out, or quietly creates a thousand duplicates, the cause is almost never the CRM. It is the file. Seven classes of error in a CSV account for nearly every failed import — and all seven can be found and fixed before you import. This guide names them, maps them to the errors you actually see, and gives you the pre-import checklist.
The 7 File Errors That Break CRM Imports
1. Invalid email formats. Missing @, [at] typed instead of @, no domain ending, or a misspelled provider domain. Importers reject the row or file it as an unusable contact.
2. Duplicate rows and duplicate emails. The same person exported twice, or merged from two lists. The import creates two records — or errors out — and every report after that double-counts them.
3. Ambiguous or mixed dates. 03/04/2026 read as March 4 by one system and 3 April by another; two formats in one column. Dates import shifted, fail validation, or land in the wrong quarter.
4. Phone numbers in inconsistent formats. +1, brackets, spaces, and local formats mixed in one column. Fields import as text soup that dialers and workflows cannot use.
5. Name formatting problems. ALL-CAPS names, full names in one field when the CRM wants first and last split, stray spaces and line breaks inside cells.
6. Empty values in required fields. A row with no email, no name, or no company where the CRM requires one is rejected — sometimes silently, so the import “succeeds” with fewer records than you sent.
7. Characters the importer misreads. Cells starting with = or @ (read as formulas), unescaped quotes inside fields, and files saved in the wrong encoding, which mangles accented names.
What the Error Messages Usually Mean
| What you see | Usual file cause | Fix before importing |
|---|---|---|
| Rows rejected for invalid email addresses | Error 1 — bad formats, [at] instead of @, dead domains | Run an email format check; fix by hand or hold back flagged rows |
| Import “succeeds” but record counts double | Error 2 — duplicates were in the file | Remove duplicate rows; merge rows sharing one email; match on email at import |
| Dates shifted by days or months | Error 3 — ambiguous day/month order | Standardize the whole column to YYYY-MM-DD before importing |
| Required-field or validation errors | Error 6 — empty values in required fields | Filter the file for blanks in required columns and complete or drop those rows deliberately |
| Garbled names, broken columns | Error 7 — encoding and stray quotes/formula starts | Re-save as UTF-8 CSV; neutralize cells starting with = or @ |
The Pre-Import Checklist
1. Keep an untouched copy of the original file. If anything goes wrong, it is your way back.
2. Remove empty rows and any repeated header rows pasted into the middle of the file.
3. Remove duplicate rows, then merge rows that share the same email address.
4. Flag invalid email formats; fix the ones you are sure about, hold back the rest. Remember format checks do not prove a mailbox exists.
5. Standardize every date column to YYYY-MM-DD, deciding the day/month order once, for the whole column.
6. Standardize phone numbers to one format, and fix name capitalization; split full names if your CRM stores first and last separately.
7. Check required fields for blanks, and neutralize any cell that starts with = or @.
8. Read the cleaning report before you import — it should explain every change. Then import a small test batch first, matching on email, and check the results before the full file.
Clean your import file free Remove duplicates from a list
Prefer the command line or an AI agent? The same cleaning is available as smartdata-clean — see tools for agents. Working through a specific import job instead? The worked examples for HubSpot imports, Salesforce lead imports and email lists show before-and-after files you can reproduce.