Quick Answer
Most CSV import failures trace back to six skipped checks: encoding not set to UTF-8, delimiter doesn't match the platform, headers have typos or wrong names, dates are in an ambiguous format, required fields have empty rows, and duplicates weren't removed. Run these before uploading and you eliminate the majority of import errors before they happen.
The fix: Treat your CSV like code before deployment — run a validation pass before it touches any platform.
Why it matters: Every platform has its own import requirements. What works in HubSpot fails in Salesforce. What works in Excel fails in PostgreSQL. The checklist below is platform-agnostic — it catches the errors that fail everywhere.
The 10-Point Pre-Import Checklist
Use this as a literal checklist before every upload. Each item is a 1–2 minute check. The whole process takes 15 minutes and prevents hours of debugging.
| # | Check | What to verify | Tool |
|---|---|---|---|
| 1 | Encoding | File is UTF-8 | Notepad++ / SplitForge |
| 2 | Delimiter | Commas (not semicolons or tabs) | Text editor |
| 3 | Headers | Present, correct names, no duplicates | Text editor |
| 4 | Date format | All dates are YYYY-MM-DD | Spreadsheet |
| 5 | Required fields | Every required column has a value in every row | Data Validator |
| 6 | Empty rows | No blank rows in the middle or end of file | Text editor / tool |
| 7 | Leading zeros | ZIP codes, IDs, phone numbers preserved | Spot-check |
| 8 | Duplicates removed | No duplicate records by key field | Remove Duplicates tool |
| 9 | File size | Within platform limits | File manager |
| 10 | Test import | Run 5 rows first before full import | Platform import tool |
Fast Fix (2 Minutes)
If you're about to import and want the fastest possible check:
- Open your CSV in a text editor — confirm semicolons aren't visible between values.
- Check the first row is headers, not data.
- Search for
,,(two consecutive commas) — these are empty required fields. - Check the file size is within your platform's limit.
- Import 5 rows first as a test.
For a thorough pre-import validation, run through all 10 checks below.
TL;DR: The 10-point checklist above takes 15 minutes and prevents the most common import failures across every platform. The two checks teams skip most — test import with 5 rows first, and remove duplicates before uploading — cause the most avoidable damage. Run your file through SplitForge Data Validator to automate checks 1–6 in one pass before you upload.
You've spent two hours cleaning a 5,000-row contact list. You upload it to your CRM. The import "completes successfully" — but only 3,847 rows actually imported. The other 1,153 rows were rejected. The error report lists 23 different error types across different rows. You could have caught all of them in 15 minutes.
This checklist is what experienced data teams run before every import. It's not complicated. It's just not skipped.
Each check was verified against current behavior in Salesforce, HubSpot, QuickBooks, PostgreSQL, and Notion, March 2026.
Table of Contents
- What Failures Actually Look Like
- Check 1: Encoding Is UTF-8
- Check 2: Delimiter Matches the Platform
- Check 3: Headers Are Correct
- Check 4: Date Format Is YYYY-MM-DD
- Check 5: Required Fields Are Populated
- Platform Required Fields Quick Reference
- Check 6: No Empty Rows
- Check 7: Leading Zeros Are Preserved
- Check 8: Duplicates Are Removed
- Check 9: File Size Is Within Platform Limits
- Check 10: Run a 5-Row Test Import First
- Platform-Specific Limits Reference
- Additional Resources
- FAQ
This checklist is for: Anyone importing CSV data into any platform — CRM, database, accounting software, project management tool, or spreadsheet.
What Failures Actually Look Like
These are the three most common raw CSV problems. Knowing what they look like in the file makes the fix obvious.
Failure 1: Wrong delimiter
❌ BROKEN (semicolon-delimited, opened expecting commas):
Name;Email;Company;Phone
Alice Johnson;[email protected];Acme Corp;555-1234
What HubSpot shows: One column named "Name;Email;Company;Phone"
Why it fails: HubSpot expects commas, not semicolons
FIXED:
Name,Email,Company,Phone
Alice Johnson,[email protected],Acme Corp,555-1234
Failure 2: Duplicate column header
❌ BROKEN (two columns named "Phone"):
First Name,Last Name,Email,Phone,Phone
Alice,Johnson,[email protected],555-1234,555-9999
What Salesforce shows: "Column 'Phone' mapped multiple times"
Why it fails: Salesforce can't resolve which Phone to use
FIXED:
First Name,Last Name,Email,Phone,Mobile
Alice,Johnson,[email protected],555-1234,555-9999
Failure 3: Empty required field
❌ BROKEN (missing Company — required in Salesforce Leads):
First Name,Last Name,Email,Company
Alice,Johnson,[email protected],
Bob,Smith,[email protected],Globex Corp
What Salesforce shows: Row 1 rejected — "Required field missing: Company"
Why it fails: Company is required for Leads, empty string not accepted
FIXED:
First Name,Last Name,Email,Company
Alice,Johnson,[email protected],Unknown
Bob,Smith,[email protected],Globex Corp
These three failures appear in the majority of failed imports. If your CSV has any of these patterns, the import will fail regardless of which platform you're targeting.
Check 1: Encoding Is UTF-8
Why it matters: Wrong encoding produces garbled characters in names, addresses, and descriptions. The import "succeeds" but your data is corrupted.
How to check: Open the file in Notepad++ (Windows) or TextEdit (Mac). Look at the encoding indicator. It should say UTF-8.
How to fix: In Excel, go to File → Save As → choose "CSV UTF-8 (Comma delimited)". In Google Sheets, File → Download → Comma-separated values automatically exports UTF-8.
Fast check without Notepad++: Open the file in any text editor. If you see é instead of é, or â€" instead of —, it's a Windows-1252 file being read as UTF-8.
Run SplitForge Delimiter & Encoding Fixer to auto-detect and convert encoding locally before uploading.
Check 2: Delimiter Matches the Platform
Why it matters: European-locale Excel exports use semicolons. Most platforms expect commas. A semicolon-delimited file dumps all data into column A with no error.
How to check: Open the file in a text editor. Are columns separated by commas or semicolons?
How to fix: In Excel, go to File → Save As → CSV (Comma delimited) — not the default CSV option on European Windows installs, which saves semicolons.
Platform expectations: All major platforms (Salesforce, HubSpot, Notion, monday.com, PostgreSQL) expect comma-delimited by default. Verify your platform's delimiter requirement before importing anything with a European source.
Check 3: Headers Are Correct
Why it matters: Every platform maps CSV columns to fields by header name. A typo in a header silently drops that entire column. Two columns with the same name create mapping conflicts.
Three things to verify:
- Header row is row 1 — no blank rows above it, no data above it.
- No duplicate column names —
PhoneandPhonecreates a mapping error in most CRMs. - Names match platform requirements — HubSpot needs
First NameandLast Name(notFirstName). Salesforce usesAccount Name(notAccountName). Check your platform's template.
How to check: Open the file in a spreadsheet. Scan row 1. Run a COUNTIF to find duplicate headers.
Most commonly wrong headers:
| Platform | Wrong | Right |
|---|---|---|
| HubSpot Contacts | Email Address | Email |
| Salesforce Leads | Name (full) | First Name, Last Name (separate) |
| Notion | date | Date (case-sensitive match to property name) |
| PostgreSQL COPY | Any header without HEADER in COPY command | Include HEADER option |
Check 4: Date Format Is YYYY-MM-DD
Why it matters: 05/03/2026 is May 3 in the US and March 5 in Europe. Ambiguous date formats produce wrong data with no error, or fail the import entirely.
The universal fix: Use YYYY-MM-DD for all dates before importing. This format is unambiguous in every locale and accepted by every major platform.
How to standardize in Excel:
- Select all date columns.
- Right-click → Format Cells → Custom.
- Enter
YYYY-MM-DD. - Save as CSV.
How to check: Scan your date column for MM/DD/YYYY, DD/MM/YYYY, written-out months (March 15), or date-time combinations (2026-03-15 14:30:00). Convert all of these to YYYY-MM-DD.
Note on time data: If your platform requires date-time, use YYYY-MM-DD HH:MM:SS (ISO 8601 datetime). Strip the time component if the platform only imports dates.
Check 5: Required Fields Are Populated
Why it matters: Every platform has required fields. A row with an empty required field is rejected. Depending on the platform, this is silent (the row is skipped) or a full import failure.
How to find empty required fields:
In Excel: select the required column → use conditional formatting to highlight blank cells. Or use COUNTBLANK() to count empties across the column.
Common required fields by platform:
| Platform | Required fields |
|---|---|
| HubSpot Contacts | |
| Salesforce Leads | Last Name, Company |
| QuickBooks | Date, Description, Amount |
| Notion | Name (Title property) |
| PostgreSQL | Any NOT NULL column in your table |
How to fix: Either populate missing values or remove the rows with empty required fields before importing. Don't leave placeholder text like "N/A" in numeric fields — that creates a different error.
Run SplitForge Data Validator to identify all empty required fields across the entire file in one pass.
Platform Required Fields Quick Reference
| Platform | Must-have fields | Most common mapping failure |
|---|---|---|
| HubSpot Contacts | Using Email Address instead of Email; no email at all | |
| HubSpot Companies | Company Name | Using Company instead of Company Name |
| Salesforce Leads | Last Name, Company | Using Name (full) instead of split First Name + Last Name |
| Salesforce Contacts | Last Name | Omitting Account Name causes orphaned contacts |
| Zoho CRM Contacts | Last Name | Using Full Name instead of separate first/last |
| Pipedrive People | Name | Splitting into first/last — Pipedrive wants a single Name field |
| QuickBooks | Date, Description, Amount | Date in wrong format; Amount with currency symbol |
| Notion | Title property (first column) | Any column heading that doesn't match existing property name exactly |
Save this table. Paste it into your team's import SOP.
Check 6: No Empty Rows
Why it matters: An empty row in the middle of your CSV tells many importers "end of data." Everything after it gets ignored. QuickBooks, MySQL, and several CRM systems all exhibit this behavior.
How to check: In Excel, use Ctrl+End — the cursor should land on the last row of data, not an empty row below it. Or filter the file to show blanks.
How to fix: Select all → sort by any column → empty rows float to the bottom → delete them → resort to original order if needed.
Invisible empty rows: Rows that look empty but contain spaces or formatting can also cause problems. Use Trim() on all cells and delete truly empty rows.
For more on this issue, see our guide on empty rows breaking CSV imports.
Check 7: Leading Zeros Are Preserved
Why it matters: ZIP codes, employee IDs, phone numbers with country codes, and product SKUs often start with zero. Excel auto-strips leading zeros when it treats these as numbers.
How to check: Open the file in a text editor (not Excel). Spot-check your ZIP code and ID columns. 01234 should appear as 01234, not 1234.
How to fix before importing: In Excel, format the affected columns as Text before entering or pasting data. When saving as CSV, leading zeros are preserved in Text-formatted cells.
How to detect the problem: If your ZIP codes are 4 digits instead of 5, or IDs are shorter than expected, leading zeros were stripped.
For a detailed fix guide, see CSV leading zeros disappearing.
Check 8: Duplicates Are Removed
Why it matters: Importing duplicates creates duplicate records in your CRM or database. Most platforms don't deduplicate on import — they just add every row as a new record.
Deduplication key — what to check:
| File type | Deduplicate by |
|---|---|
| Contact list | Email address |
| Company list | Company name + domain |
| Transaction data | Transaction ID or date+amount |
| Product catalog | SKU or product code |
How to check in Excel:
- Select your key column (e.g., Email).
- Home → Conditional Formatting → Highlight Cell Rules → Duplicate Values.
- Any highlighted cells are duplicates.
How to fix: Use SplitForge Remove Duplicates to identify and remove duplicate rows by any key column. Processes locally — email addresses and contact data never leave your browser.
For CRM imports specifically, also deduplicate against your existing database. An email address that's new to your CSV might already exist in the CRM from a previous import. See our guide on removing duplicate emails before CRM import.
Check 9: File Size Is Within Platform Limits
Why it matters: Exceeding a platform's file size limit causes the import to fail with no partial import — you get nothing. Knowing the limit beforehand lets you split the file rather than waste time on a doomed upload.
Platform file size and row limits:
| Platform | Max file size | Max rows |
|---|---|---|
| HubSpot | 512MB | 1,048,576 per file |
| Salesforce Data Import Wizard | 100MB | 50,000 |
| Salesforce Data Loader | No hard limit | Millions (via API) |
| QuickBooks | ~10MB practical | ~1,000 rows |
| Notion Free | 5MB | ~50K practical |
| Notion Paid | 50MB | ~500K practical |
| monday.com | 10MB | 8,000 |
| PostgreSQL COPY | Server memory | Server memory |
| Google Sheets | 100MB import | 10M cells |
How to check: Right-click the CSV file → Properties → check the file size. Compare against your platform's limit.
How to fix if too large: Split the file using SplitForge CSV Splitter by row count or file size. Import each batch separately.
Check 10: Run a 5-Row Test Import First
Why it matters: A test import with 5 representative rows confirms your field mapping is correct, required fields are all present, and status/dropdown values match before you commit 50,000 rows.
What a good test import looks like:
- Create a test CSV: header row + 5 rows that represent your data's variety (include rows with special characters, edge-case dates, and your full range of status values).
- Import the test CSV.
- Verify in the platform that every field mapped correctly and every value is correct.
- Only then import the full file.
What to check after the test:
- All columns present in the right places
- Status/label values populated (not blank)
- Dates display correctly
- Numbers formatted correctly
- No unexpected duplicates created
This 10-minute test saves hours of post-import cleanup.
Platform-Specific Limits Reference
| Platform | Encoding required | Delimiter | Date format | Max rows | File limit |
|---|---|---|---|---|---|
| HubSpot | UTF-8 | Comma | YYYY-MM-DD | 1,048,576 | 512MB |
| Salesforce (Wizard) | UTF-8 | Comma | YYYY-MM-DD | 50,000 | 100MB |
| Salesforce (Data Loader) | UTF-8 | Comma | YYYY-MM-DD | Millions (Bulk API) | No hard limit |
| Microsoft Dynamics 365 | UTF-8 | Comma | YYYY-MM-DD | ~100,000 (per import job) | ~128MB |
| QuickBooks | UTF-8 | Comma | MM/DD/YYYY or YYYY-MM-DD | ~1,000 | ~10MB |
| monday.com | UTF-8 | Comma | YYYY-MM-DD | 8,000 | 10MB |
| Notion Free | UTF-8 | Comma | YYYY-MM-DD | ~50K | 5MB |
| PostgreSQL COPY | UTF-8 | Comma (configurable) | YYYY-MM-DD | Server limits | Server limits |
| Google Sheets | UTF-8 | Comma (or custom) | YYYY-MM-DD safest | 10M cells | 100MB |
Dynamics 365 note: Microsoft Dynamics uses the Data Import Wizard, which processes imports as async jobs. Large imports may take hours — don't close the browser or navigate away during processing. Field names use CRM internal names (firstname, lastname, emailaddress1) which differ from display labels.
Save this table. Bookmark this page. Paste it into your team's SOP.
Additional Resources
Official Platform Documentation:
- HubSpot import file format requirements — Official field format and technical limits (updated March 2026)
- Salesforce Data Import Wizard guide — Official import requirements and field mapping
Standards:
- RFC 4180: CSV Format Specification — The authoritative CSV structure standard
- Unicode UTF-8 Standard — Encoding reference
Related SplitForge Guides:
- Validate CSV before import — Automated validation at scale
- Why CRMs reject CSV imports — Platform-specific rejection causes
- CSV import errors complete guide — Full error taxonomy