Console Guides

Messaging

Messaging sends email, SMS, and push notifications to your app's end users, tracks delivery stats, and lets you configure your own SMS provider and Firebase push credentials per project.

Find it

Messaging is in the sidebar under the Engage group.

Messaging overview with stats, by-channel breakdown, SMS provider config, and Push FCM config marked
Overview — stats, by-channel breakdown, and provider configuration
  1. Click + New message to compose and send an email from the dashboard directly.
  2. Total and Sent come from message history; delivery rate uses provider-confirmed delivered counts when available, falling back to a send-success rate otherwise.
  3. How many messages of each type — email, SMS, push — have been sent.
  4. Bring your own SMS provider — Twilio, Termii, or Africa's Talking. Toggle Use project SMS provider, pick a provider, set a default from, and paste that provider's credentials. Secrets are encrypted at rest and never shown again after save — leave the secret field blank on a later edit to keep the existing one.
  5. Paste a Firebase service account JSON to override the platform's default FCM credentials for this project's push notifications. Clear project JSON reverts to the platform default.

Compose a message

New message dialog with Email/SMS/Push tabs, recipient, subject, and message fields marked
New message — Email sends directly from the dashboard
  1. Fill in the recipient, subject (email/push only), and message body, then send.
  2. Only the Email tab actually sends from this dialog — supports HTML in the message body. SMS and push are dashboard-visible for reference but are sent through the Messaging API, not this compose form.

Message history

Message history table with Type and Status filters and a paginated list of sent messages
Message history — every email, SMS, and push attempt for this project
  1. Narrow to email, SMS, or push.
  2. Filter by lifecycle status: sent (accepted by the provider), delivered (provider-confirmed via webhook), or a failure state — bounced, complained, suppressed, failed.
  3. Each row shows the recipient, subject or a content preview, the from address, status, and timestamp. The list polls automatically every 15 seconds so a sent row that later gets a delivery webhook updates to delivered without a manual reload.
Note
sent only means the message was accepted by the provider's API — it is not delivery confirmation. delivered is the real, webhook-confirmed terminal success state, which is why the two are shown as separate statuses rather than collapsed into one "success" badge.