Switching from Mailchimp to Customer.io can feel like moving apartments: you want everything to end up in the right place, and you don’t want any surprises when you flick the lights back on. This guide is for marketers, ops folks, or anyone tasked with making the leap. You’ll get the steps (and the “gotchas”) without the usual fluff.
Why Move from Mailchimp to Customer.io?
Let’s be honest: Mailchimp works fine if you’re sending basic newsletters. But if you want smarter automations or more control over how your messages go out, you’ll quickly hit a wall. Customer.io is built for triggered messaging and event-driven workflows. If you’re tired of hacking around Mailchimp’s limitations, you’re in the right place.
Before You Start: Ground Rules
- Don’t rush. Migrations go sideways when you try to do everything in one afternoon.
- Do a test run. Move a small list first and check everything works.
- Keep a backup. Download all your Mailchimp data before you touch anything.
- Know your “must-haves.” Which automations and lists really matter? Don’t port over clutter.
Step 1: Audit What You Have in Mailchimp
Start by making a list. Open Mailchimp and write down:
- Lists/Audiences: What are you actually emailing? Some folks have a graveyard of old lists.
- Tags and Segments: Used for targeting? Or just dust collectors?
- Automations: Anything running (welcome emails, drip sequences, etc.)? List them out.
- Signup Forms and Integrations: Are you collecting leads from your website, or using API zaps?
Pro Tip: Take screenshots of your automations and list settings. It’s faster than toggling back and forth later.
Step 2: Export Your Data from Mailchimp
Don’t trust Mailchimp to keep your stuff safe. Here’s what you should export:
- Audience(s): Go to Audience > All contacts, then use “Export Audience.”
- Tags/Segments: Export lists with tags/segments included. Sometimes you’ll need to do this separately.
- Templates: Download any templates you want to reuse. Mailchimp only gives you HTML, so plan to rebuild layouts anyway.
- Reports: If you care about historic campaign data, export that now.
Mailchimp’s exports are all CSV files. Open them up and spot-check: are your emails, names, and tags intact? If you see weird characters or missing columns, fix them before moving on.
Step 3: Set Up Your Customer.io Account
Sign up and poke around Customer.io to get a feel for the interface. You’ll need to:
- Create a Workspace: This is your main account “container.”
- Add Team Members: If you’ve got others helping, invite them now.
- Warm Up Your Sending Domain: Set up DKIM/SPF as Customer.io recommends. (If this sounds like alphabet soup, Customer.io’s docs walk you through it. Don’t skip it — it affects deliverability.)
- Import a Test List: Use a small CSV with a few test emails to get comfortable with the import process.
Heads up: Customer.io is built around the idea of “people” and “attributes.” If you’re used to Mailchimp’s lists, think of attributes as columns in your spreadsheet — like “first_name,” “signup_source,” and so on.
Step 4: Clean and Prep Your Data
Customer.io is less forgiving about messy data than Mailchimp. Take this seriously:
- Standardize Columns: Make sure your headers are simple (e.g., “email,” not “Email Address”).
- Remove Duplicates: No sense importing the same person twice.
- Fix Formatting Issues: Watch out for trailing spaces, weird capitalization, or special characters.
- Map Tags/Segments: In Customer.io, you’ll use attributes or manual segments. Decide how you want to handle tags before you import.
If you skip this, you’ll end up with a messy contact base that’s hard to use. Spend the extra 30 minutes to get it right.
Step 5: Import Contacts into Customer.io
- Go to “People” and click “Add People.”
- Choose your CSV file.
- Map columns from your file to Customer.io attributes.
- If you want to create segments, use filters based on those attributes after import.
Import a small batch first. Make sure attributes look correct and segments work as expected. If you mess up, you can delete and try again — but better to catch issues early.
Ignore: Mailchimp’s “unsubscribe” status doesn’t always map 1:1. Customer.io needs you to import suppression lists separately (see below).
Step 6: Import Suppression/Unsubscribed Lists
One thing Mailchimp hides: your unsubscribes and suppressions. You absolutely do not want to email these people by accident.
- Export your “unsubscribed” and “cleaned” contacts from Mailchimp’s Audience dashboard.
- In Customer.io, go to “Suppressions” and upload those emails.
- Double-check the counts match.
If you miss this, you’ll get spam complaints, and your deliverability will tank. Don’t skip it.
Step 7: Rebuild Automations and Workflows
This is where most people get stuck. Customer.io handles automations differently:
- Campaigns: Think of these as flows triggered by user actions.
- Broadcasts: One-off emails to segments.
- Transactional Emails: Triggered by API events.
Take your list from Step 1 and rebuild each automation in Customer.io. You’ll need to:
- Create new triggers (attribute change, event, etc.)
- Recreate message content (paste in your templates, tweak for Customer.io’s editor)
- Set up delays, branching, and goals as needed
Pro Tip: Test everything on yourself first. Trigger automations with your own test account and make sure you get the right emails.
What to ignore: Don’t try to replicate every Mailchimp automation exactly. Some may not make sense in Customer.io, or might be better handled with a new approach.
Step 8: Update Signup Forms and Integrations
If you’re using web forms, popups, or integrations (like Shopify, Zapier, or webhooks), you’ll need to:
- Swap Mailchimp forms for Customer.io forms, or connect via API.
- Update any website forms to post leads to Customer.io instead of Mailchimp.
- Reconnect apps or zaps that send data to your old Mailchimp lists.
This part can get technical. If you’re not comfortable with code, Customer.io has docs and support — but expect to spend some time getting things wired up.
Step 9: Warm Up Your Sending
If you have a big list, don’t blast everyone at once from your new Customer.io account. ISPs hate sudden volume spikes:
- Start by emailing your most engaged contacts first.
- Gradually increase volume over a couple of weeks.
- Watch deliverability reports closely (bounces, opens, spam complaints).
If you skip this, your emails might land in spam folders. Not fun.
Step 10: Double-Check Everything Before Turning Off Mailchimp
- Spot-check: Are all contacts, tags, and segments in Customer.io?
- Are automations firing as expected?
- Are unsubscribes being respected?
- Did you update all forms and integrations?
Keep Mailchimp running for a week or two as a backup, just in case.
Honest Takes: What Works (and What’s Overhyped)
- Customer.io gives you more power, but the learning curve is real. Plan for a couple of days to really get comfortable.
- Automations are more flexible — but you can also overcomplicate things fast. Simpler is better.
- Don’t expect your old templates to “just work.” You’ll probably need to rebuild layouts.
- Ignore “lift and shift” promises. Every migration has surprises. That’s normal.
Wrapping Up: Keep It Simple, Iterate Later
You don’t need to move every single thing on day one. Get your core lists, basic automations, and signup flows working first. Once you trust Customer.io, you can layer on more advanced stuff.
Migrations are always a hassle, but keeping things simple — and testing as you go — saves you pain down the line. Don’t fall for “just import and go” promises. Take your time, double-check, and you’ll end up with a system that actually works for you.