Workflow engine

Build notification workflows that retain users

At the heart of Knock is our powerful notification engine. Build your notifications with primitives that make it easy to compose notification logic for your product, no matter how complex your use case.

Cross-channel notifications

Reach your customers, where they are

Send notifications to out-of-app channels such as email, push, SMS, and Slack, all with a single API call.

See channel integrations →
background gradient
Automated preferences

Smart routing rules and preferences

Knock’s intelligent workflow engine automatically applies routing rules and user preferences for you, with no code to write on your side. Let us take care of handling if and when a customer should receive a notification, so you can focus on building your product.

Learn more →
background gradient

Composable functions to handle any notifications use-case

Use our workflow functions to perform common notification needs such as batching multiple notifications, sending based on user-device state, fetching data from external services, and more.

Read the docs →
background gradient

Unparalleled visibility into your notifications

Every notification workflow run is captured and logged for you, so you can easily debug notifications for an individual customer. Get end-to-end visibility from API request to notification sent.

Learn more →
background gradient

How Knock works

Get up-and-running with Knock in under an hour.


Create your notification workflows

Use our powerful workflow builder to create cross-channel notification workflows with advanced features such as batching, wait to send, and if-then behavior.

Learn more →

Connect your providers

Integrate with out-of-app channels such as email, push, SMS, and Slack, and power in-app channels via our in-app notifications API and pre-built components.

Supported providers →

Trigger your notifications

Use our SDKs to trigger your notification workflows from your backend code. Our advanced workflow engine routes your message to the right channel with the correct user preferences applied.

Read the docs →