Β 

Changelog

The latest releases and improvements to Knock.

User deletion and right to be forgotten requests

We've expanded the scope of our user deletion endpoint. Now we permanently delete all content associated with a user upon receiving a deletion request. This means that Knock user deletion is now fully GDPR-compliant and can be used to programmatically process right to be forgotten requests. Previously we had supported these requests in an ad-hoc way through our customer support, but with this change you can now programmatically call the user delete or bulk delete APIs and have all content for a user permanently removed.

You can learn more in our user deletion documentation ->

Bypass recipient preference evaluation

We've introduced a per-workflow control to bypass recipient preferences. This is useful in situations where you need to force a critical notification through to a recipient (such as a password reset email) regardless of that recipient's channel preferences.

You can find the new preference control under "Manage workflow" in the workflow three-dot menu. You can learn more in the preferences documentation.

Fixes and improvements

  • πŸ‘€ We changed the admin role to be able to create and manage environments
  • πŸ‘€ We changed our combobox behavior for selecting recipients and actors to load a page of data to aid with selection
  • πŸ‘€ We added support for per-customer overrides for idempotency windows
  • πŸ› We fixed an issue where the workflow category selector was case sensitive
  • πŸ› We fixed an issue where the knock.messages.delivered metric was not being sent to Datadog

Set a maximum batch limit

Today we're releasing a new way to close your notification batches, by setting a maximum number of items allowed. This means a batch can now close either temporally (when the batch window ends), or when a certain number of items have been accumulated, giving you even more flexibility on how you batch your notifications.

You can set a maximum batch item limit under the batch step settings. Read more in the documentation.

Fixes and improvements

  • πŸ‘€ We added a new bulk add subscriptions API endpoint
  • πŸ‘€ We changed the behavior of our recipient preferences set endpoints to create empty recipient's when setting preferences for new recipients instead of 404-ing
  • πŸ‘€ We increased the limit on all of our bulk operation endpoints from 100 to 1000 items at a time
  • πŸ‘€ We added support for the Mailtrap email testing API
  • πŸ‘€ We added an email field to our docs feedback component
  • πŸ‘€ We now expose subscription information under a recipient when triggering a workflow from a subscription
  • πŸ› We fixed an issue where you could not manage subscriptions under a tenant object
  • πŸ› We fixed an issue where some email clients would not report tracking information correctly
  • πŸ› We fixed an issue with our batch steps where in certain cases, using a sliding batch window could extend to the maximum batch duration
  • πŸ› We fixed an issue where using the CLI to push translations with no changes would result in uncommitted changes being generated
  • πŸ› We fixed an issue where webhooks were not being properly created via the Dashboard
  • πŸ› We fixed an issue where long variable names would break the layout in the variable pane

Today we’re announcing the first major update to our workflow canvas since we first launched Knock in beta two years ago. 😁

With this release we’ve rebuilt the Knock workflow builder from the ground up to support:

  • If-else and multi-branch workflows. Use our branch function to create if-else and multi-path messaging workflows.
  • An improved user experience. It’s now easier to drag-and-drop steps into the canvas and reorder steps. We’ve also shipped pan-and-zoom controls for moving around the canvas.
  • Even better workflow debugging. With our new branch step, we’ve updated our debugger so you can easily see which branch executed in a given workflow.

Read the full announcement here β€”>

Connect event triggers in the workflow builder

When working with Segment or a similar integration source in Knock, previously all the configuration would take place in the Sources pages. We've now added the ability to add and change your event triggers directly in the workflow builder. There's a toggle from API to Event in the trigger step that will open the event trigger pane where you can add an event, edit its field mappings, and commit it alongside your workflow.

Run workflow tests with event data

You can now test your event-driven workflows directly from Knock! Rather than sending a test event from one of your integration sources, the workflow test runner will automatically pull in the latest event received for you to run rehearsals of a workflow powered by events. This helps you fine tune your mappings and make sure you're getting all the necessary data for your notifications without switching between applications.

Improved event logging

Previously, our event logging was too strict - instead of logging malformed events coming into Knock, our system would drop them, making it hard to know what was wrong. Now we're logging every event, whether it's valid or not. If it's already triggering a workflow, we'll let you know why it did or didn't work. We've also added logs for our test events so that after every run you'll get the same detailed feedback about what's missing or malformed in your event.

Both of these improvements decrease the amount of time you spend tracking down missing data and gets your event-driven workflows into production faster.

Fixes and improvements

  • πŸ› We fixed a bug in preference conditions where not_contains wasn't recognizing null as a truthy value
  • πŸ› We fixed a bug where reset uncommitted changes was enabled even if there were no commits
  • πŸ› We fixed a bug where we were sending duplicate invoices
  • πŸ› We fixed a bug where updating workflow categories were hidden under the modal
  • πŸ› We fixed some bugs around usernames, they can now be nullable and they will not replace existing usernames on login
  • πŸ› We fixed a bug where you couldn't add a condition in channel configuration
  • πŸ‘€ The E keybinding for opening a template now works in read-only environments
  • πŸ‘€ We've added a cancel workflow run button in workflow run debugger

Fetch step: preview your fetched data in the variable pane

Previously when you used a fetch step in a workflow, there was no way to keep track of the properties in the returned payload when building your notification workflows. You would have to memorize the data to use it.

We've shipped a big improvement that eliminates this pain point: we're now storing the fetched data in the workflow variable pane. The variable pane is available in every step of your workflow, so it's now easy to know which variables you can reference as you're building your workflows and message templates. If you have multiple fetch steps in your workflow you'll see a section in the variable pane for each step.

Mailtrap integration

We now support Mailtrap as an email provider within Knock!

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

Learn more in the docs β†’

Fixes and improvements

  • πŸ› We fixed a bug where customers on our legacy plans weren't able to self-service downgrade
  • πŸ› We fixed a bug where tenants weren't able to be inline-identified
  • πŸ› We fixed a bug where users weren't able to open the template gallery
  • πŸ‘€ Cancellation keys are now shown in the workflow run log page

Workflow test runner support for objects

While it's been possible to use Knock to send notifications to non-user recipients for some time, if you wanted to run a test of the workflow to a non-user recipient you needed to use the API, adding a small amount of friction to the process.

Today we're shipping support for running workflow test runs for any of the objects you have set in your Knock environment, from the test runner in the dashboard and via the CLI. This makes it fast and easy to test sending notifications to your object recipients and makes it possible to easily test recipient subscriptions without needing to call the API.

Test runner support for object recipients is available today across all plans and in the CLI as of version v0.1.4.

Fixes and improvements

  • πŸ‘€ We added the ability to set a maximum duration on a sliding batch window

Limit the number of executions of a workflow over a window of time with the throttle function

Today we're launching our new throttle function. With the throttle function, you can limit the number of times a workflow is executed for a recipient within a given window of time, making it trivial to build sophisticated notification alerting workflows that don't spam your users.

Previously if you wanted to throttle the execution of a workflow for a recipient, you would need to keep the logic in your application and control the number of times that your Knock workflow trigger is executed. This means keeping track of the sent notification state and potentially adding additional infrastructure to support this complexity. Now, with the throttle function, you can safely invoke your Knock workflow and know that Knock will apply the throttle controls for you to limit the execution of a workflow for a recipient over the window of time that you specify.

For example, with the throttle function, you can say "execute this workflow at most once per day for each recipient" and safely trigger the Knock workflow any number of times in that window, knowing that if it has already been executed in the window that Knock will terminate the workflow run for you.

Our throttle function is available today across all of our plans. You can read more in the documentation or contact our sales team to see a demo.

Sync your notifications analytics to your data warehouse

Today we're launching our new analytics data warehouse integration. With this integration you can bring the clean, normalized data Knock produces for your cross-channel notifications into your data warehouse to analyze alongside the rest of your product data. With this connector we support data exports to Snowflake, BigQuery, Redshift, and a number of other destinations.

Previously we had offered a Segment integration to stream the normalized notification analytics data into downstream destinations, including a data warehouse. Now with our new data warehouse analytics sync you can configure a data warehouse connection in Knock and we'll start streaming our normalized cross-channel notifications analytics data directly into your data warehouse, so you can analyze it alongside the rest of your data.

Our data warehouse sync is available today on our enterprise plan. You can read more in the documentation or contact our sales team to see a demo.

Fixes and improvements

  • πŸ› We fixed an edge case where unsetting channel data could end up marking a recipient's updated_at timestamp as null.
  • πŸ› We fixed an issue where sending a malformed recipient's list to our workflow trigger endpoint would not surface a useable error.

Condition debugging in workflow run logs

Today we're launching a step change in your workflow run debugging experience with our new enhanced conditions debugger that surfaces the conditions we evaluated across step, channel, and preference conditions for each step in your workflow.

Previously, we showed a single log line telling you conditions were not met on step and channel evaluation, leading to a confusing user experience in understanding exactly what caused the condition to not pass. Now, with our new conditions debugger, you can get a clear picture of all of the conditions we evaluated when executing your workflow, including exactly what the variables you're referencing in the conditions evaluated to.

You can read more about the debugging conditions in the documentation.

Sliding batch window support

We've added support for sliding windows in our batch function. Previously, when a batch was opened the window for which the batch was open was static, meaning that there was no way to extend the window to accumulate more items inside of the batch. Today, we've added a new "sliding" feature on our batch windows so that any new activities that are added to the batch will extend the window that the batch is open by recomputing the batch window.

You can read more about sliding batch windows in the documentation.

Fixes and improvements

  • πŸ‘€ We added a new contains_all operator to complement our existing contains conditions operator.
  • πŸ› We fixed an edge case with our user and object upsert API where overriding a null property with an object would cause an API 500.
  • πŸ› We fixed an issue where \n characters could cause an issue with push templates.
  • πŸ› We fixed a regression where syntax highlighting was broken in our code editor.

Swift SDK

Today we're launching our Knock Swift SDK, which you can use to build in-app notification experiences in iOS, macOS, and watchOS. Our Swift SDK makes it easy to interface with the Knock in-app feed, wrapping up all of the real-time socket and API querying behavior for you into an easy-to-use package.

The Swift SDK also supports:

  • Getting and setting push token information via channel data.
  • Working with user preferences to build in-app preference centers.
  • Updating message engagement statuses to track push notification opens and taps.
  • ... And much more!

You can install the SDK from Swift Package Manager, Cocoapods, or Carthage. There's also comprehensive documentation and an example iOS app to get you started.