Saltar al contenido principal

Communication Channels

A channel is an outbound route to a member: SMS, WhatsApp, Telegram, email, web push, or in-app. The platform supports multiple channels at once and can auto-pick the best one per recipient based on opt-in and message type.

Channels and providers

ChannelProviderNotes
SMSTwilioConfigured in app settings (Twilio:AccountSid, Twilio:AuthToken, Twilio:SenderNumber).
WhatsAppMeta Cloud APIOne platform channel per Meta phone number. See WhatsApp Cloud API.
TelegramTelegram botConfigure a Telegram bot token, members link their account by chatting with the bot.
Web pushWeb Push / VAPIDBrowser push notifications. Members subscribe through the member portal.
Email(Configured per tenant)Built-in SMTP / SES; depends on tenant configuration.
In-appInternalNotifications inside the member portal UI.

Each channel is a CommunicationChannel row, configured under Communications → Channels with the provider credentials and any per-channel settings.

The channel router

When a message is sent, the platform doesn't always send through every channel — that would spam members. Instead it consults the channel router, which picks the best channel for a given (member, message type) pair.

The router:

  1. Loads the member's channel preferences (which channels they've opted into).
  2. Intersects with the tenant's active channels (which ones you've configured).
  3. Walks a priority order specific to the message type and returns the first match.
  4. If the member has an explicitly preferred channel that's in the priority order, that channel wins.

Priority orders

The default priority depends on the message type:

Message typePriority order
Transactional (transaction confirmation, points expiring, level-up)SMS → Push → WhatsApp → Email
Marketing (campaign promotion, reward available, game invitation)Push → WhatsApp → Email → Telegram
Streak reminderPush → In-app → WhatsApp
WelcomeEmail → WhatsApp → SMS
Anything elsePush → Email → SMS → WhatsApp

You can override these defaults if you have a strong preference (open a ticket with support — the orders live in ChannelRouter and are not yet UI-editable).

Kill switch

You can disable the router and force callers to use a specific channel. Set the tenant setting App.Communications.DisableChannelRouter to "true" and every send falls back to its caller-supplied channel (legacy behaviour). Use this only when you need deterministic single-channel delivery (e.g. legal notices that must go via email).

Multi-channel broadcast

When you do want to fan out to every available channel (e.g. a critical alert), use the broadcast surface — the platform sends through every active opted-in channel for the recipient.

Step-by-step

Add a channel

  1. Go to Communications → Channels and click Create channel.
  2. Pick the type (SMS, WhatsApp, Telegram, etc.).
  3. Fill in provider-specific credentials (see the table above).
  4. Save and mark Is active.

Set member opt-ins

A member's channel preferences live on their profile under Communication preferences. Members can edit their own preferences from the member portal — this is also where they opt out of marketing.

Send a message

When you trigger a notification (a campaign event, a welcome flow, a manual broadcast), the platform calls the channel router and dispatches through the chosen channel. The send appears in the message log per channel with the provider response code.

Limits and gotchas

  • Provider credentials are per tenant. Each tenant configures its own Twilio account or Meta phone — they're not shared across the platform.
  • Opt-in is mandatory for marketing. A member with no marketing opt-in won't receive marketing messages regardless of available channels.
  • Push requires HTTPS and the member to have subscribed. Members on iOS Safari versions older than 16.4 can't subscribe to web push.
  • WhatsApp has special rules. Marketing templates must be approved by Meta first; see WhatsApp Cloud API.
  • Permissions: Pages.Communications.Channels, Pages.Communications.Templates, Pages.Communications.Broadcasts.