Changelog

The latest releases and improvements to Knock.

Feature illustration

Today we're excited to announce the introduction of email client previews, giving you the ability to see real previews of how your emails will render, right inside of the Knock template editor.

Previously to see how your email notifications would render you would have to use a combination of our in browser preview, sending tests to yourself via the test runner, and using an external tool, like Litmus. Now, with email client previews, you can see exactly how your email will render on a variety of email clients by just navigating to the "Client previews" tab.

You can access email client previews by going to the "Client previews" tab in the template editor. There you will see a selection of popular email clients, showing a snapshot of how your template will render on each client. Each image can be enlarged, and you can easily navigate between different email client previews by using the keyboard.

Email client previews is available today for all enterprise plan customers. You can read more in the documentation.

Fixes and improvements

  • ๐Ÿ› [API] We fixed an issue where using the bulk create schedules endpoint with a non-existent recipient could cause the process to fail.
  • ๐Ÿ› [Dashboard] We fixed an issue where service tokens could not be deleted or renamed.
  • ๐Ÿ› [Dashboard] We fixed an issue with archiving email layouts.
  • ๐Ÿ› [Dashboard] We fixed an issue where opening the template settings modal on email templates would show an errant error for the JSON overrides field.
  • ๐Ÿ› [Dashboard] We fixed some performance issues with the new template editor, leading to slow typing speeds.
Chris Bell
Chris Bell
Feature illustration

Today we're excited to announce the introduction of email client previews, giving you the ability to see real previews of how your emails will render, right inside of the Knock template editor.

Previously to see how your email notifications would render you would have to use a combination of our in browser preview, sending tests to yourself via the test runner, and using an external tool, like Litmus. Now, with email client previews, you can see exactly how your email will render on a variety of email clients by just navigating to the "Client previews" tab.

You can access email client previews by going to the "Client previews" tab in the template editor. There you will see a selection of popular email clients, showing a snapshot of how your template will render on each client. Each image can be enlarged, and you can easily navigate between different email client previews by using the keyboard.

Email client previews is available today for all enterprise plan customers. You can read more in the documentation.

Fixes and improvements

  • ๐Ÿ› [API] We fixed an issue where using the bulk create schedules endpoint with a non-existent recipient could cause the process to fail.
  • ๐Ÿ› [Dashboard] We fixed an issue where service tokens could not be deleted or renamed.
  • ๐Ÿ› [Dashboard] We fixed an issue with archiving email layouts.
  • ๐Ÿ› [Dashboard] We fixed an issue where opening the template settings modal on email templates would show an errant error for the JSON overrides field.
  • ๐Ÿ› [Dashboard] We fixed some performance issues with the new template editor, leading to slow typing speeds.
Chris Bell
Chris Bell
Feature illustration

We're excited to introduce guides.

Guides enable you to power in-product messaging, everything from paywalls and badges, to one-time announcements and banners, using your own native components.

With guides, your engineering team gets complete control over in-product messages and how theyโ€™re rendered in your product, while your product and marketing teams get the ability to draft, A/B test, and manage all your native in-product content.

Native, self-serve, and observable

Here are a few reasons why we think guides will help product and engineering teams:

  • Goodbye <script/>. Hello <Component/>: Unlike legacy in-app messaging tools that inject JavaScript agents and slow down your app, Knock guides integrate directly with your React, Vue.js, or Angular components. No performance penalties. No UI janking. Complete design system compliance.
  • Self-service for PMs and marketers: With guides, product and marketing teams get the ability to draft content, target recipients, and configure message activation in a self-service way, without needing to worry about introducing breaking changes in the frontend.
  • Built-in analytics and observability: Guides automatically track delivery and engagement metrics. You can understand how many users are seeing, interacting with, and archiving your in-app guides. We make it easy to deliver that data where you need it, whether that's your data warehouse or CDPs such as Segment or Amplitude.

We believe in a future for the internet where software teams can ship in-app messaging that powers adoption, growth, and retention, without having to compromise on performance, web vitals, and content layout shift.

Check out a walkthrough here.

Read the full announcement.

Thomas Yu
Thomas Yu
Feature illustration

We're excited to announce two significant upgrades to developer experience at Knock, Docs 2.0 and new auto-generated SDKs.

A brand new docs experience

We first shipped our docs site four years ago along with the initial launch of Knock. Since then, the design hasnโ€™t changed, despite us shipping a lot of new content.

Weโ€™ve reorganized our content, rebuilt our โ€œbuilding in-app UIโ€ section, and refreshed our API and management API references using the OpenAPI spec.

We have also added support for all your LLM needs, with llms.txt and llms-full.txt, markdown pages, and a new RAG API endpoint for our MCP server.

If youโ€™re interested in peeking behind the curtains for these changes, our docs are open source and available here.

New SDKs for Node, Go, Python, and Ruby

Today, weโ€™re proud to release the 1.0 versions of our SDKs in Node (Typescript), Go, Python, and Ruby. These new SDKs are richly typed and include all resources across our API. They are a joy to use. In addition to typing, they include retries, auto-pagination, customizable logging, and configurable timeouts.

If youโ€™re a current SDK user, our migration guides will provide information on how to migrate to the 1.0 releases of our SDKs. Weโ€™re also anticipating that our PHP and .NET SDKs will follow the same generated treatment in the second half of this year.

Check out a walkthrough here.

Read the full announcement.

Meryl Dakin
Meryl Dakin
Feature illustration

We're excited to announce broadcasts, a way to send one-time cross-channel messages in Knock.

Whether youโ€™re announcing a new feature, alerting users about system maintenance, or driving new feature adoption, broadcasts let you create thoughtful cross-channel messaging sequences that reach users where they are.

Unlike traditional workflows in Knock that trigger based on events, broadcasts are scheduled to run once for an audience. And, because broadcasts use our workflow engine under the hood, you can easily build sophisticated cross-channel one-time messaging.

Audiences, preferences, and analytics

Along with broadcasts, we are also releasing:

  • Audiences: You can now create an audience in Knock using CSV upload, through our rETL integrations with Census and Hightouch and via our API.
  • Commercial preferences and 1-click unsubscribe: To stay compliant with regulations like CAN -SPAM and CASL, you can set a broadcast (or a workflow) as commercial, which give users the ability to one-click opt-out of any future commercial messaging sent with Knock.
  • Observability and analytics: The messages sent by broadcasts are just like any other messages in Knock. You get visibility into all of the same observability and analytics data we provide for trigger-based workflows.

Read the full announcement.

Check out a demo here.

Connor Lindsey
Connor Lindsey
Feature illustration

Today we're excited to introduce Knock workflows 3.0.

Read the full announcement.

This is our biggest update yet to building and designing cross-channel messaging in Knock. We redesigned our template editor and our workflow canvas with a renewed focus on:

  • Speed. All updates are optimistic. You will never see a loading spinner. You can now use keyboard shortcuts for everything.
  • Ease of use. Writing an email in Knock is as easy as writing a doc in Notion.
  • Quality control. Weโ€™ve overhauled error handling and introduced AI powered auto-fix suggestions to debug more complex issues

Check out a demo here.

Kyle McDonald
Kyle McDonald
Feature illustration

Today weโ€™re thrilled to introduce Knock Agent Toolkit and our new MCP server.

Knock Agent Toolkit

Agent Toolkit is a set of tools that enables your agents to send messaging across channels such as in-app, email, push, SMS, and chat apps (Slack, Microsoft Teams.) All messaging sent by the agent works within the guardrails of the messaging workflows and templates you configure in Knock.

const toolkit = await createAgentToolkit({
  permissions: {
    workflows: {
      trigger: ["comment-created", "task-completed", "welcome-user"],
    },
  },
});

Human-in-the-loop

An important part of building agents is enabling them to go to humans to provide input, verify work, and approve outputs. Agent Toolkit exposes a set of helper methods that make it easy to wrap your tool calls in asynchronous human approvals or inputs.

import { createToolkit } from "@knocklabs/agent-toolkit/ai-sdk";
 
const toolkit = createToolkit();
 
const classifyToolRequiringInput = toolkit.requireHumanInput(classifyWork, {
  workflow: "approve-classification",
  recipients: ["user_123"],
});

Our toolkit comes with built-in support for major agent frameworks and SDKs including Vercel AI SDK, LangChain, and OpenAI.

Knock MCP server

Anything you can do in the Knock dashboard you can now do using natural language.

Weโ€™re shipping a local MCP server that wraps Agent Toolkit and exposes the tools via the Model Context Protocol. The MCP server can be installed in any MCP-compatible client, including AI coding tools such as Cursor, Windsurf, or Claude Code.

Weโ€™re giving foundation models and tools like Cursor the ability to set up workflows, design emails, interact with Knock observability data, and much more.

Get started

You can get started today with Agent Toolkit and our MCP server by reading the documentation and installing the package via npm (@knocklabs/agent-toolkit).

The future is agentic. At Knock weโ€™re thrilled to get the opportunity to partner with our customers and define how agents and humans work together.

To learn more, read the full announcement.

Chris Bell
Chris Bell
Feature illustration

Today we're shipping the ability to use AI to generate workflow trigger data schemas, making it effortless to get started with verifying the data being passed to your Knock workflow trigger.

Last year we shipped our workflow trigger data schema validation, which allows you to use a JSON schema to describe the data that's expected as part of your workflow trigger. However, getting started here required you to write out a full JSON schema from scratch.

Now, using AI, you can click the "Generate schema" button to automatically generate a trigger data JSON schema from data available to your workflow. It's like magic.

Fixes and improvements

  • ๐Ÿ‘€ [Dashboard] We added a new "Commits" tab to the workflow page where you can see all commits on that workflow and promote changes.
  • ๐Ÿ‘€ [SDKs] We now support a containerStyle prop for the React Native and Expo SDK's NotificationFeed component.
  • ๐Ÿ‘€ [SDKs] fetchNextPage in the JavaScript SDK FeedClient now supports FetchFeedOptions.
  • ๐Ÿ› [SDKs] Trigger data filtering now supports boolean values in the JavaScript and React SDK.
Chris Bell
Chris Bell
Feature illustration

Today we're introducing workflow filtering for our commits page. Users can now filter the commits page by workflow to help teams better track and manage changes across their notifications.

Commit log filtering is available for all users on the "Commits" page, within the "Commit log" and "Unpromoted" tabs. Select a workflow from the filter dropdown to see all commits related to that workflow.

Fixes and improvements

  • ๐Ÿ› [Notification engine] We fixed an issue where MS Teams webhooks would unexpectedly retry a sent notification.
  • ๐Ÿ‘€ [API] We added support for datetime filtering to the user feed endpoint.
  • ๐Ÿ‘€ [API] We added support for listing recipients with their preference sets loaded.
  • ๐Ÿ‘€ [Notification engine] We added support for a new from_markdown Liquid helper to convert Markdown to HTML.
Mike Carbone
Mike Carbone
Feature illustration

Today we're excited to announce a new design for our commits page.

Teams operating customer engagement at scale know the difficulty of managing multiple changes across several teams and channels. With all of the moving parts, it's easy to lose track of what's been changed and when.

Knock enables teams to collaborate effectively with a powerful commit and environment model. But we recently identified a need to enhance the commits page UI to be even more useful. That's why we've redesigned our commits page with a focus on clarity and usability, making it easier for growing teams to manage changes to their notifications.

The new design is available today to all users under the "Commits" tab in the sidebar.

Fixes and improvements

  • ๐Ÿ‘€ [Dashboard] We added support for the "markdown" Liquid filter to allow MarkDown input -> HTML conversion
  • ๐Ÿ‘€ [Dashboard] Rolled out trigger event improvements
  • ๐Ÿ› [Dashboard] We fixed an issue with Menu Buttons firing multiple times
  • ๐Ÿ› [Dashboard] We deployed a fix for an email template rendering issue
  • ๐Ÿ› [SDK] We addressed an issue in the Go SDK where some user properties were incorrectly marked as required
Mike Carbone
Mike Carbone