Skip to main content
About this page · Updated 2026-10-31 18:37 UTC

What this page is: Move a Mailchimp audience to Motorical without emailing anyone who opted out. Which export files to use, what to do first, and which route fits your file.

How far to trust this page: the build checked 1 names, paths, tools, scopes and error codes against the real product (0 do not match). Not yet reviewed claim by claim.

Updated 2026-10-31 18:37 UTCRecently updated pages

Migrating from Mailchimp

The same steps work for any previous email tool. The order matters: Motorical does not know who unsubscribed in your previous tool, so you tell it before you import.

1. Export from Mailchimp​

In Mailchimp: Audience → All contacts → Export audience → Export as CSV. Mailchimp emails you when the export is ready. The download is normally a ZIP with a separate CSV for each kind of contact (subscribed, unsubscribed, cleaned, and so on). Check the file names and the header row of your own export: they depend on your audience's fields.

Mailchimp fileWhat to do with it
SubscribedThe people you import as contacts (step 3).
UnsubscribedAdd to Motorical as suppressions first (step 2). Never import them as contacts.
Cleaned (bounced)Add as suppressions too: Mailchimp could not deliver to them.
Non-subscribed, or anyone who never agreed to your marketing emailDo not import them.

2. Tell Motorical who opted out​

Add the unsubscribed and cleaned addresses as suppressions before importing contacts. In the dashboard: Comm → Suppressions → Bulk Import (up to 1000 addresses at a time), or POST /comm-api/api/suppressions/bulk (see Suppressions). Use a reason label you will recognise, for example unsubscribed_in_mailchimp.

From then on a contact import reports these addresses as skipped_suppressed, and no campaign reaches them.

3. Prepare the subscribed file​

  • It needs a header row with an email column. These header names are recognised: email, e-mail, email address, mail. Mailchimp's Email Address works as it is.
  • A name is only imported from a column called name, full name or contact name. Mailchimp's First Name and Last Name are not recognised: add a name column (first and last name joined) if you want names, otherwise names stay blank. phone, company and type columns are recognised too; every other column is ignored.
  • A semicolon as the separator, a UTF-8 byte-order mark and a title row above the header are all handled.
  • A name or company value that looks like a spreadsheet formula (for example one that starts with =) makes the CSV route reject the whole file and name the rows. Fix or remove those rows and upload again. The JSON route rejects only the affected row.

4. Choose how to import​

Your fileUse
Up to 1001 contactsThe JSON route or, through an AI assistant, the comms_import_contacts tool. Dry run first, a result for every row.
More than that, or any file you hold as a CSVThe dashboard: Comm → Lists → the collapsed Import Contacts (CSV) card (on a computer). Choose the Target List, tick the consent box if it is true, and choose the file (up to 10 MB or 100,000 rows).
A file you upload from your own codeThe CSV route, with dryRun=true first. See Importing Contacts.

Give the list a clear description and a source such as Mailchimp export, subscribed only, <date>, so anyone can tell later where it came from.

Consent is your own statement that these people agreed to receive marketing email from you. Mailchimp's "subscribed" status is your evidence, not a substitute for your statement. Do not tick the box for people you cannot say this about. An AI assistant must ask you and never assumes the answer.

5. Check the result​

  • The import answer gives added (put on the list) and upserts (already on it), plus a sample of rows that failed.
  • Before sending a campaign, run the preflight: it shows how many people would receive it and how many were left out because they unsubscribed, bounced or are suppressed. A person who is on several selected lists counts once.
  • Templates are not migrated by a contact import. Build the first one with the templates rulebook.

With an AI assistant​

Connect the communications server (hosted MCP). The assistant asks who opted out in Mailchimp before importing, cleans up to 1001 rows itself, and sends anything bigger to you to upload in the dashboard. It never pastes a large list into chat.