Skip to main content
A cutover, not a sync. Contacts, consent, templates, segments, and automations move once, then nothing stays connected to Mailchimp. The rule behind every step below: only one platform sends live email to a given contact at a time. This guide assumes your Brew brand and sending domain are already set up. If not, verify your domain first. DNS can take up to 72 hours.
Looking to go the other way, designing in Brew and sending from Mailchimp? See the Mailchimp integration instead.
Not ready to commit? Leave your Mailchimp automations running and route one new one-off email through Brew instead. Steps 1 to 5 cover contacts and a template, which is all you need for a single test send.

Concepts

1. Export Contacts From Mailchimp

Every marketing recipient must have opted in to hear from you. Importing or syncing contact data into Brew is not permission to email it. See What You Can Send.
Audience → pick the audience → Export audienceExport CSV. For a saved segment, tag, or group, open its dropdown → Export segmentExport CSV. Mailchimp splits the export into four files by status. Treat each differently: Non-subscribed is the one people miss. It’s Mailchimp’s term for contacts you have a relationship with, mostly customers, who never opted into marketing email. They aren’t the same as unsubscribed contacts, they just never consented in the first place. Importing them as subscribed means sending marketing mail to people who never agreed to receive it. Treat them with the same caution as unsubscribed contacts and leave them out of your marketing audience. Bring them in explicitly unsubscribed only if you need the contact record for another reason. A paying customer you’ll later send transactional email to is a good example. Cleaned contacts are addresses Mailchimp already flagged permanently undeliverable. They’ve done the suppression work, so there’s nothing to bring over. Mailchimp doesn’t export engagement history (opens, clicks). Pull that from a campaign report if you need it. Either way, Brew’s engagement-based audiences start counting from your import date.

2. Map Your CSV

Notes:
  • Empty cells don’t overwrite existing data on update imports
  • Duplicate rows: the last one wins, so dedupe first
  • These names are reserved and can’t be used for custom properties: email, first_name, last_name, subscribed, created_at, updated_at, validation_status, last_validated_at, import_id
  • Save as UTF-8. Garbled characters at the mapping step usually mean it wasn’t
Full import behavior lives in Add Contacts. Personalization. *|FNAME|* becomes a Brew merge tag, {{ firstName | there }}. The property name is case-sensitive, and the fallback after the pipe shows for contacts with nothing on file. See contact properties for the full list.

3. Import Into Brew

Audience → Add contacts → CSV Upload. Map columns, review, then import. Tick the validation checkbox first if the list hasn’t been checked recently. It costs 2 credits per address, which is worth it before warming up a new domain. Upload each file from Step 1 separately. That keeps Subscribed set correctly per batch instead of forcing one merged file to carry every status.

4. Rebuild Segmentation

Audiences are dynamic filters over contact properties, email engagement, and subscription status, not fixed lists. Describe one in plain English or build the filters by hand. Mailchimp groups don’t have a direct equivalent. Brew has one subscription state per contact, subscribed or unsubscribed. There are no opt-in categories and no subscriber-facing preference center. Marketing emails and automations respect that flag, and transactional sends bypass it. Rebuild each group as a custom property plus an Audience filtered on it. You keep the targeting, but membership is yours to manage. Contacts can’t pick categories for themselves, and unsubscribing opts them out of all marketing email rather than one category. If your Mailchimp groups carried real consent distinctions, decide how to honor them before your first send. Before cutover, spot-check that a recreated Audience’s membership count is in the right ballpark against the original segment. A wrong translation can undercount or overcount who gets an email, and that isn’t always visible in the UI.

5. Rebuild Templates

Open Emails in the sidebar, then use the Import tools on the right side of the canvas. See Importing existing designs. For most templates, use the HTML or screenshot as reference. Prompt Brew to rebuild it against your brand rather than treating the import as finished. It’s faster, and the result inherits your brand identity automatically. Running a long parallel test instead of a fast cutover? You can design in Brew and still send from Mailchimp. Click Send in the top right, choose Export template, and pick Mailchimp (keep GIFs under 2MB). That pushes the finished email through the Mailchimp integration and keeps a new visual direction consistent on both platforms while you migrate.

6. Rebuild Automations

Test-fire before publishing. Leave every rebuilt automation unpublished until cutover day, which is what prevents a double-send. Build an Automation covers the trigger setup and the test step.

7. Cut Over

  1. Warm up your sending domain first. No history means no reputation, even on a verified domain. Start with your most engaged contacts and ramp over several days. Gradual send does the ramping for you, so you don’t need a dedicated warmup campaign. Ask Brew in chat to preview inbox rendering before that first send.
  2. Do the rest of the rebuild, contacts, templates, and automations, while Mailchimp keeps sending normally. None of it touches live sending.
  3. Keep every Brew automation unpublished until cutover day.
  4. On cutover day, in order: pause Mailchimp’s automations and scheduled campaigns, publish the matching Brew automations, then point signup forms and app events at Brew.
  5. Re-export and re-import contacts if meaningful time passed since Step 1.
  6. Keep Mailchimp active but silent for a week or two as a safety net, then downgrade or cancel.
Never run both live at once “just in case”. That’s exactly what causes a double-send.

Quick Reference

Need Help?

Our team is ready to support you at every step of your journey with Brew. Choose the option that works best for you:

Search Documentation

Type in the “Ask any question” search bar at the top left to instantly find relevant documentation pages.

ChatGPT/Claude Integration

Click “Open in ChatGPT” at the top right of any page to explore it further with ChatGPT or Claude.