NOTIFICATIONS — email / SMS / WhatsApp / FCM

Intents carry identifiers only. Templates are allowlisted and escaped. Sensitive workflows use generic “open CASA securely” wording. Secrets rotate with overlap; webhooks require signatures. No contact lists in the browser.

ASYNC LAYER — outbox / jobs / DLQ

Side effects run via transactional outbox, Cloud Tasks and Pub/Sub. UI shows queued/processing/retry from owner-scoped job documents — never poll faster than 5s or list unbounded. FCM/notifications are informational and cannot change business state. Missing queues stay ENVIRONMENT_BLOCKED.

Total recordsAwaiting projection
Needs attentionAwaiting projection
Completed this monthAwaiting projection
Active regionsAwaiting projection

Notification Infrastructure sections

Recent notifications

NotificationChannelSent byLevel / workspaceAudienceDeliveredWhenAction