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.

Password reset guide

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

  1. Server-side send only
  2. Verified domain with SPF/DKIM
  3. Idempotency for webhook triggers
  4. Preferences for #10–#12
  5. 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,000pricing. 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

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.