The Knock workflow builder enables you to craft notification workflows that combine functions, channels, and conditional logic to determine which of your users to notify across which channels when a given event takes place in your product.
As you start to dig into workflows, it's helpful to understand the basics of what happens in Knock when you trigger a workflow.
When Knock receives a workflow trigger (like the one below) for one of your workflows, it will produce a workflow run for each recipient you send in your workflow trigger.
In the example above we've included three recipients, so our workflow trigger will produce three separate workflow runs.
All Knock workflows consist of three basic parts:
- A trigger step that starts the workflow
- Channel steps that send notifications to your configured channels
- Function steps that control the flow of the workflow and produce state for use in templates
Every workflow starts with a trigger step. When you want to run a workflow, you send a notify call to the Knock API with an
actor, a list of
recipients, and a
data payload with any information you want to use in the notification templates of the workflow. (More on this in triggering workflows.) When the workflow is triggered, it creates a workflow run for each of the
recipients passed in the notify call.
You won't actually need to do anything with this trigger step within the workflow builder of the Knock dashboard, but it's worth calling out that we automatically generate a sample notify call based on the variable data you add downstream in your workflow. This way you can see all of the
data you need to pass in your trigger to populate the templates of the Knock workflow.
A channel step sends a notification to a recipient. When the workflow engine reaches a channel step, it looks for relevant channel data on the recipient. As an example, an email channel step will look for the
Each channel has a notification template (designed by you in the Knock dashboard) which inserts the
data from your notify call into a styled template for that step's given channel.
You can add any of the major channel types supported by Knock into your workflow. By default, we show all of our supported channel types, but you'll need to configure a provider with each channel before you can actually use them in a workflow. For more information on how to configure channels in your Knock account, see our integration guides.
A function is a step in a workflow that does something to the data being passed in your notify call. You can use functions by entering the workflow builder and adding function steps onto the canvas.
We currently support the following functions:
- Batch (aggregate notify calls that have the same value for a specified batch key)
- Delay (wait an amount of time before proceeding to the next workflow step)
- Fetch (execute an HTTP request to fetch additional data for a workflow)
Channel steps and function steps can have one or more trigger conditions that determine, at workflow execution time, if the step should be executed by evaluating a set of conditions.