Guide - Mailchimp email-contact import - 16 minute read

Import contacts to Mailchimp with CSV, safely.

An audience file is a marketing-data mutation plan. Protect consent, email identity, field formats, and existing contact data before expanding beyond a controlled test.

Step 1

Choose one email-contact status and confirm permission

Mailchimp's official contact-import guide separates email contacts from SMS contacts and asks for one email-marketing status per import: Subscribed, Unsubscribed, or Non-subscribed. Keep those cohorts in separate files so one operator decision applies to every row.

Imported Subscribed contacts do not pass through the signup process. You must already have permission to send them marketing email. A checkbox in a local preflight can document that someone reviewed the batch; it cannot prove consent, its scope, its age, or whether local law and your policies allow the campaign.

This workflow covers file-based email contacts only. It does not validate SMS phone consent, connected integrations, signup forms, plan pricing, billing, or deliverability. If those are the real job, use the relevant Mailchimp flow rather than forcing its rules into an email CSV.

Step 2

Produce the upload format Mailchimp actually accepts

Mailchimp's upload flow accepts comma-separated CSV or tab-delimited TXT. It does not accept .xls or .xlsx as the uploaded file. If your source is Excel, choose the intended sheet and export it as CSV; the local validator can perform that conversion without uploading the workbook.

Some regional spreadsheet settings write semicolon-delimited files while still using a CSV extension. Mailchimp calls that out as a source of import trouble. Export with commas or tabs instead of running a blind find-and-replace that could alter a semicolon inside an address, note, tag, or custom field.

Mailchimp says files above 200 MB, or about one million contacts, may cause errors and recommends splitting large files. Treat that wording as conservative operational guidance, not a promise that every smaller file succeeds. Use UTF-8, retain the original, and keep each batch small enough to review after import.

Step 3

Keep one header row and map every destination deliberately

Put one unique, nonblank header in the first row, one contact on each later row, and one field in each column. Remove report titles, totals, repeated headings, merged cells, and decorative notes above the table. Column order is flexible because mapping, not position, controls the destination.

The private Mailchimp contact CSV validator safely corrects only case or surrounding whitespace around an exact known label such as Email Address or First Name. Unknown labels remain unchanged and require an audience-field decision. That prevents a business-specific field from being guessed into the wrong destination.

Match every useful column in Mailchimp and explicitly skip the rest. Unmatched columns are not imported. Existing custom audience fields, required settings, group categories, and marketing-permission labels live in the account; a browser without a login can preserve the source header but cannot prove its destination exists.

Step 4

Treat Email Address as the identity contract

For email contacts, Email Address is the required field and each contact gets one address. Remove whitespace, missing domain parts, and unsupported characters before the @ sign. Mailchimp supports international characters after the @ but says it cannot process UTF-8 characters in the email prefix.

Resolve duplicate email rows before import. With Auto-Update, Mailchimp can add the first occurrence and apply later rows to that profile, making file order part of the result. The validator blocks duplicates deliberately so you decide which row is authoritative rather than accepting an accidental last-write sequence.

Portal history adds information a local file does not contain. Mailchimp excludes addresses already recorded as duplicates, bounces, or unsubscribes in the selected audience, and separate audiences cannot see each other's state. A locally unique file therefore does not prove every address will be added.

Step 5

Format each audience field by its real type

Mailchimp's format guidelines cap Text fields at 255 bytes and say longer values are clipped. Byte length matters for emoji and many non-Latin characters. Use Number for plain numeric or currency amounts, not phone numbers, identifiers, postal codes, or formatted amounts.

Use YYYY-MM-DD or MM-DD-YYYY for Date fields. Birthday is month/day without a year: MM/DD or DD-MM. Website and Image fields need a full URL. A five-digit Zip Code field is US-specific; use a Text field for international postal codes.

Phone behavior depends on the audience field's configured format. Do not apply the E.164 SMS-contact rule to an ordinary email-contact Phone column unless that is genuinely the field contract. The preflight therefore labels Phone as a portal review rather than pretending one global shape fits every audience.

Step 6

Review addresses, tags, groups, and permissions separately

For a combined mailing Address, Mailchimp asks for the complete address, two spaces between parts, no commas, fewer than 45 characters per part, and a two-letter country code. Use GB, not UK. The address guide also explains mapping separate address columns during import.

Put tags in one Tags column and separate multiple tags with commas. Mailchimp limits each tag to 100 characters, does not import emoji in tags, and can create a new tag during import. Quote a tag that itself contains a comma so the nested list remains intelligible.

A group column is different: its header must match an existing group category, every group name must already exist, and multiple names use a comma plus a space. Marketing Permissions values must match the audience's configured GDPR-friendly options. Both require account review; neither can be invented safely from sample contact values.

Step 7

Make update erasure visible before touching existing contacts

Mailchimp's update-existing flow replaces mapped audience-field information. Its documentation warns that blank fields overwrite and erase existing contact data. Audit blank cells across every mapped non-email column and decide whether each blank is intentional before enabling Update existing contacts.

The validator counts mapped blank update cells and requires a separate acknowledgment before it releases contact-data output. That is a review gate, not an automatic repair. Filling blanks with guessed defaults would be worse, while dropping a row could hide a contact that genuinely needs another field updated.

Only subscribed or non-subscribed email contacts can be updated with this method, and importing updates does not change an existing contact's marketing status. Back up the audience and do not assume that choosing a status for the batch will resubscribe, unsubscribe, or otherwise repair stored status.

Step 8

Preflight the whole file, then import a controlled test

Run the complete source through the validator and resolve every blocker. Read warnings and portal reviews rather than treating Ready as a guarantee. The normalized CSV changes approved headers, delimiter/quoting, UTF-8 serialization, and LF endings only; it preserves row order, blanks, and every contact cell string.

Download the first-100-row test file, inspect it in a text editor, and reduce it further when contacts are sensitive or automations are consequential. Keep the source, normalized file, aggregate report, and a fresh audience export together so the operator can compare intended and actual changes.

In Mailchimp, confirm the audience, add/update choice, groups, batch tags, column mapping, and single marketing status. Pause at the final summary. A correct local file can still be unsafe if the wrong audience, group, tag, consent scope, custom field, or update option is selected.

Step 9

Inspect import results and fix the smallest understood cause

After the test completes, compare expected and imported counts and open representative profiles. Check email, names, address, birthday, tags, groups, marketing permissions, custom fields, existing-data preservation, status, and any automations. Do not scale based only on a successful job notification.

Mailchimp's troubleshooting guide covers syntax errors, duplicate handling, unsupported file types and delimiters, future OPTIN_TIME or CONFIRM_TIME values, and large-file failures. Import History exposes affected addresses for a limited period, so capture the error evidence promptly.

Mailchimp also provides an Undo Import action, but undo removes contacts added by that import and does not revert field data updated on contacts that already existed. Fix one understood rule, rebuild a smaller test, and repeat before expanding the batch.

Common questions
  • *

    Can I validate a Mailchimp contact CSV before importing it?

    Yes. This local preflight checks email-contact file shape, headers, one Email Address mapping, duplicate emails and rows, selected field formats, consent review, and update-blank risk. It cannot query an audience or guarantee acceptance.

  • *

    Does the validator upload or save my contacts?

    No. Parsing, mapping, findings, masked evidence, acknowledgments, normalization, and downloads remain in the current browser tab. Contact values are not sent to Mailchimp or csvtodashboard.

  • *

    Can I upload Excel directly to Mailchimp?

    No. Mailchimp's file import accepts CSV or tab-delimited TXT. This workspace can read an XLS or XLSX source locally, but its handoff is a normalized CSV rather than the workbook.

  • *

    Which field is required for email contacts?

    Exactly one Email Address field is required, with one email per contact. The preflight blocks missing, malformed, duplicate, and unsupported non-ASCII email local parts.

  • *

    Will blank fields erase existing Mailchimp contact data?

    Yes when Update existing contacts is enabled. Mailchimp says blank mapped fields overwrite and erase existing field data, so this workspace counts those cells and requires an explicit local review before export.

  • *

    Does importing update an existing contact's marketing status?

    No. Mailchimp says the update-existing import method does not change the marketing status already attached to an existing contact.

  • *

    What size guidance does the validator apply?

    It conservatively blocks a local handoff above 200 MB or one million data rows because Mailchimp says files above 200 MB, or about one million contacts, may cause import errors.

  • *

    Does a clean preflight prove consent or deliverability?

    No. Permission, bounces, suppressions, audience fields, groups, marketing permissions, charges, and existing contacts are portal state. Back up the audience, import a controlled test, and inspect the result.

Keep going