Migration guide
Migrate from Sendy: keep your SES, lose the server
Sendy already sends through your own Amazon SES account — which makes this the easiest migration on this site. SendOps connects to the same SES account, same domains, same reputation: zero delivery migration. What changes is everything around it — no PHP server to maintain, plus real automation, segmentation, and analytics.
Why it's easy
The delivery layer doesn't move — because it's already yours
Every other migration guide on this site has a section about re-verifying domains or warming up a new sending path. This one doesn't need it. You chose Sendy because you wanted SES's delivery prices on your own infrastructure — SendOps keeps exactly that arrangement. It's provisioned into the same AWS account via CloudFormation (STS-only, no stored keys), imports your existing SES configuration non-destructively, and sends through the domains and reputation you've already built. Both tools can send side by side during the switch.
What you're actually migrating is the application layer: lists, autoresponders, templates — and the PHP server they live on. That server is the real cost of Sendy: hosting, patching, MySQL backups, cron jobs, and being your own on-call. For the feature-level side-by-side, see the Sendy comparison and how SendOps turns SES into a marketing platform.
Concept mapping
Where every Sendy concept lands
Everything has a home — and the last row is the one you'll enjoy most.
| Sendy | SendOps | Notes |
|---|---|---|
| Brands & lists | Contacts + SendQL segments | Export each list as CSV and import. List membership becomes an attribute you can segment on — one contact base instead of siloed lists. |
| Custom fields | Typed attributes | Custom fields become typed fields on each contact — usable in templates, segments, and workflow conditions. |
| Segments | SendQL segments | Rewritten as SendQL queries over attributes, events, and activities — re-evaluated at send time. |
| Campaigns | Broadcasts | One-off sends with consent filtering, test sends, and per-broadcast results. |
| Autoresponders | SendFlow workflows | Rebuilt in a text DSL with a visual canvas — and considerably more capable: event triggers, branches, frequency caps. |
| Templates | React Email or Handlebars | Rebuilt as React Email components (compiled to SES-native Handlebars) or directly in Handlebars. Sendy's personalization tags become attribute references. |
| Bounce & complaint handling (SNS you wired up) | Provisioned automatically | The SNS topics and webhooks you configured by hand for Sendy are set up by CloudFormation and feed the deliverability analytics. |
| The PHP server + cron jobs | Nothing | There is no server. This row is the migration's headline. |
The migration path
Six honest steps — no magic importer
There's no one-click Sendy importer, from us or anyone. But because delivery doesn't move, this migration is short: export CSVs, rebuild a handful of autoresponders and templates, and turn off a server. Most Sendy setups finish in an afternoon.
- 1
Connect SendOps to the same AWS account Sendy uses
Run the CloudFormation template in the AWS account Sendy has been sending from — about two minutes. SendOps imports your existing SES setup non-destructively: verified domains, configuration, reputation, all untouched and still available to Sendy while you migrate. SendOps never holds your AWS keys; access works through STS and a scoped IAM role you control. If you're reading this without SES set up yet, start with the SES setup guide. Amazon SES setup guide .
- 2
Export your lists from Sendy, import your contacts
Export each Sendy list as CSV — including unsubscribes, so consent history carries over — and import into SendOps, or push contacts through the API. Custom fields map to typed attributes; list membership becomes an attribute you can query. How contacts and segments work .
- 3
Rebuild segments in SendQL
Sendy segments are rewritten as SendQL queries. Sendy's segmentation is simple by design, so most segments are one or two conditions and translate in seconds — and SendQL can then go further than Sendy ever could, querying events and send activity as well as fields.
- 4
Rebuild autoresponders in SendFlow
Autoresponders are rebuilt, not imported. Sendy autoresponders are time-based drips — 'email 1 on signup, email 2 after 3 days' — which map to the simplest possible SendFlow workflows. The text DSL makes each one a few lines a coding agent can draft, and the visual canvas lets you verify the sequence before activating it. SendFlow workflows .
- 5
Port your templates
Rebuild templates as React Email components — which SendOps compiles to SES-native Handlebars — or directly in Handlebars if you prefer to paste and adapt your existing HTML. Sendy personalization tags become attribute references, and Sendy's unsubscribe link is replaced by SendOps topics and branded unsubscribe pages.
- 6
Run in parallel, then decommission the PHP server
Because both tools send through the same SES account, you can run them side by side with zero delivery risk — no warm-up, no DNS changes, no reputation reset. Send a broadcast or two from SendOps, confirm the autoresponder rebuilds behave, then switch off Sendy's cron jobs, snapshot the database, and terminate the server. That's the last PHP update you'll ever apply to your email stack.
The win
Everything you liked about Sendy, minus the parts you didn't
Sendy's appeal was always the economics: SES delivery prices instead of SaaS markups. SendOps keeps the economics and removes the operational tax:
-
Zero delivery migration: same SES account, same domains, same reputation. The riskiest part of most email migrations simply doesn't exist here.
-
No server to maintain: no EC2 or VPS bill, no PHP and MySQL patching, no cron jobs silently failing, no restoring Sendy from a backup at midnight.
-
Real automation: SendFlow workflows with event and segment triggers, branching, and frequency caps — against Sendy's time-based autoresponders.
-
Real analytics: deliverability, bounce, complaint, and engagement metrics per broadcast and workflow, fed by the SES event pipeline CloudFormation wires up for you.
-
A modern surface: SendQL segments, typed attributes, a public API with activity ingestion, topics and consent with branded unsubscribe pages — still at SES delivery prices, still on your own AWS account.
Common questions
Does my sending reputation change when I leave Sendy?
No — and this is what makes Sendy the easiest migration on this site. Sendy already sends through your own Amazon SES account, and SendOps sends through the same one. Same SES account, same verified domains, same reputation history. Recipients and mailbox providers never see a seam, and there's no warm-up to do.
Do I need to re-verify my domains?
No. Your domains are verified in SES, not in Sendy, and SendOps connects to that same SES account. The CloudFormation setup imports your existing SES configuration non-destructively — verified identities, configuration sets, everything stays as it is.
Can I import my Sendy autoresponders automatically?
No — there's no automated autoresponder importer, and we won't pretend otherwise. Autoresponders are rebuilt as SendFlow workflows, defined in a text DSL with a visual canvas. Most Sendy autoresponders are short time-based sequences, so the rebuild is minutes per sequence, and a coding agent can draft the definitions for you to review.
Sendy was a one-time $69 license — what does SendOps cost?
SendOps is Free at $0 with unlimited volume and no contact limits, Team at $29/mo, Business at $149/mo. SES delivery stays at $0.10 per 1,000 emails either way. The honest comparison includes what Sendy's license never covered: the server you host, patch, back up, and debug — most Sendy setups pay more than $0/month in hosting alone, before counting your time.
Your SES account is already set up. That was the hard part.
Connect SendOps to the AWS account Sendy sends from, import your first list, and run both side by side — same domains, same reputation, no risk. The server can come down whenever you're ready.
Free plan available. Two-minute CloudFormation setup. Same SES account you use today.