12 Transactional Emails Every SaaS Should Send
The twelve transactional emails that matter for SaaS — auth, billing, and product signals — with implementation notes and how to send them with Notify without becoming a newsletter tool.
Short answer: Every SaaS should send a small set of transactional emails triggered by user or system events — starting with verification, password reset, welcome, receipt, and failed payment. Use a transactional API like Notify, not a marketing ESP, for that list.
Key takeaways
- Transactional ≠ newsletter; keep drips and campaigns elsewhere
- Ship auth + billing email before fancy product digests
- Same Notify API call for every type — only HTML and triggers change
- Idempotency matters for webhook-driven billing mail
- Preferences belong on product notifications (mentions, assignments)
What counts as transactional
Triggered by something that happened: signup, reset request, successful charge, export finished. The user expects that specific message.
Not transactional: weekly tips, launch announcements to cold leads, re-engagement blasts. Those can be valid — on another product and preferably another subdomain.
The twelve
1. Email verification
Confirm inbox ownership after signup. Hashed token, expiry, one link.
Magic link / verification · Auth flows blog
2. Password reset
Enumeration-safe API responses, hashed tokens, HTTPS link, clear expiry copy.
3. Magic link / OTP sign-in
Passwordless login. Shorter TTL (5–15 minutes). Put OTP codes in the subject for mobile lock-screen UX when using codes.
4. New login / security alert
Optional high-trust signal: new device or IP. Keep rare so it stays meaningful. Link to reset if it wasn’t them.
5. Welcome email
One shot: you’re in, here’s the dashboard. Not a five-email nurture.
6. Workspace / team invite
Who invited them, what workspace, accept link with expiry. Purely transactional.
7. Payment receipt
On Checkout completion or invoice.paid. Gate with idempotency so Stripe retries don’t triple-send.
Receipts · Stripe billing blog · Recipe
8. Failed payment
One clear “update payment method” message with portal link. Not a six-step marketing dunning sequence on your transactional domain.
9. Plan changed / subscription canceled
Confirm what changed and when access ends. Cuts “am I still billed?” tickets.
10. Mention / assignment / “you were added”
Collaboration signal. Require preference toggles. Example patterns: social notifications blog.
11. Export / report ready
Async jobs should email a time-limited download link when the artifact is ready.
12. Usage / quota threshold alert
Warn before hard blocks (API calls, seats, storage). Send early enough to act.
What did not make the list
- Product changelog newsletters
- “Tips to get started” drips
- Win-back campaigns
Different job, different tool.
Implementation rules for all twelve
- Server-side send only
- Verified domain with SPF/DKIM
- Idempotency for webhook triggers
- Preferences for #10–#12
- Logs now; webhooks when volume hurts
One Notify call for every type
await fetch('https://notify.cx/api/email/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.NOTIFY_API_KEY!
},
body: JSON.stringify({
from: 'noreply@your-verified-domain.com',
to: user.email,
subject: 'Reset your password',
message: html
})
});
Why Notify: you need delivery and observability, not a studio. Free 1,000/mo · Pro $10 / 10,000 · Scale $50 / 100,000 — pricing. Positioning: minimal stack.
Build order for a new SaaS
| Phase | Emails | |-------|--------| | Week 1 | Verification, password reset | | Week 2 | Welcome | | First charge | Receipt, failed payment | | Collaboration features | Invites, mentions (with prefs) | | Scale | Exports, quota alerts, login alerts |
Related
- Best practices 2026
- Quick start
- Compare email APIs
- Waitlist confirm + access (bonus transactional pair)
Frequently asked questions
What transactional emails does every SaaS need?
Start with email verification, password reset, welcome, payment receipt, and failed-payment notice. Add invites, security alerts, and product notifications as the product requires.
Are welcome emails transactional or marketing?
A single welcome or verify message triggered by signup is transactional. Multi-step nurture drips and newsletters are marketing — keep them off your transactional domain.
Can Notify send all of these?
Yes. Each is the same API call with different HTML. Notify focuses on send, logs, and webhooks — you own the content. Quick start.
In what order should I build them?
Verification and password reset first, then welcome, then receipt and failed payment, then invites and product alerts. See the priority section in this article.