How to Move from Mailchimp to Brevo: A Step-by-Step Migration Guide
If you're reading this, you're probably fed up with Mailchimp's pricing model. It's the #1 reason people jump ship — costs balloon as your list grows, even if you hardly email. Brevo (formerly Sendinblue) has become a popular destination because it charges by email volume, not contact count. That means you can have 50,000 contacts and still pay a flat fee as long as you stay within your send limit. Brevo's free plan lets you send up to 300 emails per day, and paid plans start at $25/month for 20,000 emails/month. No hidden costs for inactive subscribers.
This guide walks you through the entire migration process, from backing up your Mailchimp data to making sure Brevo is sending smoothly. We'll also link to our Mailchimp vs Brevo comparison and our full list of Mailchimp alternatives if you want to explore other options.
Step 1: Back Up Everything from Mailchimp
Before you touch anything, export all your data. Mailchimp makes this easy, but you have to do it piece by piece.
- Audience (contacts): Go to Audience → All Contacts → Export Audience. You'll get a CSV with names, emails, tags, and custom fields. Mailchimp won't export unsubscribed contacts by default — you need to run a separate export for them (they're still your data).
- Campaigns and templates: For each campaign, click the dropdown and select "Export". You'll get an HTML file. Do the same for your saved templates under Campaigns → Email Templates.
- Automations: Take screenshots of your automation flows. Mailchimp doesn't let you export automation logic as a file. You'll need to rebuild them manually in Brevo.
- Reports and analytics: Export open/click data from individual campaign reports if you need historical stats.
- Segments: Mailchimp doesn't export segment definitions. Write down the rules for each segment (e.g., "tags = VIP AND last opened > 30 days").
- Forms and landing pages: Copy the HTML of any embedded forms. For landing pages, save the page content — Brevo doesn't import landing pages directly.
Step 2: Prepare Your Brevo Account
Sign up for Brevo (it's free). Once you're in, do some housekeeping before importing.
- Verify your sender domain: Go to Senders & Domains → Add a Domain. You'll need to add a TXT record to your DNS to prove ownership. This step is mandatory if you want to send from your own domain.
- Set up authentication: Brevo uses SPF, DKIM, and DMARC. Follow their setup wizard — it's straightforward. This improves deliverability.
- Create custom attributes: In Brevo, custom attributes are like Mailchimp's custom fields. Create attributes for any data you had in Mailchimp that you want to keep (e.g., "Birthday", "Company Name"). Match the field names exactly to avoid mapping issues later.
- Organize your lists: Brevo uses "lists" similar to Mailchimp. Create new lists for each of your Mailchimp audiences or segments. You can also use tags and attributes for filtering.
Step 3: Import Your Contacts into Brevo
Brevo offers multiple import methods. The easiest is CSV.
- Go to Contacts → Import → Import via CSV.
- Upload the CSV you exported from Mailchimp.
- Map the columns: Brevo will auto-detect standard fields (email, first name, last name). Match your custom fields to the attributes you created.
- Choose what happens to existing contacts: You can update them or skip duplicates. I recommend "Update existing contacts" to keep your data fresh.
- Import unsubscribed contacts into a separate list or mark them as "Blacklisted" in Brevo. This ensures you don't accidentally email people who opted out.
Gotcha: Mailchimp exports contacts with a status column (subscribed, unsubscribed, cleaned). Brevo's import doesn't automatically honor that. You'll need to filter your CSV before importing — keep only "subscribed" contacts for your main list. Or import all and then manually blacklist the others.
Step 4: Rebuild Your Segments and Tags
Brevo doesn't have a direct segment import. You have to recreate them manually.
- Tags: Mailchimp tags become a column in your CSV. Brevo imports tags as a multi-value field. Make sure your CSV has a "Tags" column with comma-separated values.
- Segments: Go to Contacts → Segments → Create a Segment. Set conditions based on attributes, tags, or list membership. For example, if you had a segment of "VIP customers who opened last 30 days", create a segment with conditions: "Tags contain VIP" AND "Last open date is in the last 30 days".
- Note: Brevo's segment builder is powerful but different. You may need to adjust some logic. Test your segments with a small sample before sending.
Step 5: Migrate Your Templates and Campaigns
Brevo has a drag-and-drop editor, but you can also paste HTML.
- Templates: Go to Campaigns → Templates → Create Template → Import HTML. Paste the HTML you exported from Mailchimp. You'll likely need to tweak the design — Brevo's editor may not render Mailchimp's template code perfectly. Check for broken images or missing merge tags.
- Campaigns: For each past campaign, you can either reuse the template or create a new one. If you need to resend a campaign, recreate it in Brevo with the same content and targeting.
Gotcha: Mailchimp uses its own merge tags like *|FNAME|*. Brevo uses {{contact.FIRSTNAME}}. You'll need to replace all merge tags in your HTML. Use find-and-replace in a text editor before importing.
Step 6: Rebuild Automations
This is the most time-consuming part. Mailchimp's automation builder is visual, but Brevo's is different. You can't export automation logic.
- Take screenshots of each automation flow in Mailchimp (trigger, conditions, actions).
- In Brevo, go to Automation → Create a Workflow. Use triggers like "Contact added to list" or "Contact opens email".
- Map conditions: If you had conditional branches (e.g., "if tag = buyer, go to path A"), recreate them using Brevo's "Condition" node.
- Test thoroughly: Run a few contacts through the automation to verify it works. Brevo lets you test with fake contacts.
Common gotcha: Mailchimp allows time delays like "Wait 3 days after open". Brevo has similar delays, but the exact syntax may differ. Double-check your timing.
Step 7: Point Your Forms and Landing Pages to Brevo
Once your contacts and templates are in Brevo, update your signup forms.
- Embedded forms: Go to Contacts → Forms → Create a Form. Customize the fields and embed the code on your website. Replace the old Mailchimp form code.
- Landing pages: Brevo has a landing page builder. Recreate your pages from scratch or use the HTML from Mailchimp. You can't import them directly.
- API integrations: If you use Zapier, Shopify, or other tools, update the API keys to point to Brevo. Brevo's API is well-documented.
Step 8: Test and Verify
Before you cut over completely, run tests.
- Send a test campaign to a small segment. Check links, images, and personalization.
- Check deliverability: Use a tool like Mail-Tester to see if your emails land in spam. If they do, check your SPF/DKIM setup.
- Verify form submissions: Submit a test entry on your website form and confirm it appears in Brevo's contacts.
- Monitor bounces: Brevo will automatically handle hard bounces. Check your bounce report after the first send.
Step 9: Cancel Mailchimp
Once you're confident everything works, cancel your Mailchimp account. But don't delete it immediately — keep it for a month in case you need to reference old campaigns or data.
- Downgrade to Free if you want to keep the account alive without paying.
- Export any remaining data like campaign reports.
- Notify your team of the switch.
Post-Migration Checklist
- All contacts imported and deduplicated
- Unsubscribed contacts marked as blacklisted
- Segments recreated and tested
- Templates migrated and merge tags replaced
- Automation workflows rebuilt and tested
- Forms updated on website
- Landing pages recreated
- Integrations reconnected (API keys, webhooks)
- Test campaign sent and verified
- SPF/DKIM/DMARC confirmed
- Mailchimp account downgraded or cancelled
Common Gotchas
- Merge tags: Forgetting to replace
*|FNAME|*with{{contact.FIRSTNAME}}will break your emails. - Unsubscribes: Importing unsubscribed contacts into your main list can get you flagged. Always separate them.
- Automation timing: Mailchimp and Brevo handle delays differently. Test your sequences.
- Custom fields: If you don't create matching attributes in Brevo, custom data will be lost.
- Image hosting: Mailchimp hosts images on their CDN. If you export campaigns, images may break. Re-upload them to Brevo's library.
FAQ
Q: How long does the migration take? A: It depends on your list size and automation complexity. For a small list (<5,000 contacts) with no automations, you can do it in a few hours. For a large list with complex flows, budget a couple of days.
Q: Will I lose my email history? A: Yes, you won't have campaign history in Brevo. Export reports from Mailchimp if you need them.
Q: Can I keep my Mailchimp account while testing Brevo? A: Absolutely. Run both in parallel for a week. Just don't send duplicate campaigns to the same contacts.
Q: Does Brevo offer migration support? A: Brevo has a knowledge base and support team, but they don't do manual migrations. You'll need to follow this guide.
Q: What if I have a very large list (100k+)? A: Brevo's free plan limits you to 300 emails/day. You'll need a paid plan starting at $25/month for 20k emails. For large lists, consider MailerLite or ActiveCampaign — but Brevo's contact-unlimited pricing still wins.
For more details, check our Mailchimp vs Brevo comparison and the full list of Mailchimp alternatives.