---
title: Tools reference
description: Learn more about the tools available in the Knock Agent Toolkit.
section: Developer tools
---

The Knock Agent Toolkit exposes a suite of tools that your AI agents can invoke to power cross-channel user messaging, without any integration logic. You can find the full list of available tools below.

## Channels (`channels`)

- `listChannels`: List all channels in your Knock account

## Commits (`commits`)

- `listCommits`: List all commits in a single environment
- `commitAllChanges`: Commit all changes in an environment
- `promoteAllCommits`: Promote all commits from one environment to another

## Documentation (`documentation`)

- `searchDocumentation`: Perform a search of the Knock documentation

## Email layouts (`emailLayouts`)

- `listEmailLayouts`: List all email layouts in an environment
- `getEmailLayout`: Get an email layout by its key
- `createOrUpdateEmailLayout`: Create or update an email layout in an environment

## Environments (`environments`)

- `listEnvironments`: List all environments in your Knock account

## Guides (`guides`)

- `listGuides`: List all guides available for the given environment
- `getGuide`: Get a guide by its key
- `createOrUpdateGuide`: Create or update a guide

## Message types (`messageTypes`)

- `listMessageTypes`: List all message types in an environment
- `createOrUpdateMessageType`: Create or update a message type in an environment

## Messages (`messages`)

- `getMessage`: Get a message by its ID
- `getMessageContent`: Get the content of a sent message
- `getMessageDeliveryLogs`: Get the delivery logs for a message
- `getMessageEvents`: Get the event timeline for a message

## Objects (`objects`)

- `listObjects`: List all objects in a collection in an environment
- `getObject`: Get an object in a collection by its id
- `createOrUpdateObject`: Create or update an object in a collection
- `subscribeUsersToObject`: Subscribe one or more users to an object in a collection
- `unsubscribeUsersFromObject`: Unsubscribe one or more users from an object in a collection

## Partials (`partials`)

- `listPartials`: List all partials in an environment
- `getPartial`: Get a partial by its key
- `createOrUpdatePartial`: Create or update a partial in an environment

## Tenants (`tenants`)

- `listTenants`: List all tenants in an environment
- `getTenant`: Get a tenant by its key
- `createOrUpdateTenant`: Create or update a tenant in an environment

## Users (`users`)

- `getUser`: Get a user by their id
- `createOrUpdateUser`: Create or update a user in an environment
- `getUserPreferences`: Get the preferences for a user
- `setUserPreferences`: Set the preferences for a user
- `getUserMessages`: Get the messages for a user

## Workflows (`workflows`)

- `listWorkflows`: List all workflows in an environment
- `getWorkflow`: Get a workflow by its key
- `triggerWorkflow`: Trigger a workflow by its key
- `createWorkflow`: Create a new workflow
- `createOneOffWorkflowSchedule`: Create a one-off schedule for a user to trigger a workflow

## Workflow steps (`workflows`)

- `createOrUpdateEmailStepInWorkflow`: Create or update an email step in a workflow
- `createOrUpdateDelayStepInWorkflow`: Create or update a delay step in a workflow
- `createOrUpdateBatchStepInWorkflow`: Create or update a batch step in a workflow
- `createOrUpdateInAppFeedStepInWorkflow`: Create or update an in-app feed step in a workflow
- `createOrUpdatePushStepInWorkflow`: Create or update a push notification step in a workflow
- `createOrUpdateSmsStepInWorkflow`: Create or update an SMS step in a workflow
- `createOrUpdateChatStepInWorkflow`: Create or update a chat step in a workflow
