Before you start
Notifications should support lifecycle communication without separating delivery state from identity context. Pricing copy references notification channels, notification campaigns per month, SMS as an add-on, and webhook delivery for operational events.
What you build
Notification workflows usually include:
- trigger or lifecycle event
- Project and environment scope
- audience or recipient
- channel
- template or message family
- delivery status
- audit and webhook trace
- plan or add-on availability
Implementation steps
1) Choose the channel in the console
Email, SMS, in-app, and webhook-backed workflows can have different availability and plan boundaries. Render unavailable channels truthfully instead of hiding the reason.
2) Resolve the recipient
Use current Project membership and identity state. Do not send lifecycle notifications to users who no longer qualify for the Project context.
3) Track delivery events
Webhook catalog includes sms.sent. Notification delivery events should be deduplicated and logged with Project and environment context.
4) Respect limits
SMS is add-on capacity in pricing copy. Use /v1/admin/billing/addons/sms/status and /v1/admin/billing/addons/sms/tiers to show availability before launch when your product exposes SMS operations.
API coverage note
Use the Customer API reference for documented SMS add-on endpoints. For campaign-style notification authoring, use the console and webhook delivery events until dedicated public notification API pages are available.
Security and operational notes
- Keep consent, unsubscribe, and suppression state close to the delivery channel.
- Avoid logging message secrets or full sensitive payloads.
- Separate sandbox notification tests from production sends.
Related docs
- Campaigns:
/docs/growth/campaigns - Webhook Events:
/docs/reference/webhook-events - Plan Limits:
/docs/pricing/limits