What Are Communication Channels?
A channel is a pathway for outbound messages:| Channel | Best for |
|---|---|
| Push | Urgent, short alerts on mobile |
| Rich content, newsletters, receipts | |
| SMS | Critical, high-urgency short messages |
| In-app | Guidance while the app is open |
| Web push | Browser alerts for web users |
| WhatsApp / RCS | Conversational messaging (where available) |
Channel Opt-Out Model
Every profile stores opt-out status per channel:| Status | Value | Meaning |
|---|---|---|
NOT_OPTED_OUT | 1 | Reachable (default for Push, SMS, WhatsApp, RCS) |
OPTED_OUT | 2 | Explicitly opted out — sends suppressed |
UNKNOWN | 3 | Intent not established (default for Email) |
_opt_out_at timestamp.
User Suppressed / User Unsuppressed). See User Preferences & Consent.
Push Notifications (Available)
Platform: iOS, AndroidDelivery: APNs / FCM
Latency: Typically under 5 seconds
Opt-in: System permission dialog
Opt-out field:
push_opt_out (default NOT_OPTED_OUT)
Supported today:
- Device token registration and multi-device profiles
- Platform routing (iOS → APNs, Android → FCM)
- Profile
push_opt_out/push_opt_out_at - Deep linking
- Delivery / open / action tracking — Push Notification Tracking
Coming Soon
These channels are not live for delivery yet. Opt-out fields are already on the profile so you can capture consent ahead of launch:| Channel | Opt-out fields | Notes |
|---|---|---|
email_opt_out / email_opt_out_at | Default UNKNOWN until confirmation | |
| SMS | sms_opt_out / sms_opt_out_at | Default NOT_OPTED_OUT |
whatsapp_opt_out / whatsapp_opt_out_at | Default NOT_OPTED_OUT | |
| RCS | rcs_opt_out / rcs_opt_out_at | Default NOT_OPTED_OUT |
| In-app messages | — | Rendered in-app when available |
| Web push | — | Browser Push API |
Choosing a Channel (Pattern)
Ask:- How urgent? Critical → Push or SMS · Important but not urgent → Email · Contextual → In-app
- How much detail? Quick alert → Push/SMS · Long explanation → Email · Interactive → In-app
- Where is the user? In app → In-app · Away → Push/Email
Example: Cart recovery (orchestration pattern)
This is a common multi-channel pattern. Today you can implement the push steps; email/SMS steps apply when those channels ship.| Use case | Primary | Backup |
|---|---|---|
| Order shipped | Push | |
| Cart abandoned (2h) | Push | |
| Cart abandoned (24h) | Push | |
| Password reset | Email + Push | SMS |
| Weekly newsletter | — | |
| Flash sale | Push | SMS |
| Feature tip | In-app | Push |
| Payment failed | Push |
Push Best Practices
Do: Request permission after showing value; personalize; clear CTA + deep link; respect quiet hours. Don’t: Ask on first launch; send generic spam; ignore opt-outs or quiet hours.Next: User Preferences & Consent