One email API for the whole SaaS lifecycle.

Send account email immediately. Run opted-in onboarding, lifecycle messages, and product updates through audiences, broadcasts, and automations. Every result is available in project logs and can return through signed webhooks.

Customer lifecycleOne project
user.createdVerify the accountTransactional APIdelivered
invoice.paidSend the receiptTransactional APIaccepted
contact joins audienceStart onboardingAutomationstep 1 sent
release readyShare the product updateBroadcastscheduled
Same verified domain · same project logs · signed outcomes
Pro workspace$10 / month
Email meter25,000 / month
Active contacts10,000 included
Automation runs10,000 included

Two customer-email jobs

Keep the purpose clear. Share the infrastructure.

Transactional email follows a product action. Marketing and lifecycle email follows subscribed audience state. Both can use the same project, verified domains, templates, logs, and webhooks.

Transactional email

The message a product action requires.

Send verification, password resets, receipts, security alerts, and direct notifications through REST, Node, or SMTP.

  • Verification
  • Password reset
  • Receipt
  • Security alert
Explore transactional email

Marketing email

The update a subscribed customer asked to receive.

Run onboarding, product updates, changelogs, and newsletters through audiences, broadcasts, and lifecycle automations.

  • Onboarding
  • Product update
  • Changelog
  • Newsletter
Explore marketing email
Shared inside the projectVerified domainsTemplatesSuppressionsRecipient logsSigned webhooks

Real production paths

Three routes. No campaign maze.

Start each job from the state it actually uses. NoticeAPI keeps the operation narrow and the recipient result inspectable.

Broadcasts and automations check subscription, unsubscribe, and project suppression state before sending.

When a customer asks

Show what happened after send.

The request, stored message, provider outcome, and signed event give support and product teams a useful answer without digging through worker logs.

Recipient timelineeml_7F2A
SubjectYour receipt is ready[email protected]
  1. AcceptedRequest stored and queued for delivery
    now
  2. DeliveredRecipient server accepted the message
    +1s
email.deliveredSigned webhook · application returned 200

One operational record

The app and the operator read the same outcome.

Store the email ID beside the product action, fetch it when support needs context, or let the webhook update your application automatically.

Read email retrieval docs

First customer email

Put the email lifecycle back inside your product.

Start with one transactional send, then add the opted-in audience path when the product needs it.