# Transactional Email Journey

This path is for teams sending password resets, receipts, verification emails, login links, order confirmations, and required account notices.

---

## Goal {{ id: 'goal' }}

By the end, your application can send necessary account emails through Bento without exposing API keys, sending duplicates, or hurting deliverability.


> ⚠️ **Warning**
> Do not use transactional email for marketing campaigns. Use broadcasts, workflows, and consent-aware marketing paths instead.


---

## Recommended Path {{ id: 'recommended-path' }}

1. Read [Transactional Email Operations](/docs/operations/transactional-email).
2. Set up sender authentication with [DNS Setup](/docs/dns).
3. Pick an [SDK](/docs/sdks) or use the [Emails API](/docs/emails_api).
4. Confirm your `from` address is an author in Bento.
5. Implement sends server-side only.
6. Rate limit every user-facing action that can send an email.
7. Test with real inboxes and inspect the profile activity timeline.
8. Run the flow with seed contacts before enabling production triggers.


> If you are unsure which SDK fits your stack, start with [All SDKs](/docs/sdks), then read that SDK's GitHub README before implementation.


---

## Production Checklist {{ id: 'production-checklist' }}

- API keys are stored server-side.
- Sender authentication is valid.
- Password reset, login, invite, and signup endpoints are rate limited.
- Retries cannot send duplicate messages.
- Templates avoid user-controlled HTML and URL shorteners.
- Seed contacts passed the [flow test checklist](/docs/howtos/test_flows).
- Support knows how to inspect bounces and failed sends.

## Related docs

- [Emails API](/docs/emails_api)
- [Authentication](/docs/authentication)
- [Transactional Email Operations](/docs/operations/transactional-email)
- [How to Test Email Flows](/docs/howtos/test_flows)
- [Troubleshooting](/docs/troubleshooting)