From Mailchimp
A plain-English move from Mailchimp — exporting your audience, carrying your unsubscribes across, re-verifying your domain, and warming up.
The short version
Most people moving off Mailchimp are not moving code — they are moving a list. There are four things that matter, in this order: your contacts, your unsubscribes, your sending domain, and the pace of your first few sends. Nothing here needs a developer.
The one thing you cannot get wrong is the unsubscribe list. Everything else can be fixed after the fact.
Before you start
- Access to your Mailchimp account with permission to export the audience.
- Access to wherever your domain’s DNS lives — your registrar, or your web host, or whoever set up your site. If you do not know, that is the first phone call.
- An Outsend workspace. If you have not set one up, start at Quickstart and come back here.
Keep your Mailchimp account open and paid for a couple of weeks after you move. It is cheap insurance and it lets you compare the two side by side.
Step 1 — Export your audience from Mailchimp
In Mailchimp, open your audience, show all contacts, and use the export option on that table. Mailchimp emails you a zip file rather than downloading it straight away, so it can take a few minutes to arrive. (Mailchimp rearranges these menus from time to time — if the labels do not match, look for the export control above or beside the contacts table.)
Inside the zip you get several CSV files, split by the status Mailchimp has given each contact. The ones that matter:
| Mailchimp file | What it holds | What to do with it |
|---|---|---|
subscribed | People who have agreed to hear from you | Import as contacts |
unsubscribed | People who opted out | Import as suppressions — see Step 2 |
cleaned | Addresses Mailchimp stopped sending to after bounces | Import as suppressions |
non-subscribed | Addresses that only ever bought or enquired | Do not import unless you are certain you have consent |
Open the subscribed file and look at the columns before you import anything. You will
usually find Email Address, First Name, Last Name, and whatever merge fields you set
up over the years. Some of those will be empty for most rows, which is normal and fine.
Step 2 — Carry your unsubscribes across
Import the unsubscribed and cleaned files as suppressions before you send a single
message. This is the step people skip, and it is the one with consequences.
If you drop the unsubscribe list, you email people who already told you to stop. Those people do not quietly unsubscribe a second time — they report you as spam, and spam complaints are the fastest way to damage a sending reputation you have only just started building. In the UK and the EU it is also a legal problem, not only a deliverability one.
The cleaned list matters for a less obvious reason: those addresses are already known to
be dead. Mailing them again produces a fresh pile of bounces that make your first week
look far worse than your list actually is.
Suppression in Outsend is held per stream, so broadcast suppressions apply to your campaigns without affecting receipts and confirmations. More on that in Step 4.
Step 3 — Import your contacts
Import the subscribed CSV and map the columns across — the email column is the only one
that is required, and the rest is whatever you want to use in your sends. Then check two
numbers before going further:
- The contact count you ended up with, against the subscriber count Mailchimp showed you.
- The suppression count, against the size of the
unsubscribedandcleanedfiles.
If either is off by more than a handful, something did not import. Find out what before you send, not after.
This is also the moment to delete the rows you know are rubbish — the typo addresses, the
info@ catch-alls nobody reads, the contact from 2017 who has not opened anything since.
A smaller list that engages is worth more than a big one that does not.
Step 4 — Re-verify your sending domain
Your Mailchimp DNS records authenticate Mailchimp. They do not carry over, and they do not need to be removed while you run both — a domain can have records for more than one sender.
You publish three records: DKIM, SPF, and DMARC. The full explanation of what each one does is in Domains and DNS; the short version for a cutover:
- DKIM is a new record at its own name, so it sits alongside Mailchimp’s without conflict.
- SPF must be merged into your existing record, not added as a second one. Two SPF records on a domain is a misconfiguration and providers treat it as a failure. If Mailchimp’s send-as instructions already put an SPF record on your domain, add to that line rather than creating another.
- DMARC starts at
p=none, which asks for reports without changing how anything is handled.
DNS changes can take a few hours to show up. Press Verify until all three pass — the domain waits rather than failing, so there is nothing to undo if you are early.
While you are in there: decide whether your transactional mail moves too. Outsend runs receipts, booking confirmations, and invoices on a transactional stream with its own suppression list, separate from campaigns. A customer who unsubscribes from your monthly newsletter still gets their invoice. If Mailchimp was only ever your newsletter and your receipts come from somewhere else, you can leave that alone for now.
Step 5 — Warm up, do not blast
Your reputation on Outsend is scored per domain, so your history is genuinely yours rather than inherited from a shared pool. The flip side is that you are starting it from scratch, and a brand-new sender who mails thirty thousand people on day one looks exactly like a spammer to a receiving provider. The list being legitimate does not change how it looks.
So split the first few sends:
- Send to yourself and a few colleagues first. Check it in Gmail and Outlook, on a phone and on a desktop.
- Then your most engaged few hundred — recent openers, recent customers. These are the people most likely to open, and early opens are the signal providers are watching for.
- Then widen it over your next few sends rather than in one jump.
- Keep your normal sending rhythm. A sender who mails monthly and then goes quiet for a quarter has to start the warm-up conversation over again.
If your list is large enough that this feels like guesswork, send us your numbers and we will tell you what the ramp should look like. We would rather do that than watch you get throttled in week one.
Step 6 — What to check after the first send
Open the event log and look at four things:
- Bounces, and their reasons. Outsend keeps the receiving provider’s own response on every event, so a bounce reads as an actual sentence — the code, the reason, and the host that said it — rather than a category. A typo bounce and a reputation block look nothing alike once you can read them. See Events.
- Spam complaints. A handful is ordinary. A noticeable cluster usually means a chunk of the list did not expect to hear from you, and the right response is to send less, not more.
- Unsubscribes. These are not a failure, and suppressing them properly is the whole point. Check that the link worked and that the opt-out was recorded.
- Deferrals. A provider asking us to try later is normal in small numbers. A lot of them from one provider is a pace problem, which is a warm-up answer rather than a content one.
Then compare the whole picture against the last equivalent campaign you sent from Mailchimp. That comparison is the reason you kept the account open.
If you used the Marketing API or Mandrill
Most people reading this page do not need this section.
If you were calling Mailchimp’s Marketing API to manage lists, the equivalents live in the API reference — contacts and suppressions are managed over the same API, and sends take a flat JSON body rather than a campaign-plus-audience pair.
If you were sending transactional mail through Mandrill, you have a closer swap: point your mailer at our SMTP endpoint and change nothing else (SMTP), or move the send calls to the API. Mandrill’s event webhooks become Outsend webhooks, signed with an HMAC over the raw body — see Webhooks. Mailchimp’s merge tags are not Outsend’s template syntax, so any template you are carrying over needs its variables renamed.
For field mapping, the shape to aim at is from, to, subject, html, text,
replyTo, headers, and stream.
Want a second pair of eyes?
Send us the shape of your current setup — list size, how often you send, and what broke last time — and we will tell you what the move looks like before you start. Talk to us about switching from Mailchimp.