Changelog

The latest releases and improvements to Knock.

Feature illustration

Today we're introducing data functions, a new set of workflow steps that enable you to update your data in Knock from within a workflow.

The new data functions available include:

  • Update audience. Add or remove a user to or from a static audience. For example, when users hit a usage milestone, you can add them to a "Power users" audience, or remove them if they churn.
  • Update user. Modify the recipient's properties or preferences. For example, you can mark the completed_onboarding user property as "true" when a user finishes the onboarding workflow.
  • Update tenant. Modify a company's properties. For example, when a workspace upgrades their plan, you can update the tenant's plan_tier property to "Pro."
  • Update object. Modify properties on any object in your environment (e.g. projects, orders, or tasks). For example, when a task is completed, you can update the project's completed_tasks_count so a summary notification shows the right total.
  • Modify workflow. Add or update a property in your workflow's data scope. This allows you to compute a value in an early step (e.g. a personalized recommendation) and use it in later branch or message steps.

Data functions help you turn real-time behavior into structured, reliable data from within a workflow. This ensures records stay enriched and up to date, powers better segmentation and personalization, and enables you to make users eligible to receive other messaging, including guides, broadcasts, or other workflows.

Data functions are available today for all Knock customers. Read more about designing workflows.

Andy Chang
Andy Chang
Feature illustration

Today we're introducing the AI agent function for use in Knock workflows and broadcasts.

How it works

The AI agent function sends a prompt to an AI model of your choice and makes the response available in your workflow state. You can use it to enrich data, personalize messaging, and bring context into your messaging flows.

Common use cases include:

  • Running research to enrich and store user and company data.
  • Personalizing messaging to drive higher conversion rates.
  • Summarizing batch content into concise digests.

AI can help you generate a comprehensive prompt from scratch, or you can choose from one our prompt templates. You can structure your response format using a JSON schema, so your response comes back clean, typed, and ready to use downstream.

When the agent returns a response, it becomes available in workflow run data and can be referenced in subsequent steps and templates. This allows you to store data in Knock or use it to personalize your messaging.

Agent pricing

The AI agent function uses a credit model. Agent usage consumes credits according to your selected model and the number of tokens consumed by your agent.

All Knock plans come with an included amount of credits, after which you can pre-purchase top ups, configure auto-replenishment rules, and set max spend limits for your account.

Get started

The AI agent function is now available for all non-enterprise customers. Developer plans include 500 free credits per month and starter plans include 2,000.

If you are an enterprise customer and want access, please get in touch.

You can learn more in our agent function docs.

Chris Bell
Chris Bell
Feature illustration

The Knock MCP server is now available as a remote server at mcp.knock.app/mcp that you can connect to directly from any MCP client. There's no local installation or Node.js setup required.

To get started, add the server to your MCP client configuration:

{
  "mcpServers": {
    "knock": {
      "url": "https://mcp.knock.app/mcp"
    }
  }
}

When you first use a Knock tool, you'll be prompted to sign in with your Knock account. Full setup instructions are available for Cursor, Claude Desktop, and Claude Code.

OAuth authentication

Previously, connecting to the Knock MCP server required a service token. Service tokens grant broad access to your Knock account and don't distinguish between individual users, which makes it difficult to audit who made changes and to enforce the principle of least privilege.

The MCP server now authenticates through your Knock account via OAuth. Your credentials are managed through the standard sign-in flow, and role-based permissions are automatically applied based on your user profile. This means each team member operates with the appropriate level of access without needing to share or rotate service tokens.

New and updated tools

We've also shipped a set of improvements to the tools available through the MCP server:

  • More granular workflow step tools. All workflow tools now accept environment and channel_key parameters, giving you explicit control over which environment and channel a step targets when creating or updating workflows.
  • Message debugging. Added get_message_delivery_logs and get_message_events tools so you can inspect delivery attempts and the full event timeline for any message. We also fixed an issue with get_user_messages.
  • Email layout tools. Added list_email_layouts and get_email_layout to enable you to discover and inspect email layouts when building email steps.

See the full tools reference for a complete list of available tools.

Chris Bell
Chris Bell
Feature illustration

Today we're introducing the experiment function in Knock to enable A/B testing, gradual rollouts, and more.

The experiment function enables you to split recipients into randomized cohorts within your workflows or broadcasts, routing each recipient down a specific branch based on a percentage-based distribution.

This is useful for:

  • A/B testing. Split recipients into two or more cohorts and compare the results of each. You can test different message formatting, copy, images, and more to measure what performs better.
  • Gradual rollouts. Roll out a new notification strategy to a small percentage of recipients before expanding to all users.
  • Channel experimentation. Test messaging through different channels in parallel to see which drive more engagement from your audience.

How it works

When a workflow executes an experiment function, Knock randomly assigns the recipient to a cohort using the following process:

  • Configuring cohorts. Each experiment starts with two cohorts by default, split 50/50. You can adjust the percentage distribution to control the distribution of recipients or add additional cohorts. The total across all cohorts must equal 100%.
  • Branch execution. Once assigned, the recipient proceeds through the steps defined in their cohort's branch.
  • Observability. Like all Knock workflow functions, you get full visibility into execution through our debugging tools. You'll be able to see exactly which experiment cohort was chosen for each recipient.

The experiment function also supports custom cohort keys. You can assign a cohort key to produce a deterministic assignment, such as ensuring all users within the same tenant follow the same branch. The cohort key defaults to the recipient ID.

Note: Dedicated experiment analytics are coming soon.

The experiment function is available now for all customers. Read more in the documentation.

Connor Lindsey
Connor Lindsey
Feature illustration

Today we're releasing Knock skills, an open-source collection of instructions that extend AI coding agents with Knock expertise. Skills enable your AI agent to help you design notifications, write copy, and work with the Knock CLI to manage your notification resources.

Available skills

The package ships with two skills today:

  • knock-cli. Enables your agent to work with the Knock CLI to pull, push, and validate workflows, email layouts, guides, and partials. It covers CLI installation and authentication, the Knock directory structure, workflow templates (visual blocks and HTML mode), and building reusable email components with partials.
  • notification-best-practices. Comprehensive guidelines for designing and writing effective notifications across all channels, including email, push, SMS, in-app, and chat. It covers channel-specific formatting, copy best practices, system implementation patterns, and template examples for common use cases like signups, payments, collaboration, and alerts.

Installation

You can install the entire skills package with a single command:

npx skills add knocklabs/skills

Or you can can install specific skills by passing a flag:

npx skills add knocklabs/skills --skill knock-cli
npx skills add knocklabs/skills --skill notification-best-practices

Once installed, skills are automatically available to your agent and activated when relevant tasks are detected.

The skills package is open source and available on GitHub.

Chris Bell
Chris Bell
Jeff Everhart
Jeff Everhart
Feature illustration

Today we're sharing a redesigned sources experience in the Knock dashboard.

Knock sources enable you to integrate platforms like Segment, RudderStack, Hightouch, and Census to trigger workflows, identify users, and automate actions.

The new design is available today on the Sources page in the main dashboard sidebar. Here's what's new:

New source setup experience

Connecting a source to Knock is now only two steps.

Improved field mapping experience

A new interface makes it easy to map incoming event data to actions in Knock. You can now view the past events for an event type and connect the action fields directly.

New mapping experience

Improved event observability

An improved logs page makes it easy to see events streaming in, how Knock handles them, and the actions taken as a result.

Workflow mapping improvements

We also upgraded source event trigger steps: view past event shapes, validate mappings inline, and send test events to preview how workflows will run.

These changes are available today for all Knock customers.

Read more about Knock event ingestion through integration sources in our docs.

Mike Carbone
Mike Carbone
Feature illustration

Today we're shipping datetime operators in the conditions builder so you can work with time more easily in your branches and conditions.

The timestamp operators ("is a timestamp before," "is a timestamp on or after," and "is a timestamp between") accept timestamp arguments in three formats:

  • Relative. A time relative to when the condition is evaluated. Relative timestamps include a value, a unit (minutes, hours, days, or weeks), and a modifier ("from now" or "ago"). For example, "7 days ago" or "3 days from now".
  • Absolute. A fixed date and time. In JSON, this is represented in ISO 8601 format (e.g., "2025-06-15T14:30:00Z").
  • Dynamic. A Liquid template variable that resolves to a timestamp at runtime (e.g., {{ recipient.subscription_ends_at }}). Dynamic timestamp arguments are available in workflows, broadcasts, and guides.

With these datetime conditions, you can now:

  • Trigger a reminder workflow when {{ recipient.appointment_date }} is a timestamp on or after 24 hours from now, so users get a reminder email one day before their appointment.
  • Send a CVE alert only when {{ tenant.created_at }} is a timestamp between 2026-01-01T09:00:00Z and 2026-01-15T09:00:00Z, so only tenants onboarded during the affected window receive a sensitive notice.
  • Trigger a trial survey when {{ recipient.trial_ends_at }} is a timestamp on or after 14 days ago, so you only reach out at the right moment.

These operators are available today for all Knock customers. Read more about datetime conditions in the docs.

Meryl Dakin
Meryl Dakin
Kyle McDonald
Kyle McDonald
Andrea Leopardi
Andrea Leopardi
Feature illustration

Today we're shipping Partials 2.0. Partials are pre-built components that can be used across templates to quickly create beautiful messages and ensure brand consistency across every message your team sends.

Here's what’s new:

  • Custom brand attributes. Define brand colors and attributes using vars.branding.* variables. Update your design system in one place and have changes propagate across all templates.
  • Schemas for partial inputs. Partials now support optional input schemas for field types, labels, descriptions, and required flags, so editors can move faster without breaking brand or content guidelines. Schemas are versioned with the partial, making it easy to manage changes over time.
  • JSON object support for partial inputs. Partials now accept JSON objects through markdown inputs. This enables passing complex data like objects and lists instead of only strings.
  • Isolated CSS styles. HTML partials now support isolated <style> tags that inject into the email <head> only when the partial is used. Styles are deduplicated and pollute your root stylesheet.
  • Improved discoverability in the visual editor. All partials are now visible directly in the block editor, with search support to quickly find components.
  • Configurable editor experience. Default blocks (buttons, text, images, etc.) can now be disabled at the account level, limiting editors to use partials to enforce brand consistency.

These improvements are available today for all Knock customers. Read the documentation to learn more about building reusable email components with partials.

Chris Bell
Chris Bell
Feature illustration

Today we're releasing webhook-backed delivery statuses, enabling you to receive delivery status updates directly from your email and SMS providers via webhooks.

Previously, delivery status checks in Knock were only possible via a sophisticated polling mechanism. At high message volumes, this polling had the potential to run into API rate limits imposed by messaging providers. Now, with delivery status webhooks, providers push delivery status changes back to Knock via webhooks. This makes the system more reliable as a whole and not susceptible to rate limits.

With delivery status webhooks enabled for your channels, you can:

  • Track successful deliveries. See when messages are delivered to the recipient's mail server or carrier.
  • Monitor bounces. Get notified when emails bounce due to invalid recipients or domains.
  • Better debugging. Understand delivery issues in real-time to troubleshoot notification problems.

We currently support delivery status webhooks for the following providers:

To get started, configure the webhook endpoint in your provider's dashboard to point to Knock. Each provider has specific setup instructions in our documentation.

Delivery status webhooks are available today for all Knock customers. Read the documentation to learn more about setting up delivery status webhooks for your channels.

Connor Lindsey
Connor Lindsey
Feature illustration

Production write access enables you to create and update content resources in any environment, without requiring promotion from development.

This feature is enabled by default for all new customers. If you're an existing customer, production write access is an opt-in setting. To enable production write access, navigate to the Permissions page under the Admin section of your account settings.

When you enable production write access in your account:

  1. All roles with edit permissions can edit resources in any environment. Owner, admin, and member roles can create and edit content resources (like workflows and guides) directly in production.

  2. The Production-only Member role becomes available. This role gives a user access to the production environment, and no others. It enables non-technical team members to work in production without touching any resources that are managed in development. Learn more about the Production-only Member role.

  3. Content resources can only be edited in the environment in which they were created. This means that any content resources you want to follow your environment lifecycle (create in development, promote to production) are only editable in development. For use cases that don't need the governance of environment promotion, you can create directly in production.

Production write access keeps production-critical resources (like high-volume transactional workflows) version controlled by the development environment, while enabling marketing and product teams to work in a simpler, production-only way for lifecycle journeys and product announcements.

Andy Chang
Andy Chang