Migration guide
Migrate from Mailchimp to your own Amazon SES
Mailchimp charges you for the size of your audience, whether you email them or not. SendOps is a full email marketing platform — segments, broadcasts, drip workflows, analytics — that runs on your own Amazon SES, with flat plans and delivery at $0.10 per 1,000 emails. Here's the honest, step-by-step path over.
Before you start
What this migration actually involves
Leaving Mailchimp for your own SES is a bigger structural change than switching between two hosted providers: you take ownership of the sending infrastructure. That's the point — it's why the per-contact meter disappears — but it comes with two prerequisites worth naming up front. You need an AWS account with SES production access (SendOps automates the request, AWS approval takes a day or two), and you'll be sending from your own domain on a fresh SES path, so volume needs a warm-up ramp rather than a day-one blast.
In exchange, the math changes permanently. Mailchimp's pricing scales with your contact count; SendOps plans are flat and SES delivery is $0.10 per 1,000 emails. For the full side-by-side, see our Mailchimp comparison and how SendOps turns SES into a marketing platform.
Using Mandrill for transactional email? The same SES pipeline replaces it — transactional sends go through the SendOps API and your SES account alongside your marketing email, so you retire both Mailchimp subscriptions in one move.
Concept mapping
Where every Mailchimp concept lands
The model translates cleanly — nothing you rely on in Mailchimp lacks a home in SendOps.
| Mailchimp | SendOps | Notes |
|---|---|---|
| Audiences | Contacts | Export each audience as CSV and import, or push contacts via the API. One contact base — no more per-audience duplication. |
| Merge fields (*|FNAME|*) | Typed attributes | Merge fields become typed fields on each contact — strings, numbers, dates, booleans — usable in templates and segments. |
| Tags & segments | SendQL segments | Rewritten as SendQL queries over attributes, events, and activities — re-evaluated at send time, not frozen lists. |
| Campaigns | Broadcasts | One-off sends with consent filtering, test sends, and per-broadcast results. |
| Customer Journeys | SendFlow workflows | Rebuilt in a text DSL with a visual canvas — triggers, waits, branches, frequency caps. Not imported; see the honest note below. |
| Groups & subscription preferences | Topics & consent | Per-topic consent with branded unsubscribe pages, enforced automatically on every send. |
| Templates | React Email or Handlebars | Drag-and-drop templates don't port — they're rebuilt as React Email components or Handlebars, compiled to SES-native templates. |
The migration path
Seven honest steps — no magic importer
There is no one-click Mailchimp importer, from us or anyone. What there is: a CSV contact import, a clean concept mapping, and segment and workflow formats designed to be rebuilt fast. Contacts move in minutes; segments, journeys, and templates are rebuilds — honest ones, made quick by text-based formats a coding agent can draft.
- 1
Get an AWS account with SES production access
This is the prerequisite Mailchimp never asked of you. SendOps sends through your own Amazon SES, so you need an AWS account, a verified sending domain, and SES production access (new SES accounts start in a sandbox limited to verified recipients). SendOps automates the production access request, but AWS approval can take a day or two — start here. Our step-by-step SES setup guide covers the whole thing. Amazon SES setup guide .
- 2
Provision SendOps in your AWS account
Run the CloudFormation template. It takes about two minutes, provisions SendOps inside your AWS account, and picks up any existing SES configuration non-destructively. SendOps never holds your AWS keys — access works through STS and a scoped IAM role you control.
- 3
Export your audiences, import your contacts
In Mailchimp, export each audience as CSV — including unsubscribed and cleaned contacts, so consent history and suppressions carry over. Import the CSVs into SendOps or push contacts through the API. Merge fields map to typed attributes on each contact. How contacts and segments work .
- 4
Rebuild tags and segments in SendQL
Mailchimp tags and saved segments don't transfer automatically. Each one is rewritten as a SendQL segment — a query over contact attributes, events, and activities. Most Mailchimp segments are a handful of conditions and translate line for line; the ones built on engagement data can be rebuilt once SendOps starts collecting your send activity.
- 5
Rebuild Customer Journeys in SendFlow
Journeys are rebuilt, not imported — no tool we know of imports them, and we won't claim ours does. SendFlow workflows are defined in a text DSL with a visual canvas, which makes the rebuild mostly transcription: welcome series, abandoned-flow follow-ups, and re-engagement journeys each map step for step. A coding agent can draft the SendFlow definitions from your journey descriptions for you to review. SendFlow workflows .
- 6
Rebuild your templates
Mailchimp's drag-and-drop templates don't export to anything portable, so templates are rebuilt — either as React Email components (which SendOps compiles to SES-native Handlebars) or directly in Handlebars. Merge tags like *|FNAME|* become attribute references. Most teams use the move to consolidate years of near-duplicate campaign templates into a few well-structured ones.
- 7
Warm up, then cut over
You're moving from Mailchimp's shared sending infrastructure to your own domain on SES, so mailbox providers see a new sending path. Ramp volume gradually — start with your most engaged subscribers and grow sends over a couple of weeks while watching bounce and complaint rates in SendOps. Keep Mailchimp active for the tail of the ramp, then cancel it. SES deliverability guide .
The win
Why the rebuild is worth it
The migration takes real work — a weekend for most setups, longer for journey-heavy ones. What you get back is permanent:
-
No per-contact pricing: SendOps plans are flat — Free at $0 with unlimited volume and no contact limits, Team at $29/mo, Business at $149/mo. Your list growing stops being a billing event — and the leads you only email occasionally stop costing you every month in between.
-
Delivery at SES rates: $0.10 per 1,000 emails, billed by AWS. A 50,000-contact monthly newsletter costs about $5 in delivery.
-
Your data in your AWS account: SendOps is provisioned inside it via CloudFormation and never holds your AWS keys.
-
Real automation and analytics: SendQL segments, SendFlow drip workflows, deliverability analytics, a public API, and activity ingestion — not a downgrade to a bare sending API.
-
Consent handled properly: topics, per-topic consent, and branded unsubscribe pages, enforced on every send.
Common questions
Can I import my Mailchimp audience automatically?
Contacts, yes — export each audience as CSV from Mailchimp and import it into SendOps, or push contacts through the API. Merge fields become typed attributes on each contact. There is no one-click importer for segments, Customer Journeys, or templates, and we won't pretend otherwise: those are rebuilt, quickly, in SendQL, SendFlow, and the template editor.
Do I need my own AWS account first?
Yes. SendOps runs on your own Amazon SES, so you need an AWS account with SES production access before you can send to real recipients. If you don't have one, budget a day or two for AWS to approve production access — SendOps automates the request, and our SES setup guide walks through the whole process.
What happens to my Customer Journeys?
They're rebuilt in SendFlow, not imported. SendFlow workflows are defined in a text DSL with a visual canvas, so the rebuild is mostly transcription: each journey step maps to a workflow step. A coding agent can draft the SendFlow definitions from your journey descriptions for you to review on the canvas.
Will my deliverability change after leaving Mailchimp?
You'll be sending from your own domain through SES instead of Mailchimp's shared infrastructure, so mailbox providers see a new sending path. Your domain's reputation helps, but the SES side starts fresh — ramp volume gradually, starting with your most engaged subscribers, rather than blasting your full list on day one.
Stop paying for the size of your list
Set up SES, provision SendOps in your AWS account, and import your first audience today — the free plan has no contact limits, so you can rebuild at your own pace before you cancel anything.
Free plan available. Two-minute CloudFormation setup. Your contacts live in your AWS account.