Today we’re excited to announce a new, flexible channel type to use in your notification workflows. Introducing the Knock webhook channel.
This release brings a whole new level of flexibility to the output side of our notification engine. With webhook channels, you can notify any HTTP service using Knock.
Read on to learn more why we built webhook channels, how they work, and how to get started.
tl;dr: Webhook channels enable you to notify any service from your Knock workflows, while still getting the benefits of Knock preference management, retry logic, and observability.
Webhook channels are available for all customers starting today. You can get started in our docs.
Introducing webhook channels
Today our customers use Knock to send notifications across standard notification channels such as email, in-app, push, SMS, Slack, Teams, and so on. As we worked to help solve the notification needs of our customers, we started to hear requests from teams that wanted to notify custom channels from within Knock.
These requests fell into two primary use cases:
- Notifying an internal or 3rd-party service from a Knock workflow
- Using Knock to power customer-facing webhooks
With webhook channels, our customers can now power both of these cases using Knock.
Notify internal and 3rd-party services
First we heard from customers that wanted to use Knock to send webhooks to internal services and 3rd-party applications that you wouldn’t typically associate with notifications.
Sometimes it was an enterprise customer that wanted to trigger behavior in an internal system that was managed by another part of their engineering organization. We heard from other customers that wanted to be able to send requests to PagerDuty when certain notification workflows were run in Knock.
Now any of these custom use cases are as simple as creating a new webhook channel in Knock that sends a request to the service you want to notify.
Power customer-facing webhooks
We also heard from customers that wanted to build their own webhooks experiences within their own products. A classic example of this is notifications in Terraform cloud, where you can build an alert that notifies via email, Slack/Teams, or sends a webhook.
Now Knock customers can build webhook notification experiences for their own customers, thanks to webhook channels.
By managing customer-facing webhooks within Knock, our customers can manage webhooks alongside the rest of their notification channels to deliver a more holistic experience for their users and to reduce notification surface area within their codebase.
How webhook channels work in Knock
Webhook channels enable you to build a webhook request to any service, then treat that webhook the same as any other channel you’d use in Knock.
When you first create your webhook channel, you’ll configure the URL to send your request to, as well as any headers, params, or body data you want to pass to your configured endpoint.
Once a webhook channel is configured, you can bring it into your notification workflows, use workflow state to build your request dynamically (as we have in the screenshot above using liquid), and manage preferences for your webhook channel.
Behind the scenes Knock manages all retry logic and request logging on your behalf, just like we do for the other channels you use with Knock.
You can also enable signature verification for your webhook channels to verify that requests sent to your configured endpoints (or to the endpoints configured by your customers) are sent from Knock.
Webhook channels are available for all customers as of today. You can learn more in our webhook channel docs. If you’re looking to ship webhooks in your own product, you can read our guide on powering customer-facing webhooks to learn more.
Q: Are webhook channels available on all Knock plans?
Yes, you can create a webhook channel on any Knock plan, including our free forever Developer plan.
Q: Do I have to pay for messages sent through a webhook channel?
Yes, webhook channels send notifications through your workflows and contribute to the usage volume you send through Knock.
Q: Can I let my users manage preferences for messages sent through a webhook channel?
Yes, webhook channels are treated just like any other channel in Knock, which means you can reference them in the preferences model you manage in Knock.
Q: Do webhooks show up in my Knock delivery logs?
Yes. You have the same observability capabilities with webhook channels that you do with all other Knock channels. You can view the request you sent along with the response received by your destination endpoint. Any secure information (such as your signing key) is obfuscated from Knock logs.
Q: How do signing requests work in Knock for my webhooks?
The Knock webhook channel supports the generation of a signed request header using a signing key that can be fixed per environment or dynamic per customer configuration.