An overhaul for message status conditions

This week we've shipped a major update to message status conditions in the workflow editor. While we have long supported workflow step conditions that evaluate against the status of a preceding notification message, we only ever provided a small set of condition cases.

With this update, we've expanded the set of condition cases available to cover all possible message delivery and engagement statuses. Also included are some validation helpers that will warn you if we detect you've designed a condition that will never evaluate successfully.

This is a fully backwards compatible updateβ€”all of your existing message status conditions will continue working as you've come to expect. We're excited about how this update will unlock more powerful, composable control flow for your workflows, especially in combination with Knock open and link tracking.

For more details, visit our message status conditions docs or our general guide on Knock conditions.

Enhanced security mode configuration and user token signing helpers

We're excited to share a couple of developer experience improvements to API security at Knock.

Since the beginning, Knock has required that you include a signed user token in requests to your production environment that use a public API key. Now, you can configure this requirement on a per environment basis. We call this "enhanced security mode", and when enabled we will require those signed user tokens. Existing production environments still have enhanced security mode enabled by default.

We've also made it easier to work with those signed user tokens. When you generate a shared signing key in the Knock Dashboard, we now present the key in base-64 format by default. This can be easier to use within single-line environment variables. The PEM-encoded format is also still available.

The Knock Node SDK now includes a convenience method, Knock.signUserToken(), that will automatically use the KNOCK_SIGNING_KEY environment variable in either base-64 or PEM format to securely sign user IDs for use in your client applications.

Lastly, we've updated our security and authentication guide with more helpful notes on how to work with enhanced security mode.

Head over to the "Developers > API keys" page in the Knock Dashboard to take a look.

Fixes and improvements

  • πŸ‘€ From the workflows list, you can now open a workflow in a new browser tab by cmd + <click>-ing it.
  • πŸ‘€ We shipped a small redesign to the "Integrations > Extensions" management page.
  • πŸ‘€ Users with the support role can now access the Knock analytics page.
  • πŸ‘€ We added some truncation for lengthy ID and key values across the Knock dashboard.
  • πŸ‘€ When setting channel data for a user or object, we now validate that the shape of the channel data you send us is valid for the target channel type.
  • πŸ‘€ Within the workflow builder, you can override channel-level Knock tracking config defaults for specific workflow steps. Now, we've added a button that lets you reset your overrides so that your step once again inherits from channel-level defaults.
  • πŸ› We fixed a bug that prevented you from creating a workflow with more than 10 channel steps. You can now create workflows with any number of channel steps.
  • πŸ› We fixed a bug where we wouldn't display environment default preferences in the Knock dashboard after first creating them.
  • πŸ› We fixed some bugs with user invites where duplicate users would exist after a new user accepted an invite and signed up to join a Knock account.
  • πŸ› We fixed a bug where non-visible Liquid statements (e.g. {% if %}) would result in extra, empty <p> tags when rendering a Markdown template into HTML.
  • πŸ› We fixed a bug where you couldn't set an empty connections list for the channel data for a chat channel for a user or object.