Send Email And Manage Messages
Inbound messages, event notifications, templates, delivery logs, and provider webhooks are kept in separate paths.
On this page
Inbox
Signed-in users can send messages and review replies in /account/messages. Admins triage and reply from /communications/inbox.
Outbound delivery
System events queue email work, retry failures, and keep a send history.
Templates
Admins edit application-owned templates. Supabase Auth emails stay in the Supabase template system.
Resend webhook
Delivery status from Resend is received at /api/notifications/webhooks/resend.
Notification events
| Event | Meaning |
|---|---|
| lead.new | A new lead was captured. |
| lead.contact.message | A signed-in user sent a contact message. |
| lead.contact.reply | An admin replied to a user contact message. |
| team.invite | A staff invite was created. Supabase Auth renders and sends the email. |
| auth.signup.welcome | A new user should receive a welcome email. |
| system.alert | An internal system alert needs attention. |
| operations.stripe.dispute.created | Stripe reported a dispute. |
| billing.invoice.payment_succeeded | A billing invoice was paid. |
| billing.invoice.payment_failed | A billing invoice payment failed. |
| billing.subscription.expiring_soon | A subscription is near its end date. |
| billing.subscription.started | A recurring billing relationship started. |
| billing.subscription.changed | A subscription plan or state changed. |
| billing.subscription.canceled | A subscription was scheduled to end or canceled. |
| billing.subscription.expired | A subscription reached the end of access. |
| billing.refund.issued | A provider refund was recorded. |
| billing.order.completed | A verified one-time order completed. |
| billing.credit_pack.granted | A prepaid-credit purchase created or repaired its local grant. |
| billing.credit_balance.low | A customer's app-local credit balance is low. |
| billing.usage.threshold_reached | Usage crossed a configured threshold. |
| billing.usage.summary | A periodic usage summary is ready. |
Email template ownership
| Template type | Owner | Where to configure |
|---|---|---|
| Authentication and security | Supabase Auth | Supabase Dashboard → Authentication → Email Templates and SMTP Settings |
| Application notifications | Shipflash notifications | /communications/outbound/templates |
| Delivery status | Resend webhook | /api/notifications/webhooks/resend and the outbound send log |
- 1
Configure Supabase Auth
Set the production Site URL, redirect allow list, custom SMTP, and authentication templates before testing invites or recovery.
- 2
Customize application templates
Use the Communications editor for leads, welcome messages, billing notices, and operational alerts.
- 3
Preview and publish
Save a draft, verify supported variables, preview the output, send a controlled test, and publish a new version.
- 4
Verify delivery
Confirm provider webhooks update send status and that authentication links are not rewritten by email tracking.
Customer customization rules
- Change brand copy, colors, footer details, and button labels without changing event keys or delivery code.
- Use Supabase Go-template variables only in Supabase Auth templates.
- Use Shipflash {{variable_name}} placeholders only for application notification events that support them.
- Keep authentication links, webhook verification, recipient resolution, retries, and deduplication server-owned.
- Do not add team.invite to the application-managed template set.