Navigated to blog › csv-import-checklist
Back to Blog
csv-guides

CSV Import Checklist: 10 Things to Verify Before You Upload to Any Platform

March 18, 2026
12
By SplitForge Team

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.

#CheckWhat to verifyTool
1EncodingFile is UTF-8Notepad++ / SplitForge
2DelimiterCommas (not semicolons or tabs)Text editor
3HeadersPresent, correct names, no duplicatesText editor
4Date formatAll dates are YYYY-MM-DDSpreadsheet
5Required fieldsEvery required column has a value in every rowData Validator
6Empty rowsNo blank rows in the middle or end of fileText editor / tool
7Leading zerosZIP codes, IDs, phone numbers preservedSpot-check
8Duplicates removedNo duplicate records by key fieldRemove Duplicates tool
9File sizeWithin platform limitsFile manager
10Test importRun 5 rows first before full importPlatform import tool

Fast Fix (2 Minutes)

If you're about to import and want the fastest possible check:

  1. Open your CSV in a text editor — confirm semicolons aren't visible between values.
  2. Check the first row is headers, not data.
  3. Search for ,, (two consecutive commas) — these are empty required fields.
  4. Check the file size is within your platform's limit.
  5. 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


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:

  1. Header row is row 1 — no blank rows above it, no data above it.
  2. No duplicate column namesPhone and Phone creates a mapping error in most CRMs.
  3. Names match platform requirements — HubSpot needs First Name and Last Name (not FirstName). Salesforce uses Account Name (not AccountName). 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:

PlatformWrongRight
HubSpot ContactsEmail AddressEmail
Salesforce LeadsName (full)First Name, Last Name (separate)
NotiondateDate (case-sensitive match to property name)
PostgreSQL COPYAny header without HEADER in COPY commandInclude 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:

  1. Select all date columns.
  2. Right-click → Format Cells → Custom.
  3. Enter YYYY-MM-DD.
  4. 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:

PlatformRequired fields
HubSpot ContactsEmail
Salesforce LeadsLast Name, Company
QuickBooksDate, Description, Amount
NotionName (Title property)
PostgreSQLAny 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

PlatformMust-have fieldsMost common mapping failure
HubSpot ContactsEmailUsing Email Address instead of Email; no email at all
HubSpot CompaniesCompany NameUsing Company instead of Company Name
Salesforce LeadsLast Name, CompanyUsing Name (full) instead of split First Name + Last Name
Salesforce ContactsLast NameOmitting Account Name causes orphaned contacts
Zoho CRM ContactsLast NameUsing Full Name instead of separate first/last
Pipedrive PeopleNameSplitting into first/last — Pipedrive wants a single Name field
QuickBooksDate, Description, AmountDate in wrong format; Amount with currency symbol
NotionTitle 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 typeDeduplicate by
Contact listEmail address
Company listCompany name + domain
Transaction dataTransaction ID or date+amount
Product catalogSKU or product code

How to check in Excel:

  1. Select your key column (e.g., Email).
  2. Home → Conditional Formatting → Highlight Cell Rules → Duplicate Values.
  3. 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:

PlatformMax file sizeMax rows
HubSpot512MB1,048,576 per file
Salesforce Data Import Wizard100MB50,000
Salesforce Data LoaderNo hard limitMillions (via API)
QuickBooks~10MB practical~1,000 rows
Notion Free5MB~50K practical
Notion Paid50MB~500K practical
monday.com10MB8,000
PostgreSQL COPYServer memoryServer memory
Google Sheets100MB import10M 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:

  1. 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).
  2. Import the test CSV.
  3. Verify in the platform that every field mapped correctly and every value is correct.
  4. 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

PlatformEncoding requiredDelimiterDate formatMax rowsFile limit
HubSpotUTF-8CommaYYYY-MM-DD1,048,576512MB
Salesforce (Wizard)UTF-8CommaYYYY-MM-DD50,000100MB
Salesforce (Data Loader)UTF-8CommaYYYY-MM-DDMillions (Bulk API)No hard limit
Microsoft Dynamics 365UTF-8CommaYYYY-MM-DD~100,000 (per import job)~128MB
QuickBooksUTF-8CommaMM/DD/YYYY or YYYY-MM-DD~1,000~10MB
monday.comUTF-8CommaYYYY-MM-DD8,00010MB
Notion FreeUTF-8CommaYYYY-MM-DD~50K5MB
PostgreSQL COPYUTF-8Comma (configurable)YYYY-MM-DDServer limitsServer limits
Google SheetsUTF-8Comma (or custom)YYYY-MM-DD safest10M cells100MB

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:

Standards:

Related SplitForge Guides:

FAQ

Encoding (Check 1) and the test import (Check 10) cause the most avoidable failures. Encoding errors corrupt all text data silently. Skipping the test import means you discover mapping problems on your full dataset instead of on 5 rows. If you only do two checks, do those two.

For one-time migrations: yes, run all 10. For recurring imports from the same source: after the first successful import, you can reduce to checks 1, 4, 5, 8, and 10. If the source format never changes, checks 2 and 3 are stable.

Your platform may accept MM/DD/YYYY today on a US account, but 05/03/2026 is ambiguous — it's May 3 in the US and March 5 in Europe. If your team has international members, if the platform changes locale handling, or if you send this data to another platform later, MM/DD/YYYY will cause wrong dates. YYYY-MM-DD has no ambiguity. Using it is a one-time habit change that prevents recurring date problems.

In Excel: Ctrl+G → Special → Blanks → OK highlights all blank cells. Or use COUNTA() on the row: any row returning 0 is empty. For large files, SplitForge Data Validator finds all empty rows and empty required fields across millions of rows in seconds.

Yes. "Handles UTF-8" means it reads UTF-8 correctly — it doesn't mean it detects non-UTF-8 files and converts them. If your file is Windows-1252 and the platform reads it as UTF-8, you still get garbled characters. The platform handles what you give it — you need to give it UTF-8.

Run your file through SplitForge Data Validator. It runs checks 1–6 automatically: encoding, delimiter, headers, date format consistency, empty required fields, and empty rows. Checks 7–10 take 5 minutes manually. The validator processes your file locally — no cloud upload, no data exposure.


Run the Full Checklist in One Step

Automated checks for encoding, delimiter, headers, dates, and empty fields
Identifies missing required values and empty rows across millions of rows in seconds
Files validate locally in your browser — never uploaded, never retained, never at risk
Download a clean, import-ready file without touching any cloud service

Continue Reading

More guides to help you work smarter with your data

ai-data-prep

AI-Ready Data Checklist: 10 Things to Verify Before Upload (2026)

Before uploading to ChatGPT, Claude, or a fine-tuning API, run through this 10-point checklist. UTF-8 encoding, clean headers, PII removed, size within limits.

Read More
ai-data-prep

Convert Excel to JSON for AI APIs and LLM Pipelines (2026)

AI APIs and LLM pipelines expect JSON, not spreadsheets. Fine-tuning needs JSONL; direct prompts take arrays. Convert locally — no upload, no conversion server.

Read More
ai-data-prep

Prepare Data for AI: The Complete Guide (Privacy-First, 2026)

How to prepare a CSV or Excel file for ChatGPT, Claude, or an AI API — encoding, PII, format, size, and privacy. The complete local-first prep workflow.

Read More