Appendix K: Distribution Channels
A Distribution Channel is a method for delivering notifications.
Name | Type Code | Description |
---|---|---|
APNS | Push.APNs | Push notifications sent to Apple Push Notification Service. |
Debug | Debug | Notifications that are only logged. For testing purposes only. |
Email notifications sent to an email address. | ||
FCM | Push.FCM | Push notifications sent to Google Firebase Cloud Messaging. |
SMS | SMS | SMS notifications to a phone number. |
Web Push | Push.Web | Push notifications sent to a specific Web Browser. |
Each method may have settings available for both the Notification Channel and the Notification Source, potentially with metadata required to configure a Channel.
Apple Push
Section titled “Apple Push”Type: Push.APNs
Supports push notifications sent to Apple Push Notification Service. For use with iOS and other Apple devices.
Each instance of this channel will push to a specific device and application.
Type: Email
Supports email notifications sent to an email address.
Distribution Method Metadata
Section titled “Distribution Method Metadata”No metadata.
Notification Channel Settings
Section titled “Notification Channel Settings”Name | Type | Expect | Description |
---|---|---|---|
String | Always | The email address to deliver to. | |
name | String | Optional | The display name of the recipient. |
Notification Source Settings
Section titled “Notification Source Settings”Name | Type | Expect | Description |
---|---|---|---|
urgency | String | Sometimes | An optional urgency to supply with the email. If omitted, defaults to Normal. One of: Low, Normal, High. |
Google Firebase Messaging
Section titled “Google Firebase Messaging”Type: Push.FCM
Supports push notifications sent to Google Firebase Cloud Messaging. For use with Android devices using Google Play Services.
Each instance of this channel will push to a specific device and application.
Sessions Notification
Section titled “Sessions Notification”Type: Sessions
Supports notifications sent to all open application sessions for the user.
Only one of these channels is
Type: SMS
Supports SMS notifications sent to a phone number.
Web Push
Section titled “Web Push”Type: Push.Web
Supports push notifications sent to a specific Web Browser via the Web Push standard. For use with websites and PWA’s in Chrome, Firefox, Edge, Safari, etc.
Each instance of this channel will push to a specific browser and website.
Distribution Method Metadata
Section titled “Distribution Method Metadata”Name | Type | Expect | Description |
---|---|---|---|
userVisibleOnly | Boolean | Always | Whether the notifications should be visible in the target browser. Always true. |
applicationServerKey | String | Always | A Base-64 Application Public Key as required by Web Push. |
Notification Channel Settings
Section titled “Notification Channel Settings”The settings for Web Push generally mirrors the subscription object provided by the browser Push API.
Name | Type | Expect | Description |
---|---|---|---|
endpoint | String | Always | The browser vendor’s endpoint to send push notifications to. |
expirationTime | Number | Sometimes | An optional expiration time after which the subscription must be renewed by the browser. |
keys | Object | Sometimes | An optional Web Push Keys object to use for encrypting the payload. If omitted, no payload will be included in the notification. |
Web Push Keys object
Section titled “Web Push Keys object”Name | Type | Expect | Description |
---|---|---|---|
p256dh | String | Always | A Base64-encoded RFC5480 ECDH public key. |
auth | String | Always | A Base64-encoded auth key. |
Notification Source Settings
Section titled “Notification Source Settings”Name | Type | Expect | Description |
---|---|---|---|
ttl | Number | Always | The Time-To-Live, in seconds, before the notification is discarded undelivered by the push notification service. Can be zero to require immediate delivery. |
urgency | String | Sometimes | An optional urgency to supply to the push notification service. If omitted, defaults to Normal. One of: VeryLow, Low, Normal, High. |
topic | String | Sometimes | An optional topic identifier to supply to the push notification service. Further notifications with this topic will overwrite previously undelivered notifications. Must meet the format requirements for the HTTP Topic header. |