Senlo vs Customer.io
An open-source Customer.io alternative for product email.
If you use Customer.io for transactional emails and onboarding sequences, Senlo does that part: a visual editor, event-triggered automations and an API, on top of the Resend, Postmark, SES or SMTP account you already have. Self-host it or start free. Your templates and contacts stay yours, and so does the choice of provider.
Same job, narrower scope
Templates, triggered emails and automations that wait, check and branch. No SMS, push, broadcasts or data pipelines: Senlo does product email and nothing around it.
Your provider delivers
Senlo hands every message to your own Resend, Postmark or SES account: your domain, your reputation, your sending bill. Change providers from the settings, not in every template.
Pay for sends, not profiles
Customer.io prices by the profiles you store. Senlo Cloud counts emails sent, and self-hosted Senlo costs a server plus your provider's per-email rate.
Feature by feature
Where the two overlap, and where Customer.io simply does more.
| Feature | Senlo | Customer.io |
|---|---|---|
Visual email editor | ||
Transactional API: send a template with variables | ||
Event-triggered automations with waits and branches Senlo can also call your own API mid-flow and branch on the answer. | ||
Merge tags and conditional content | ||
Template history you can roll back to Senlo has undo and redo while you edit; saved versions are on the roadmap. | ||
Sends through your own provider (Resend, Postmark, SES, SMTP) Customer.io can send through your own SMTP server, without feedback on bounces and complaints. Senlo reads bounce and complaint webhooks from Resend and Postmark; over plain SMTP neither product gets them. | ||
Open source, self-hosted on your own database Senlo is AGPL-3.0. | ||
Team roles and audit log On Senlo Pro and Team. | ||
Newsletters and broadcasts to segments | ||
SMS, push and in-app messages | ||
A/B tests on messages | ||
Data pipelines (CDP) to your warehouse and ad tools |
What it costs
Customer.io's price includes delivery; Senlo's columns add the provider's bill so the totals compare. We assume each contact gets five emails a month, so 2,000 contacts send 10,000.
| Per month | Customer.io Essentials | Senlo Cloud + Resend | Senlo Cloud + SES | Self-hosted Senlo + SES |
|---|---|---|---|---|
| 3,000 emails, 600 contacts | from $100 | $0 | $0.30 | ≈ $8.30 |
| 10,000 emails, 2,000 contacts | from $100 | $39 | $20 | ≈ $9 |
| 50,000 emails, 10,000 contacts | from $145 | $39 | $24 | ≈ $13 |
| 200,000 emails, 40,000 contacts | from $415 | $219 | $79 | ≈ $28 |
- Customer.io: Essentials from $100 a month for 5,000 profiles, billed by profiles stored (deleted ones in the billing cycle count too), 1M emails included. No free plan; a 14-day trial. Checked 2026-11-02, customer.io/pricing.
- Senlo Cloud: Free up to 3,000 emails, Pro $19 up to 50,000 emails, Team $59 up to 250,000 emails and 100,000 automation runs (pricing); above that, self-host. Above that, self-host for about $8 plus your provider, or write to us.
- Resend transactional plans, checked 2026-11-02 (resend.com/pricing). Amazon SES at $0.10 per 1,000 emails, checked 2026-11-02 (aws.amazon.com/ses/pricing).
- Self-hosted: about $8 for a 4 GB VPS, plus your time on upgrades and backups. Count that time honestly; for a small team it is often the reason to pick the hosted version.
Why people look for an alternative
In their words, linked to the source.
“The pricing model didn't make sense for our growing company, as you pay for all the contacts in your account, regardless of if they're active or not.”VP Marketing, Capterra review, 2025
“What I dislike about Customer.io is the email editor, which feels a bit unintuitive. The block system sometimes forces you to take small detours to get the result you want, which slows things down when building or tweaking a template.”G2 review, 2026
“The biggest downside is the learning curve for advanced automation and integrations. Some features can be confusing to first time users and costs can add up as your audience grows.”G2 review, 2026
Which one to pick
Pick Senlo if
- Your emails are triggered by your product: sign-up, trial, invoices, password resets, onboarding.
- You already pay Resend, Postmark or SES and do not want a second sending bill.
- You want templates and contacts in a database you control, and code you can read.
- You pay per profile for contacts who get a handful of emails a year.
- Developers and the rest of the team should edit the same templates.
Stay with Customer.io if
- You need SMS, push or in-app messages next to email.
- Marketing sends newsletters and broadcasts to segments. Senlo does not do broadcasts.
- You want a CDP that feeds your warehouse and ad tools.
- A marketing team owns lifecycle end to end and relies on built-in A/B tests and reporting.
- You do not want to set up or pay for a sending provider at all.
Moving from Customer.io
You can run both side by side and switch flow by flow.
- 1
Connect a provider
Paste a Resend or Postmark key, or SMTP credentials for SES, Mailgun or your own server.
- 2
Rebuild the templates
In the visual editor, with merge tags and conditions. There is no importer from Customer.io yet.
- 3
Point your events at Senlo
Send transactional emails with POST /api/triggered and contact events with POST /api/events.
- 4
Redraw the flows
Recreate each campaign on the canvas, run it next to the old one for a week, then switch the old one off.
Questions
- Is Senlo a full Customer.io replacement?
- No. Senlo covers the product-email part: transactional emails, onboarding and lifecycle sequences triggered by events from your app. It has no SMS, push, in-app messages, newsletters to segments or data pipelines. If you use Customer.io for those, keep it, or keep it for those and move transactional email to Senlo.
- Does Senlo send the email itself?
- No. Senlo renders the template, personalizes it and decides when to send; your provider (Resend, Postmark, or SMTP for SES, Mailgun or your own server) delivers it from your domain. Deliverability, IPs and the sending bill stay with the provider you chose, and you can switch providers without touching a template.
- Can I import my templates from Customer.io?
- Not yet. Templates are rebuilt in Senlo's editor; a typical transactional email takes a few minutes. Contacts and events come in through the API: point the calls that feed Customer.io at POST /api/events and new contacts start your automations.
- Is self-hosting really free?
- The code is free (AGPL-3.0) and runs with one docker compose up. You pay for a small server and your provider's per-email rate, and you spend your own time on upgrades and backups. The hosted version exists for teams that would rather not.
- How does Senlo count usage?
- Senlo Cloud counts emails sent and automation runs, not contacts. Free is 3,000 emails a month for one person; Pro is 50,000 emails for $19 a month with a team, Team 250,000 for $59 with unlimited members. A contact who gets two emails a year costs nothing.
- Where is my data on the hosted version?
- On Senlo's own servers in a Postgres database, with provider credentials encrypted at rest. Your provider receives the rendered message and the recipient, nothing else. The privacy page names the hosting provider and location.
More comparisons
Senlo next to other products, with the same honesty about what it does not do. All comparisons.
Senlo vs Loops
For products on Loops that want flows which call their own API, pay for sends rather than contacts, and keep delivery with their own provider.
Senlo vs Brevo
For products that use Brevo for transactional email and onboarding flows, not campaigns, and want their own provider and no contact caps on the tier.
Senlo vs Mandrill
For teams on Mailchimp Transactional who pay for a Mailchimp plan only to keep Mandrill, and want templates that are not tied to the sender.
Senlo vs React Email
For teams that write emails as React components and want people who do not write code to edit them without a pull request and a deploy.