A channel in Knock represents a configured provider to send notifications to your recipients. Most providers within Knock use credentials that you supply to deliver notifications on your behalf. These credentials and other settings are what make a configured channel.
Within Knock, we split channels into different types, where each type has at least one provider associated that can be configured:
- Email (such as Sendgrid, Postmark)
- In-app (such as feeds, toasts, banners)
- Push (such as APNS, FCM)
- SMS (such as Twilio, Telnyx)
- Chat (such as Slack, Microsoft Teams, and Discord)
- Webhook (send webhooks to custom channels or enable your own customers to configure webhooks in your product)
You can read more about the various types of channel integrations available here.
You can create and manage channels within Knock from the dashboard under the "Integrations" section. A created channel exists across all environments in your Knock account and uses the same ID for each environment.
Please note: only admins and owners on an account can manage channels.
For each channel you create in the Knock dashboard, you will need to configure the channel per environment for it to be valid. Each provider requires different configuration data, and you can see the required settings in the integrations guide.
Given that channel configuration is per-environment this makes it possible to have separate settings for your testing/sandbox environments vs your production environments. Channel settings can easily be cloned across environments when needed.
In Knock, all notification messages are sent via a channel step configured within a workflow. Notifications to be delivered will be forwarded to the channel using the settings that you provide inside our message delivery service, which handles the communication to the underlying provider and the retry logic if a message delivery should fail.
For most providers, you can inspect the delivery logs produced when trying to send a message from under the "Messages > Logs" page from within the Knock dashboard.
Some providers may require additional, per-recipient data to send notifications. A good example of this is a push provider like APNS, which requires a unique, device-specific token to know how to route a push notification to the recipient.
In Knock, we refer to this concept as "Channel Data" as it represents the data that exists for a recipient on a particular channel.
You can read more about setting channel data here. You can also see channel data requirements in the documentation for each provider.
There's no restriction on how many different channels you can have, including multiple channels for the same provider.