CSV import
Bring in a list from anywhere. Mimeo takes any CSV with a header row — there's no required column order and no required template, because you do the mapping.
Mapping columns
After you upload, Mimeo shows every column in your file and asks what each one is. Your choices per column:
| Map to | Behavior |
|---|---|
| A core field | Email, first name, or last name. Email is the match key — it's lowercased, and an existing person with that address is updated rather than duplicated. |
| A custom field | Any field you've declared under Settings → Fields. If the field doesn't exist yet, you can create it right here during mapping instead of backing out to Settings first. |
| Tags |
The cell's value becomes one or more tags. Multi-value cells are
split on |, ,, and ;, so
customer, pro; beta becomes three tags.
|
| Unsubscribed | Marks the person as suppressed. A truthy value works, and so does a timestamp — if you give a timestamp, it's preserved as the unsubscribe date rather than being reset to today. |
| Skip | Ignore this column entirely. |
Import posture: fill or overwrite
For people who already exist, you choose how the incoming data is applied:
- Fill blank fields only — existing values are left alone; the import only writes where Mimeo currently has nothing. This is the safe default for merging a supplementary list.
- Overwrite — incoming values replace what's there. Use this when the CSV is the authority, like a fresh export from the system that owns that data.
The posture applies to field values. Tags are additive either way — an import never strips tags a person already has.
Static tags
Separate from any tag column, you can apply a set of tags to
every row in the import. This is how you keep provenance:
tagging an import from-mailchimp-2026-07 means you can
always find, filter, and if necessary undo that batch later.
Importing as already unsubscribed
There's a single switch that marks the entire import as already-unsubscribed, regardless of any column mapping.
This is the one to reach for when migrating off another platform. Export your old tool's suppression list, import it with this on, and those addresses arrive in Mimeo already opted out. Do this before importing your active list, and nobody who unsubscribed from your old tool gets mail from your new one.
Preview before you commit
Mimeo shows you a preview of how your mapping resolves against real rows from your file before anything is written. Check that names landed in name columns, that your tag delimiter split the way you expected, and that the unsubscribe column was read correctly. Then commit.
The import report
After the import runs you get a report with:
- Created — new people added.
- Updated — existing people matched by email and modified.
- Skipped — rows that matched but changed nothing, given your posture.
- Row errors — the specific rows that failed and why, most commonly a missing or malformed email address.
Row errors are per-row, not fatal: a handful of bad addresses doesn't stop the rest of the file from importing. Fix those rows in a small follow-up CSV rather than re-running the whole thing.