Β 

Changelog

The latest releases and improvements to Knock.

SMS support

We now support sending text messages from Knock. If you're using an existing SMS platform provider (such as Twilio,) you can quickly configure your provider as an SMS channel within Knock and add it to any of your existing notification workflows.

As with all of our channel types, SMS can be used with the Knock preferences model to manage a given user's preferences for receiving SMS messages alongside their preferences for other channels such as email and in-app feeds.

We had a number of requests from our early customers to support SMS, and we're excited to add this new channel type to Knock to help our customers orchestrate their cross-channel notifications.

Fixes and improvements

  • 🌱 We updated our channel model in Knock to make it easier to change which provider you're using for a given step in a notification workflow. This helps with multi-provider management and will have a number of benefits as we support push and chat app notifications later this summer. Stay tuned
  • πŸ‘€ We updated our in-app feed react component to use plain CSS instead of CSS-in-JS. Two nice wins here: the package is smaller and you can extend/override the default CSS used in the component
  • πŸ‘€ We updated the default behavior of the in-app feed component to wrap text without breaking words
  • πŸ‘€ We improved our topbar height consistency throughout the dashboard to minimize content layout shift as you navigate between the workflow builder and the notification designer
  • πŸ‘€ We improved our toast component to make it dismissible in cases where it might block functionality

Fixes and improvements

We're heads down on some big new features this week, and we'll have more to say about that soon. For now we have a smattering of improvements for you:

  • πŸ‘€ We added the ability to copy channel environment configuration from one environment to another, making it faster to setup your channels when your environment specific channel configuration is the same
  • 🌱 Triggering a workflow via the API now returns an error if the actor specified does not yet exist
  • 🌱 We added anchor links to our documentation site so that you can easily deep link to each heading
  • πŸ› We fixed an issue where you could get stuck in an unauthenticated state on the dashboard
  • πŸ” We've been hardening our infrastructure security to lock down any outside attack vectors

Mailgun integration

We now support Mailgun as an email provider within Knock!

If you are currently using Mailgun to send emails to your customers, you can now configure a new email channel with Mailgun in Knock and start using it in your workflows in no time.

Fixes and improvements

  • πŸ‘€ We improved the template editor experience where you can now select a different user as an actor or a recipient when crafting your notification template
  • πŸ‘€ We added the ability to include a custom message when inviting other team members to your Knock account
  • 🌱 We added support documentation accessible via the '?' icon in dashboard header
  • πŸ› We fixed the user preferences page to be read only (user preferences are updated via the Knock API)
  • πŸ› We fixed a bug in the template editor where switching to text view didn't allow editing email texts
  • πŸ› We fixed small styling inconsistencies across various popover menus in the dashboard header

Variable and state explorer

When you design a cross-channel notification, you use a lot of shared variables across each of its per channel templates. Whether a notification about a new comment is sent across email, push, or in-app, it's always going to include context about the page it was left on and who left it.

We just shipped our variable explorer to manage this shared state across the different channel templates you design within Knock. The variable explorer makes it super easy to see which properties are available for use within a given workflow, whether they are global variables within your Knock account, properties from your notify or identify calls, or even temporary state generated by functions within your workflow.

Create a property once, then use it across all of the channel templates within your notification workflow. Try it out and let us know what you think.

Amazon SES integration

We now support Amazon's Simple Email Service (SES) as an email provider within Knock. This means that if you already use SES to send emails to your customers, you can get a Knock email channel up and running in minutes. We handle all email orchestration and user preferences with SES, all you have to do is configure your notifications within Knock and we take care of the rest.

You can learn more about how to configure SES in your Knock account in our support documentation.

Leave us feedback

We added a new feedback component to the dashboard so you can tell us what you love and don't love about Knock. We want all the feedback we can get so have at it.

Fixes and improvements

  • πŸ‘€ We improved the workflow builder so that recently configured channels appear in the builder without a browser refresh
  • πŸ‘€ We improved the empty state in the workflow builder to help guide new users to channel configuration
  • πŸ‘€ We updated the message details pane to make it more actionable
  • πŸ› We fixed a bug in the message details pane where recipient info was being displayed instead of actor info
  • πŸ› We fixed a bug related to multi-environment channel configuration

Fixes and improvements

  • πŸ‘€ We improved the design of the trigger condition UX to make it easier to add conditions to a channel within a workflow (e.g. if you only want to send an email based on the read status of an in-app message)
  • πŸ‘€ We added tooltips to our disabled states
  • 🌱 We added a new state for when you switch between environments while viewing a resource that doesn't exist in the target environment. Instead of getting a 404, we tell you why the resource wasn't found and direct you to other environments in which you might find it
  • πŸ› We fixed a bug where deleted users would cause the message log to error
  • πŸ› We fixed a bug where creating a new step in the workflow builder would cause the page to 404
  • πŸ› We fixed a text overflow bug in the variables table
  • πŸ› We fixed a bug where real-time updates to your workflow schema wouldn't appear in the trigger step payload without a refresh

Google auth support

We added support for Google authentication into our login flow. If your organization uses Google Workspace to manage users, those users can log into Knock using their Google credentials.

Passwordless login

We also shipped passwordless authentication as part of this release. Two things we like about passwordless auth. First, if you're an end user you don't need to keep track of a password for Knock. Second, if you're an organization that enforces two-factor authentication through your identity provider (e.g. Google Workspace,) you can rest easy knowing that the only door into Knock is through the email account of that user.

Fixes and improvements

  • 🌱 We added a "get code examples" experience to the trigger step in a workflow. This helps you quickly look at code examples for our supported SDKs and grab the fully formatted notify call (with all necessary data variables included)
  • πŸ› We fixed a bug where the message and user lists wouldn't properly load on first view
  • πŸ› We fixed an issue with real-time updates per tenant on the notification feed component

Multi-environment support

Today we support two environments in Knockβ€”development and productionβ€”to give you a way to create and test your notifications before pushing them to your customers. But sometimes two environments aren't enough to map to the logical environments that you use in your application.

We now support adding additional environments to Knock so you can ensure the environment promotion flow you use in Knock mirrors what you use in your own deployment flow.

You can add as many other additional environments as you need to support your software development lifecycle. Each new environment acts as a new branch in the content versioning model, allowing you to test in the isolated environment before releasing to production.

You can read more about versioning and environments in our guide.

Tenancy support

Many SaaS applications today enable a single user to access multiple workspaces (or tenants) with the same login. This tenancy model keep data from different customers separate, while allowing users to easily switch between the workspaces they use within that application. As an example, as a Notion user, I use one workspace for my work and another workspace for my personal needs.

When it comes to notifications, the main place where tenancy comes into play is in-app feeds. In the example above, I wouldn't expect to be notified about activity from my personal workspace when I'm in the workspace I use at work.

Today we're releasing tenancy support to handle this use case. Notifications generated by Knock can now be scoped to a tenant, which ensures that they only appear in that tenant's instance of the Knock in-app feed.

We've completely overhauled our feed logic to support this feature. Everything is taken care of for youβ€”tenant scoped feeds show accurate badge counts for just the notifications within that tenant, updates for that tenant populate in real-timeβ€”and support is available out-of-the-box in our latest React notification feed components and Client JS SDK.

You can read more about this feature in our guides.

Fixes and improvements

  • πŸ› Fixed issue where archived workflows would appear on the "changes not yet in x" list
  • πŸ› Fixed issue where new workflows would not show up in the unstaged changes list
  • πŸ› Fixed issue where archiving a workflow with pending changes would still keep it in the destination environment
  • 🌱 Added ability to duplicate workflows
  • 🌱 Added support for displaying custom properties on a user profile page
  • πŸ‘€ Improved the styling of account and environment variables to aid with clarity

Preferences support

Preferences are a critical part of any notifications system. They let your users tell you when they want to hear from you, and when they don't. A good preferences system gives its users a way to unsubscribe from entire channels (such as email or push) and from individual notifications themselves.

We now support preferences on the Knock API. You can set preferences for your users at the channel, workflow, and channel-workflow level. This gives you the flexibility to offer your customers the preferences they want, in the format you want. You can keep your preferences high-level and just give your users a way to opt-out of channels, or get detailed and let them opt-out of specific notifications, or both.

The best part: once a user sets their preferences, we handle the rest. You won't have to write a single line of code to figure out whether a user needs to receive a given notification based on their preferences.

You can learn more about how Knock preferences work in our API documentation.

Fixes and improvements

  • Added support for user deletion for when users leave your product
  • Fixed an issue in the template editor where namespaced variables wouldn't save
  • Fixed a layout issue on the dashboard that was causing wonky scrolling behavior
  • Renamed Notification to Workflow in the Knock model to disambiguate between Notifications and Messages
  • Published version 0.2.0 of all Knock SDKs which includes preferences support

How to trigger a workflow

When you're building a new notification workflow, it can be hard to keep track of all of the variables you're using across different channels and what you'll ultimately need to use in your notify call to Knock.

We've made this process easier by giving you a sample notify call right within the context of the Knock workflow builder. Just select your trigger step and you'll see the workflow key and data payload to use in your call to Knock. You can also view code examples in your language of choice to quickly copy-pasta the notify call into your backend.

Fixes and improvements

  • We updated all of our ID fields to include a quick copy action
  • We fixed a bug in the preview variable editor where text wasn't wrapping

Cancel a notification

Here's a standard use case: you schedule a notification to remind a user about a task they need to complete in a few days, then before you send it, they complete the task. You don't want to send a notification to the user about a task they've already completed. You want to cancel that notification before it sends. Introducing Knock notify cancellation.

Now when an event takes place in your product that means you no longer need to send a notification to a user (a task is completed, an invite is accepted,) you can cancel that notification before it gets sent.

Learn more about canceling workflows in our documentation.

Fixes and improvements

  • Added a new default email layout that looks πŸ‘¨β€πŸ³πŸ˜˜
  • Cleaned up the channel configuration form to better separate required and optional fields
  • Fixed a bug where the subject line in the preview editor was getting cut off at a certain length
  • Fixed a bug where clicking in the canvas outside of a workflow step wouldn't de-select a step
  • Updated the visual styling of our headers
  • Fixed a bug where navigating to the preview tab would register as a change on the commit log