Event-driven email infrastructure

Product email infrastructure for SaaS

Send onboarding, billing, account and lifecycle emails from product events — without hardcoding every template into your app or running a campaign calendar on the side.

Why most SaaS teams end up with a tangle of email code

The choice between a newsletter platform, a raw email API and a homegrown service rarely fits the actual shape of product email.

Newsletter tools are the wrong abstraction

Mailchimp, Loops and similar platforms are built around audiences, lists and campaigns. Product emails are triggered one-by-one by what users do inside your app.

Raw email APIs leave the workflow to you

Postmark, Resend and SES deliver — but template management, rule routing, tenant branding and observability stay your problem.

Homegrown email services drift

A folder of MJML files, a few cron jobs and some if/else routing turns into a quiet maintenance load no one wants to own.

Marketing-suite pricing punishes product email

Charging by contact count makes no sense when the email is triggered by a Stripe webhook for a single user.

A focused layer between your product and your email provider

else.events takes events from your app, matches rules, renders MJML templates and ships through the provider you already use.

Events, not campaigns

Your app posts events like user.signed_up, payment.failed or workspace.limit_reached. The rule engine decides which template fires.

Templates managed like a CMS

Visual MJML editor, reusable blocks, version history and locale fallback. Copy changes ship without a deploy.

Your provider stays your provider

Postmark, SMTP, SES — else.events is the layer above. Delivery, deliverability and DNS stay where they already work.

No contact list to sync

Recipient data comes from the event payload. The delivery log stores only SHA-256 hashes. Your users stay in your database.

Common SaaS email events

user.signed_up → welcome.email

Onboarding

Welcome new users, explain trial value and activate teammates.

payment.failed → payment-retry.email

Payment recovery

Send dunning emails the moment your billing provider fires a webhook.

team.member_invited → team-invite.email

Team flows

Invite teammates, confirm role changes, notify on permission updates.

subscription.renewed → renewal-receipt.email

Renewal & billing

Receipts, renewal reminders and plan-change confirmations from one event stream.

workspace.limit_reached → upgrade-nudge.email

Usage & limits

Notify users when they hit a soft cap or run out of seats — without writing it twice.

user.new_device → security-alert.email

Account safety

Password resets, new-device alerts and verification emails triggered by auth events.

Frequently asked questions

Is this a Mailchimp / Loops / Customer.io replacement?
No. Those are newsletter and marketing-automation tools optimised for audiences and campaigns. else.events is for emails triggered by product events. The two often run in parallel: marketing tools for newsletters, else.events for transactional and lifecycle email.
Do I still need Postmark or SMTP?
Yes — and that is by design. else.events does not deliver mail itself. We hand each rendered email to your configured provider (Postmark by default, SMTP optional, more providers on the roadmap). DNS, deliverability and IP warm-up stay where they already work.
What happens to user data?
Recipient addresses arrive in event payloads, are used once at send-time by your provider, then reduced to a SHA-256 hash in our delivery log. There is no contact list, no audience export, no PII in the index we query for activity, metrics or webhooks.
How is this different from rolling my own?
Most teams can roll their own template renderer, rule matcher and webhook normaliser. Most teams also discover, two years in, that it has quietly become a small product nobody wants to maintain. else.events is that small product, kept up to date for you.

Product email infrastructure, without the bloat

Send your first product event today. Templates, rules and delivery logs included.

  • Free during public beta
  • Works with Postmark and SMTP
  • No contact list to sync