
You export 8,000 subscribers from your old platform. You upload the CSV to your new ESP. The import runs. You check the dashboard: 7,847 contacts created, 153 errors.
You open the error log. Every single failed row has a name field with a comma in it—business titles like “Smith, CPA” or “Jones, LLC” or people who entered their name last-name-first.
CSV stands for comma-separated values. The format uses commas as delimiters. When your data contains commas, parsers get confused unless you handle it correctly. Most ESP import tools don’t tell you this up front, and most export tools don’t encode properly by default.
Why commas break imports
A typical CSV row looks like this:
[email protected],John Smith,2026-09-15
Three fields: email, name, signup date. The parser splits on commas and assigns each chunk to a column.
Now add a comma inside the name field:
[email protected],Smith, John,2026-09-15
The parser sees four fields. It tries to map “Smith” to the name column and “John” to the date column. Type mismatch. Row rejected.
The CSV spec solves this with double-quotes. Wrap any field containing a comma (or a line break, or another double-quote) in quotes:
[email protected],"Smith, John",2026-09-15
Now the parser treats everything between the quotes as a single field. Most ESPs support this—but only if the quotes are there.
How to fix your export before import
If you’re exporting from a platform that gives you a raw CSV download, open the file in a spreadsheet app (Excel, Google Sheets, LibreOffice Calc) before uploading it to your new ESP.
Look at the name column. If any cells contain commas, the export should have wrapped them in quotes automatically. If it didn’t, you need to re-save the file with proper encoding.
In Excel or Google Sheets: File → Download → CSV or Save As → CSV (UTF-8). Both will auto-quote fields with commas. Do not hand-edit the raw CSV in a text editor unless you know exactly what you’re doing—it’s easy to miss a trailing quote or escape character.
In Google Sheets specifically, use File → Download → Comma Separated Values (.csv). The “Tab Separated Values” option won’t help you here, and the “Microsoft Excel” export creates an .xlsx file, not a CSV.
When your ESP’s importer still chokes
Some older or budget-tier ESPs don’t fully implement CSV quoting rules. If you’ve properly quoted your fields and rows still fail, try these fallbacks:
- Strip commas from the name field entirely. Replace “Smith, CPA” with “Smith CPA” or “Smith (CPA)”. You lose formatting, but you gain a clean import.
- Use a pipe or semicolon delimiter instead. A few platforms (MailerLite and Brevo both support this) let you upload with a different separator. Export your spreadsheet as tab-separated or pipe-separated, then select the matching delimiter in the import wizard.
- Split the import into batches. Filter out rows with commas in names, import the clean batch first, then manually add the problematic subscribers via the ESP’s web form or API. Tedious, but it works when automation fails.
One non-obvious fix: use the API instead
If you’re moving more than 10,000 subscribers or you’re doing this migration as a service for clients, skip the CSV upload UI entirely. Most ESPs offer a bulk-import API endpoint that accepts JSON. JSON doesn’t have delimiter ambiguity—commas inside strings are fine, and the structure is unambiguous.
You’ll need a script (Python + the requests library works well), but you can process your CSV locally, validate each row, and POST clean JSON payloads in batches of 500–1,000 at a time. Beehiiv, Brevo, and MailerLite all document their import APIs with sample code.
The API route also gives you real-time error handling. If a row fails, you get an immediate error response with the reason. No waiting 20 minutes for a bulk upload to finish, then digging through a generic error file.
For a one-time migration, the CSV upload UI is faster. For repeat migrations, agency work, or large lists, invest two hours in learning the API. It pays off quickly.
Got a migration coming up? Reply and tell us which platforms you’re moving between—we’ll cover the specific export quirks in a future issue. And if you found this useful, forward it to anyone still wrestling with CSV uploads.
Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.
