New delay function: wait until timestamp

Delays in Knock have always allowed you to pause the execution of a workflow for a fixed period of time. These "delay for duration" delays are handy for conditional sends and reminders, such as the invite notifications that we power with Knock. With this release we've made delays even more powerful by adding support for "wait until timestamp", where you can specify a future timestamp in your notify payload at which you want the workflow to resume execution. The classic use case for this is task reminders, where you need to trigger notifications at a specific timestamp in the future, rather than at a fixed period from when the workflow was executed.

You can start using timestamp-based delays today. Just select the 'Wait until timestamp' option in the delay step and specify the key to look up the timestamp from your data payload.

Bulk message operations API

We heard from some of our power users that they needed the ability to bulk modify the status of messages sent to their customers, which is especially helpful when needing to archive all of the existing messages for a given user, or mark all of the messages for a particular channel as read.

We've introduced our new bulk message status API to address this need, which lets you update the status of messages on a given channel without needing to know the message ids. It's the first bulk operation API at Knock, and we also introduced an accompanying bulk operation endpoint so you can monitor the progress of these jobs.

You can find the new bulk endpoint in our Postman collection, or can read the API documentation to interact with them via cURL.

Fixes and improvements

  • 🌱 We updated our dashboard to include the currently active environment in the URL, making it easier to share links to users, workflows, and messages with your colleagues
  • 🌱 We improved the empty state you see when a message can't be found, keeping it inline with what you see for users and workflows
  • 🐛 We fixed an edge case in our workflow engine whereby a workflow step could be triggered multiple times when a channel configuration was missing in the environment
  • 🐛 We fixed a visual layout issue with our workflow editor where the canvas didn't extend to the bottom of the page