Kenso

Reply templates

Saved reply bodies you and your agents reuse in the inbox.

Inbox5 endpointsKen-Version: 2026-11-02AuthenticationWorkspacesErrors

Ordered by id. Requires ReadAccess.

Parameters

Name
In
Type
Required
Description
Cursor
In: query
string
optional
Limit
In: query
integer (int32)
optional
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a list of ReplyTemplateModel. Each item has these fields. The response also carries pagination.

Field
Type
Description
id
integer (int64)
name
string
description
string
body
string
authorSource
string
scope
string
createdAt
string (date-time)
updatedAt
string (date-time)
Request
curl -X GET "https://api.ken.so/v1/reply-templates" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": [
    {
      "id": 812,
      "name": "string",
      "description": "string",
      "body": "string",
      "authorSource": "string",
      "scope": "string",
      "createdAt": "2026-09-23T15:02:11Z",
      "updatedAt": "2026-09-23T15:02:11Z"
    }
  ],
  "pagination": {
    "nextCursor": "eyJpZCI6ODE1fQ",
    "hasMore": true,
    "total": 1,
    "isTotalCapped": true
  }
}

Create a reply template

POST/v1/reply-templatesreply-templates.create

Try it on developer.ken.so

The author is the caller: user for a person in the dashboard, agent for an agent, an MCP token or an API key. authorSourceagent only lowers a person to agent. Requires Inbox edit access and the workspace settings permission (owners, admins and editors by default).

Parameters

Name
In
Type
Required
Description
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Request body

application/json, optional.

Field
Type
Required
Description
name
string
optional
description
string
optional
body
string
optional
authorSource
string
optional

Response 201

data is a ReplyTemplateModel.

Field
Type
Description
id
integer (int64)
name
string
description
string
body
string
authorSource
string
scope
string
createdAt
string (date-time)
updatedAt
string (date-time)
Request
curl -X POST "https://api.ken.so/v1/reply-templates" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "string",
  "description": "string",
  "body": "string",
  "authorSource": "string"
}'
Response 201
{
  "success": true,
  "data": {
    "id": 812,
    "name": "string",
    "description": "string",
    "body": "string",
    "authorSource": "string",
    "scope": "string",
    "createdAt": "2026-09-23T15:02:11Z",
    "updatedAt": "2026-09-23T15:02:11Z"
  }
}

Return one reply template in the current workspace

GET/v1/reply-templates/{replyTemplateId}reply-templates.get

Try it on developer.ken.so

A missing or cross-workspace id is not_found. Requires ReadAccess.

Parameters

Name
In
Type
Required
Description
replyTemplateId
In: path
integer (int64)
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a ReplyTemplateModel.

Field
Type
Description
id
integer (int64)
name
string
description
string
body
string
authorSource
string
scope
string
createdAt
string (date-time)
updatedAt
string (date-time)
Request
curl -X GET "https://api.ken.so/v1/reply-templates/812" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": {
    "id": 812,
    "name": "string",
    "description": "string",
    "body": "string",
    "authorSource": "string",
    "scope": "string",
    "createdAt": "2026-09-23T15:02:11Z",
    "updatedAt": "2026-09-23T15:02:11Z"
  }
}

Update a reply template

PATCH/v1/reply-templates/{replyTemplateId}reply-templates.update

Try it on developer.ken.so

Only the fields sent are written; absent fields keep their stored value. JSON null clears description. The author is the caller, as on create, and a person's write records user. An agent, an MCP token or an API key cannot edit a human-written template. Requires Inbox edit access and the workspace settings permission (owners, admins and editors by default).

Parameters

Name
In
Type
Required
Description
replyTemplateId
In: path
integer (int64)
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Request body

application/json, optional: object.

Response 200

data is a ReplyTemplateModel.

Field
Type
Description
id
integer (int64)
name
string
description
string
body
string
authorSource
string
scope
string
createdAt
string (date-time)
updatedAt
string (date-time)
Request
curl -X PATCH "https://api.ken.so/v1/reply-templates/812" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{}'
Response 200
{
  "success": true,
  "data": {
    "id": 812,
    "name": "string",
    "description": "string",
    "body": "string",
    "authorSource": "string",
    "scope": "string",
    "createdAt": "2026-09-23T15:02:11Z",
    "updatedAt": "2026-09-23T15:02:11Z"
  }
}

Delete a reply template

DELETE/v1/reply-templates/{replyTemplateId}reply-templates.delete

Try it on developer.ken.so

Returns 204. The author is the caller, as on create. An agent, an MCP token or an API key cannot delete a human-written template. Requires Inbox edit access and the workspace settings permission (owners, admins and editors by default).

Parameters

Name
In
Type
Required
Description
replyTemplateId
In: path
integer (int64)
required
authorSource
In: query
string
optional
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 204

Request
curl -X DELETE "https://api.ken.so/v1/reply-templates/812" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 204
HTTP/1.1 204 No Content