> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended**:
> ```bash
> npx @scalekit-inc/cli setup
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for 40+ agents.
> Features: full-stack-auth, agent-auth, mcp-auth, modular-sso, modular-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Zendesk connector

Connect to Zendesk. Manage customer support tickets, users, organizations, and help desk operations

**Authentication:** API KEY
**Categories:** Customer Support, Communication
1. ### Install the SDK

   
     ### Node.js

```bash frame="terminal"
npm install @scalekit-sdk/node
```

     ### Python

```bash frame="terminal"
pip install scalekit
```

   

   Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

```sh showLineNumbers=false title=".env"
SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
SCALEKIT_CLIENT_ID=<your-client-id>
SCALEKIT_CLIENT_SECRET=<your-client-secret>
```

3. ### Set up the connector

   Register your Zendesk credentials with Scalekit so it can authenticate requests on your behalf. You do this once per environment.

   ## Dashboard setup steps

Register your Zendesk API credentials with Scalekit so it can authenticate requests on your behalf. You'll need your Zendesk subdomain, email address, and an API token from your Zendesk Admin Center.

1. ### Generate an API token

    - In your Zendesk Admin Center, go to **Apps and integrations** → **APIs** → **Zendesk API**.

    - Under **Settings**, enable **Token access**.

      > Image: Zendesk API configuration page with Allow API token access enabled

    - Click **Add API token**, enter a description, and click **Create**.

    - Copy the token — it is only shown once.

2. ### Create a connection

    In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Find **Zendesk** and click **Create**.

3. ### Create a connected account

    Go to **Connected Accounts** for your Zendesk connection and click **Add account**. Fill in the required fields:

    - **Your User's ID** — a unique identifier for the user in your system
    - **Zendesk Domain** — your full Zendesk domain (e.g., `yourcompany.zendesk.com`)
    - **Email Address** — the Zendesk account email address
    - **API Token** — the token you copied in step 1

    - Click **Save**.

      > Image: Add connected account form for Zendesk in Scalekit dashboard

## What you can do

Connect this agent connector to let your agent:

- **List webhooks, view tickets, user identities** — List all webhooks configured for the Zendesk account
- **Update webhook, view, user** — Update an existing webhook's configuration
- **Get webhook, view, view count** — Retrieve a single webhook by ID, including its endpoint, HTTP method, request format, and status
- **Delete webhook, view, user** — Permanently delete a webhook
- **Create webhook, view, user identity** — Create a new webhook to receive Zendesk event notifications at a callback URL
- **Execute view** — Execute a view and return its column titles and ticket rows, as they would render in the Zendesk agent UI

## Common workflows

export const sectionTitle = 'Common workflows'

## Proxy API call

**Don't worry about your Zendesk domain in the path.** Scalekit automatically resolves `{{domain}}` from the connected account's configuration. For example, a request with `path="/v2/users/me"` will be sent to `https://mycompany.zendesk.com/api/v2/users/me` automatically.

  ### Node.js

```typescript
const result = await actions.request({
  connectionName: 'zendesk',
  identifier: 'user_123',
  path: '/v2/users/me',
  method: 'GET',
});
console.log(result);
```

  ### Python

```python
result = actions.request(
    connection_name='zendesk',
    identifier='user_123',
    path="/v2/users/me",
    method="GET"
)
print(result)
```

## Execute a tool

  ### Node.js

```typescript
const result = await actions.executeTool({
  connector: 'zendesk',
  identifier: 'user_123',
  toolName: 'zendesk_groups_list',
  toolInput: {},
});
console.log(result);
```

  ### Python

```python
result = actions.execute_tool(
    tool_input={},
    tool_name='zendesk_groups_list',
    connection_name='zendesk',
    identifier='user_123',
)
print(result)
```

## Tool list

Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first.

## Tool list

### `zendesk_attachment_delete`

Permanently delete an attachment.

Parameters:

- `attachment_id` (`number`, required): The unique numeric identifier of the attachment

### `zendesk_attachment_get`

Retrieve attachment details by ID. Obtain the attachment_id from a ticket comment's attachments list.

Parameters:

- `attachment_id` (`number`, required): The unique numeric identifier of the attachment

### `zendesk_automation_create`

Create a new automation (time-based business rule). Automations run once per day against tickets matching their conditions, which must include at least one time-based condition.

Parameters:

- `actions` (`array`, required): Actions this automation performs when its conditions are met, as a JSON array of {field, value} action objects.
- `conditions` (`object`, required): Conditions that determine when this automation runs, as a JSON object with 'all' and/or 'any' arrays of {field, operator, value} condition objects. Automations require at least one time-based condition (e.g. hours_since_created_at).
- `title` (`string`, required): The title of the automation
- `active` (`boolean`, optional): Whether the automation is active

### `zendesk_automation_delete`

Delete an automation.

Parameters:

- `automation_id` (`number`, required): The unique numeric identifier of the automation to delete

### `zendesk_automation_get`

Retrieve a single automation by ID, including its conditions and actions.

Parameters:

- `automation_id` (`number`, required): The unique numeric identifier of the automation

### `zendesk_automation_update`

Update an existing automation's conditions and actions. Only the fields provided are changed.

Parameters:

- `automation_id` (`number`, required): The unique numeric identifier of the automation to update
- `actions` (`array`, optional): Actions this automation performs when its conditions are met, as a JSON array of {field, value} action objects.
- `active` (`boolean`, optional): Whether the automation is active
- `conditions` (`object`, optional): Conditions that determine when this automation runs, as a JSON object with 'all' and/or 'any' arrays of {field, operator, value} condition objects. Automations require at least one time-based condition (e.g. hours_since_created_at).
- `title` (`string`, optional): The title of the automation

### `zendesk_automations_list`

List the automations configured for the account. Automations run business rules on a recurring schedule based on time-based conditions.

Parameters:

- `active` (`boolean`, optional): Filter by active (true) or inactive (false) automations
- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)

### `zendesk_brand_get`

Retrieve a single brand by ID.

Parameters:

- `brand_id` (`number`, required): The unique numeric identifier of the brand

### `zendesk_brands_list`

List the brands configured for the account, sorted by name.

Parameters:

- `include_deleted` (`boolean`, optional): When true, includes soft-deleted brands in the response

### `zendesk_business_hours_schedules_list`

List all business hours schedules defined in Zendesk. Each schedule includes the configured shift windows (days and hours) your support team operates. Use this to retrieve 24/7 coverage windows and shift data without requiring a Zendesk WFM (Tymeshift) subscription.

### `zendesk_group_create`

Create a new agent group used to organize agents and route tickets.

Parameters:

- `name` (`string`, required): The name of the group
- `description` (`string`, optional): The description of the group
- `is_public` (`boolean`, optional): If true the group is public; if false it is private. Cannot change a private group to public later.

### `zendesk_group_delete`

Permanently delete an agent group.

Parameters:

- `group_id` (`number`, required): The unique numeric identifier of the group

### `zendesk_group_get`

Retrieve a single group by ID.

Parameters:

- `group_id` (`number`, required): The unique numeric identifier of the group
- `include` (`string`, optional): Comma-separated sideloads to include, e.g. users

### `zendesk_group_membership_create`

Assign an agent to a group. Fails with a 422 error if the agent is already a member of the group.

Parameters:

- `group_id` (`number`, required): The ID of the group to assign the agent to
- `user_id` (`number`, required): The ID of the agent to assign
- `default` (`boolean`, optional): If true, tickets assigned directly to the agent assume this membership's group

### `zendesk_group_membership_delete`

Remove an agent from a group. Also schedules a background job to unassign the agent's open tickets in that group.

Parameters:

- `group_membership_id` (`number`, required): The unique numeric identifier of the group membership

### `zendesk_group_memberships_list`

List agent-to-group membership assignments across the account.

Parameters:

- `include` (`string`, optional): Comma-separated sideloads: users, groups
- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)

### `zendesk_group_update`

Update an existing group's name, description, or visibility.

Parameters:

- `group_id` (`number`, required): The unique numeric identifier of the group
- `description` (`string`, optional): The description of the group
- `is_public` (`boolean`, optional): If true the group is public; if false it is private
- `name` (`string`, optional): The name of the group

### `zendesk_groups_list`

List all groups in Zendesk. Groups are used to organize agents and route tickets.

Parameters:

- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of groups per page (max 100)

### `zendesk_guide_search`

Search across Help Center articles, community posts, and external records in a single query. Requires authentication. The filter[locales] parameter is mandatory.

Parameters:

- `filter_locales` (`string`, required): Comma-separated locales to scope the search. At least one valid locale is required.
- `filter_brand_ids` (`string`, optional): Comma-separated brand IDs to limit search scope. Returns results across all brands if omitted.
- `filter_category_ids` (`string`, optional): Comma-separated category IDs to limit search to specific Help Center categories.
- `filter_content_types` (`string`, optional): Comma-separated content types to limit results to: ARTICLE or POST. External records cannot be specified here; use filter_external_source_ids instead.
- `filter_external_source_ids` (`string`, optional): Comma-separated external source IDs to scope results to specific external sources.
- `filter_section_ids` (`string`, optional): Comma-separated section IDs to limit search to specific Help Center sections.
- `filter_topic_ids` (`string`, optional): Comma-separated topic IDs to limit search to specific community topics.
- `page_after` (`string`, optional): Cursor string from the previous response to fetch the next page.
- `page_size` (`integer`, optional): Maximum number of results per page. Default is 10, maximum is 50.
- `query` (`string`, optional): The search text to match. If omitted, results are sorted by internal ordering instead of relevance.

### `zendesk_help_center_article_archive`

Archive (delete) a Help Center article by ID. The article can be restored from the Zendesk Help Center UI.

Parameters:

- `article_id` (`number`, required): The ID of the article to archive.

### `zendesk_help_center_article_comment_create`

Add a comment to a Help Center article. Requires article ID, comment body, and locale.

Parameters:

- `article_id` (`number`, required): The ID of the article to comment on.
- `body` (`string`, required): HTML body of the comment.
- `locale` (`string`, required): Locale for the comment (e.g., en-us).
- `author_id` (`number`, optional): User ID of the comment author (Help Center managers only).
- `notify_subscribers` (`boolean`, optional): Whether to notify article subscribers of the new comment. Default: true.

### `zendesk_help_center_article_comments_list`

List all comments on a Help Center article.

Parameters:

- `article_id` (`number`, required): The ID of the article whose comments to list.
- `include` (`string`, optional): Comma-separated sideloads: users (authors), articles.
- `page` (`integer`, optional): Page number for offset pagination.
- `per_page` (`integer`, optional): Number of results per page (max 100).
- `sort_order` (`string`, optional): Sort direction: asc or desc. Default: desc.

### `zendesk_help_center_article_create`

Create a new Help Center article in a section. Requires a title, locale, and section ID.

Parameters:

- `locale` (`string`, required): Locale for the article (e.g., en-us).
- `section_id` (`number`, required): The ID of the section to create the article in.
- `title` (`string`, required): The title of the article.
- `author_id` (`number`, optional): User ID of the article author.
- `body` (`string`, optional): HTML body content of the article.
- `comments_disabled` (`boolean`, optional): Whether to disable comments on this article.
- `content_tag_ids` (`array`, optional): IDs of existing content tags to attach to the article.
- `draft` (`boolean`, optional): If true, the article is saved as a draft and not published.
- `notify_subscribers` (`boolean`, optional): Set to false to suppress email notifications to article subscribers on creation. Default: true.
- `permission_group_id` (`number`, optional): The permission group that determines who can view this article.
- `promoted` (`boolean`, optional): Whether to pin this article to the top of its section.
- `user_segment_id` (`number`, optional): The user segment that can view this article. Omit for a public article.

### `zendesk_help_center_article_get`

Retrieve a single Help Center article by its ID.

Parameters:

- `article_id` (`number`, required): The ID of the article to retrieve.
- `include` (`string`, optional): Comma-separated sideloads: users, sections, categories, translations.

### `zendesk_help_center_article_labels_list`

List all labels attached to a specific Help Center article.

Parameters:

- `article_id` (`string`, required): The ID of the article to retrieve labels for.
- `page` (`integer`, optional): Page number for offset pagination.
- `per_page` (`integer`, optional): Number of results per page (max 100).

### `zendesk_help_center_article_translation_update`

Update a Help Center article translation's title, body, draft status, or outdated flag for a given locale. This is the only way to edit article content — the article-level update endpoint does not accept title or body.

Parameters:

- `article_id` (`number`, required): The unique ID of the article whose translation to update.
- `locale` (`string`, required): The locale of the translation to update.
- `body` (`string`, optional): New HTML body content for the translation.
- `draft` (`boolean`, optional): If true, saves the translation as a draft and unpublishes it.
- `outdated` (`boolean`, optional): If true, marks the translation as outdated.
- `title` (`string`, optional): New title for the translation.

### `zendesk_help_center_article_update`

Update article-level metadata: promoted status, position, comments setting, labels, and content tags. Does not update title or body — use the Translations API for those.

Parameters:

- `article_id` (`number`, required): The ID of the article to update.
- `comments_disabled` (`boolean`, optional): Whether to disable comments on this article.
- `content_tag_ids` (`array`, optional): IDs of content tags to attach to the article.
- `label_names` (`array`, optional): Labels to assign to the article.
- `position` (`integer`, optional): Position of the article within its section.
- `promoted` (`boolean`, optional): Whether to pin this article to the top of its section.

### `zendesk_help_center_articles_list`

List Help Center articles. Filter by section or category, sort, and paginate results.

Parameters:

- `include` (`string`, optional): Comma-separated sideloads: users, sections, categories, translations.
- `label_names` (`string`, optional): Comma-separated list of labels to filter articles by.
- `page` (`integer`, optional): Page number for offset pagination.
- `per_page` (`integer`, optional): Number of results per page (max 100).
- `sort_by` (`string`, optional): Field to sort by: position, title, created_at, updated_at, or edited_at.
- `sort_order` (`string`, optional): Sort direction: asc or desc.
- `start_time` (`integer`, optional): Unix epoch timestamp to fetch only articles updated after this time (for incremental sync).

### `zendesk_help_center_articles_search`

Search Help Center articles by keyword. Filter by category, section, locale, labels, and date range.

Parameters:

- `brand_id` (`integer`, optional): Scope the search to a specific brand ID.
- `category` (`number`, optional): Filter results to a specific category ID.
- `created_after` (`string`, optional): Limit results to articles created after this date (YYYY-MM-DD).
- `created_at` (`string`, optional): Limit results to articles created on this date (YYYY-MM-DD).
- `created_before` (`string`, optional): Limit results to articles created before this date (YYYY-MM-DD).
- `label_names` (`string`, optional): Comma-separated list of labels to filter by.
- `locale` (`string`, optional): Filter results to a specific locale.
- `multibrand` (`boolean`, optional): Search across all brands when true. Defaults to false.
- `page` (`integer`, optional): Page number for offset pagination.
- `per_page` (`integer`, optional): Number of results per page (max 100).
- `query` (`string`, optional): Full-text search query.
- `section` (`number`, optional): Filter results to a specific section ID.
- `sort_by` (`string`, optional): Sort by relevance, created_at, or updated_at.
- `sort_order` (`string`, optional): Sort direction: asc or desc.
- `updated_after` (`string`, optional): Limit results to articles updated after this date (YYYY-MM-DD).
- `updated_at` (`string`, optional): Limit results to articles updated on this date (YYYY-MM-DD).
- `updated_before` (`string`, optional): Limit results to articles updated before this date (YYYY-MM-DD).

### `zendesk_help_center_categories_list`

List all Help Center categories in your Zendesk account. Returns categories with IDs, names, and positions.

Parameters:

- `include` (`string`, optional): Sideload related data. Use 'translations' to include category translations.
- `page` (`integer`, optional): Page number for offset pagination.
- `per_page` (`integer`, optional): Number of results per page (max 100).
- `sort_by` (`string`, optional): Field to sort by: position, created_at, or updated_at.
- `sort_order` (`string`, optional): Sort direction: asc or desc.

### `zendesk_help_center_category_get`

Retrieve a single Help Center category by its ID.

Parameters:

- `category_id` (`number`, required): The ID of the category to retrieve.
- `include` (`string`, optional): Sideload related data. Use 'translations' to include category translations.

### `zendesk_help_center_labels_list`

List all Help Center labels in the account. Returns label names and article counts. Supports pagination.

Parameters:

- `page` (`integer`, optional): Page number for offset pagination.
- `per_page` (`integer`, optional): Number of results per page (max 100).

### `zendesk_help_center_section_create`

Create a section under a Help Center category. Supply name and locale for a single-locale section, or a translations array for multi-locale (the two patterns are mutually exclusive). Nesting under parent_section_id requires a Guide plan that supports nested sections.

Parameters:

- `category_id` (`number`, required): The unique ID of the category to create the section in.
- `description` (`string`, optional): An optional description of the section.
- `locale` (`string`, optional): The locale for the section. Required when not using translations.
- `manageable_by` (`string`, optional): Who can manage this section.
- `name` (`string`, optional): The name of the section. Required when not using translations.
- `parent_section_id` (`number`, optional): ID of a parent section to nest this section under. Requires a Guide plan that supports nested sections.
- `position` (`integer`, optional): Position of the section within its category for manual ordering.
- `sorting` (`string`, optional): Sort order for articles within this section.
- `theme_template` (`string`, optional): The template this section uses in the Help Center theme.
- `translations` (`array`, optional): Additional locale translations for the section. Each item must have a locale, title, and optional body.
- `user_segment_id` (`number`, optional): The user segment that can view this section. Omit for a public section.

### `zendesk_help_center_section_get`

Retrieve a single Help Center section by its ID.

Parameters:

- `section_id` (`number`, required): The ID of the section to retrieve.
- `include` (`string`, optional): Comma-separated sideloads: 'categories' to include the parent category, 'translations' to include translations.

### `zendesk_help_center_sections_list`

List all Help Center sections. Filter by category to narrow results.

Parameters:

- `include` (`string`, optional): Comma-separated sideloads: 'categories' to include the parent category, 'translations' to include translations.
- `page` (`integer`, optional): Page number for offset pagination.
- `per_page` (`integer`, optional): Number of results per page (max 100).
- `sort_by` (`string`, optional): Field to sort by: position, created_at, or updated_at.
- `sort_order` (`string`, optional): Sort direction: asc or desc.

### `zendesk_macro_apply`

Preview the changes a macro would make without actually applying them. Optionally apply to a specific ticket to preview against its current state.

Parameters:

- `macro_id` (`number`, required): The unique numeric identifier of the macro
- `normalize_comment` (`boolean`, optional): If true, normalizes the macro comment's newline formatting to match the ticket comment editor

### `zendesk_macro_create`

Create a new macro. Actions is a JSON array of {field, value} objects describing what the macro changes on a ticket, e.g. [{"field":"status","value":"solved"},{"field":"comment_value","value":"Thanks for reaching out!"}].

Parameters:

- `actions` (`string`, required): JSON array of {field, value} action objects the macro applies to a ticket
- `title` (`string`, required): The title of the macro
- `active` (`boolean`, optional): Whether the macro is available for use
- `description` (`string`, optional): A description of what the macro does

### `zendesk_macro_delete`

Permanently delete a macro.

Parameters:

- `macro_id` (`number`, required): The unique numeric identifier of the macro

### `zendesk_macro_get`

Retrieve a single macro by ID, including its list of actions.

Parameters:

- `macro_id` (`number`, required): The unique numeric identifier of the macro

### `zendesk_macro_update`

Update an existing macro's title, description, active state, or actions.

Parameters:

- `macro_id` (`number`, required): The unique numeric identifier of the macro
- `actions` (`string`, optional): JSON array of {field, value} action objects the macro applies to a ticket
- `active` (`boolean`, optional): Whether the macro is available for use
- `description` (`string`, optional): A description of what the macro does
- `title` (`string`, optional): The title of the macro

### `zendesk_macros_list`

List the shared and personal macros (canned response/action templates) available to the current user.

Parameters:

- `access` (`string`, optional): Filter by access level
- `active` (`boolean`, optional): Filter by active (true) or inactive (false) macros
- `category` (`number`, optional): Filter macros by category ID
- `group_id` (`number`, optional): Filter macros by group ID
- `only_viewable` (`boolean`, optional): If true, returns only macros that can be applied to tickets
- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)
- `sort_by` (`string`, optional): Field to sort by
- `sort_order` (`string`, optional): asc or desc

### `zendesk_omnichannel_agent_statuses_list`

Get the current Talk availability status for a specific agent. Returns agent state (online, away, offline, transfers_only), call status (on_call, wrap_up), and channel (client or phone). Useful for monitoring individual agent occupancy.

Parameters:

- `agent_id` (`number`, required): The ID of the agent whose availability to retrieve

### `zendesk_omnichannel_agents_list`

List the current availability status for all agents across all channels (voice, chat, email, messaging). Returns each agent's channel capacity, remaining capacity, and current status. Supports filtering by group, skill, channel status (e.g. voice:online), and remaining capacity.

Parameters:

- `filter_agent_id` (`string`, optional): Comma-separated agent IDs to filter by
- `filter_agent_status_name` (`string`, optional): Filter agents by their unified status name (e.g. Online, Offline, Away)
- `filter_channel_status` (`string`, optional): Filter agents by their status on a specific channel. Format: channel:status (e.g. voice:online, messaging:away)
- `filter_group_id` (`string`, optional): Comma-separated group IDs to filter agents by
- `page_after` (`string`, optional): Cursor for fetching the next page of results
- `page_size` (`number`, optional): Maximum number of agents to return per page
- `select_channel` (`string`, optional): Limit availability data to a single channel (e.g. voice, messaging, email)

### `zendesk_organization_create`

Create a new organization. Names must be unique within the account.

Parameters:

- `name` (`string`, required): A unique name for the organization
- `details` (`string`, optional): Any details about the organization, such as its address
- `domain_names` (`array`, optional): Domain names associated with this organization; users signing up with a matching email domain are auto-added
- `group_id` (`number`, optional): New tickets from users in this organization are automatically put in this group
- `notes` (`string`, optional): Any notes you have about the organization
- `shared_comments` (`boolean`, optional): If true, end users in the organization can comment on each other's tickets
- `shared_tickets` (`boolean`, optional): If true, end users in the organization can see each other's tickets
- `tags` (`array`, optional): Tags applied to the organization

### `zendesk_organization_delete`

Permanently delete an organization.

Parameters:

- `organization_id` (`number`, required): The unique numeric identifier of the organization

### `zendesk_organization_get`

Retrieve details of a specific Zendesk organization by ID. Returns organization name, domain names, tags, notes, shared ticket settings, and custom fields.

Parameters:

- `organization_id` (`number`, required): The ID of the organization to retrieve
- `include` (`string`, optional): Additional related data to include (e.g., lookup_relationship_fields)

### `zendesk_organization_membership_create`

Assign a user to an organization. Fails with a 422 error if the user is already assigned to the organization.

Parameters:

- `organization_id` (`number`, required): The ID of the organization to assign the user to
- `user_id` (`number`, required): The ID of the user to assign
- `default` (`boolean`, optional): If true, this becomes the user's default organization

### `zendesk_organization_membership_delete`

Remove a user from an organization. Schedules a background job to clear the organization_id on the user's currently assigned tickets.

Parameters:

- `organization_membership_id` (`number`, required): The unique numeric identifier of the organization membership

### `zendesk_organization_memberships_list`

List user-to-organization membership assignments across the account.

Parameters:

- `include` (`string`, optional): Comma-separated sideloads: users, organizations
- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)

### `zendesk_organization_tickets_list`

List the tickets belonging to a specific Zendesk organization.

Parameters:

- `organization_id` (`number`, required): The unique numeric identifier of the organization
- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (default: 100, max: 100)

### `zendesk_organization_update`

Update an existing organization. Agents without unrestricted permissions can only update the notes field.

Parameters:

- `organization_id` (`number`, required): The unique numeric identifier of the organization
- `details` (`string`, optional): Any details about the organization, such as its address
- `domain_names` (`array`, optional): Domain names for this organization. Overwrites all existing values -- submit the complete list.
- `group_id` (`number`, optional): New tickets from users in this organization are automatically put in this group
- `name` (`string`, optional): A unique name for the organization
- `notes` (`string`, optional): Any notes you have about the organization
- `tags` (`array`, optional): Tags applied to the organization

### `zendesk_organizations_autocomplete`

Return organizations whose name starts with the given substring.

Parameters:

- `name` (`string`, required): Substring to match against the start of an organization's name

### `zendesk_organizations_list`

List all organizations in Zendesk with pagination support.

Parameters:

- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of organizations per page (max 100)

### `zendesk_organizations_search`

Search for an organization by its exact external_id or name (not both at once).

Parameters:

- `external_id` (`string`, optional): The external_id of the organization to find
- `name` (`string`, optional): The exact name of the organization to find

### `zendesk_problems_list`

List tickets of type 'problem'. Problem tickets group together incident tickets that share the same root cause.

### `zendesk_request_create`

Create a new request (ticket) from the requester's point of view. Requires a subject and an initial comment describing the issue.

Parameters:

- `comment_body` (`string`, required): Describes the problem, incident, question, or task
- `subject` (`string`, required): The subject/title of the request
- `collaborators` (`array`, optional): Email addresses to CC on the request
- `priority` (`string`, optional): urgent, high, normal, or low
- `ticket_form_id` (`number`, optional): ID of the ticket form to use (Enterprise accounts only)
- `type` (`string`, optional): question, incident, problem, or task

### `zendesk_request_get`

Retrieve a single request (the customer-facing view of a ticket) by ID.

Parameters:

- `request_id` (`number`, required): The unique numeric identifier of the request (same as the underlying ticket ID)

### `zendesk_request_update`

Add a comment to a request, mark it solved, or add collaborators. This endpoint cannot change other request attributes such as subject or priority.

Parameters:

- `request_id` (`number`, required): The unique numeric identifier of the request
- `additional_collaborators` (`array`, optional): Email addresses to add as collaborators on the request
- `comment_body` (`string`, optional): A comment/reply to add to the request
- `solved` (`boolean`, optional): Mark the request as solved. Only allowed when the request's can_be_solved_by_me property is true.

### `zendesk_requests_list`

List the requester's own tickets (requests). End users see only their own requests; agents/admins can use this to review the customer-facing view of a ticket.

Parameters:

- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)
- `sort_by` (`string`, optional): updated_at or created_at
- `sort_order` (`string`, optional): asc or desc

### `zendesk_requests_search`

Search requests by keyword and filters such as organization or status. Example: query=printer&status=hold,open.

Parameters:

- `organization_id` (`number`, optional): Restrict results to requests from this organization
- `query` (`string`, optional): Search text; combine with other filters as query string values
- `status` (`string`, optional): Comma-separated list of statuses to filter by, e.g. hold,open

### `zendesk_satisfaction_ratings_list`

List CSAT satisfaction ratings with optional filters. Returns score (good/bad), comment, reason, ticket ID, and timestamps for each rating.

Parameters:

- `end_time` (`number`, optional): Unix timestamp to filter ratings created before this time
- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of results per page
- `schema_version` (`string`, optional): Version of the tool schema
- `score` (`string`, optional): Filter by satisfaction score
- `start_time` (`number`, optional): Unix timestamp to filter ratings created after this time
- `tool_version` (`string`, optional): Version of the tool

### `zendesk_satisfaction_reasons_list`

List all satisfaction reasons configured for negative (bad) CSAT ratings. Used to analyze why customers rate support interactions poorly.

Parameters:

- `schema_version` (`string`, optional): Version of the tool schema
- `tool_version` (`string`, optional): Version of the tool

### `zendesk_search_tickets`

Search Zendesk tickets using a query string. Supports Zendesk's search syntax (e.g., 'type:ticket status:open'). per_page has a hard ceiling of 100 — setting it higher to try to fetch more results per call fails with 'Requested response size was greater than Search Response Limits'. Separately, Zendesk limits total search results to 1,000 — the maximum valid page is floor(1000 / per_page) (e.g., per_page=100 → max page 10, per_page=25 → max page 40). Stop paginating when next_page is null or you reach the max page; requesting beyond either limit returns a 400 error.

Parameters:

- `query` (`string`, required): Search query string using Zendesk search syntax (e.g., 'type:ticket status:open assignee:me')
- `include` (`string`, optional): Comma-separated list of additional data to sideload with results. Supported values: users, groups, organizations, tickets.
- `page` (`number`, optional): Page number for pagination. Max valid page = floor(1000 / per_page). Do not exceed this — Zendesk returns a 400 error beyond the 1,000 result limit.
- `per_page` (`number`, optional): Number of results per page (max 100). Determines the max page ceiling: floor(1000 / per_page). Higher values mean fewer pages but a lower max page number.
- `sort_by` (`string`, optional): Field to sort results by (updated_at, created_at, priority, status, ticket_type)
- `sort_order` (`string`, optional): Sort direction: asc or desc (default: desc)

### `zendesk_side_conversation_get`

Retrieve a specific side conversation on a Zendesk ticket by its ID. Returns the side conversation's state, subject, participants, preview text, and timestamps. Requires the Collaboration add-on.

Parameters:

- `side_conversation_id` (`string`, required): The ID of the side conversation to retrieve
- `ticket_id` (`number`, required): The ID of the parent ticket
- `include` (`string`, optional): Sideloads to include alongside the response. Use 'side_conversation_events' to include the full event history of the side conversation.

### `zendesk_side_conversations_list`

List all side conversations on a Zendesk ticket. Returns side conversations including their state, subject, participants, and preview text. Requires the Collaboration add-on.

Parameters:

- `ticket_id` (`number`, required): The ID of the ticket whose side conversations to list
- `include` (`string`, optional): Sideloads to include alongside the response. Use 'side_conversation_events' to include the full event history for each side conversation.

### `zendesk_sla_policies_list`

List all SLA policy definitions including policy name, conditions, and filter criteria. Requires Professional or Enterprise plan.

Parameters:

- `schema_version` (`string`, optional): Version of the tool schema
- `tool_version` (`string`, optional): Version of the tool

### `zendesk_sla_policy_get`

Retrieve a single SLA policy by ID, including its filter conditions and per-metric targets. Requires Professional or Enterprise plan.

Parameters:

- `sla_policy_id` (`number`, required): The unique numeric identifier of the SLA policy

### `zendesk_support_addresses_list`

List the support (recipient) email addresses configured for the account.

Parameters:

- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)

### `zendesk_suspended_ticket_recover`

Recover a suspended ticket into a real ticket. The requester is set to the authenticated agent rather than the original requester.

Parameters:

- `id` (`number`, required): The unique numeric identifier of the suspended ticket

### `zendesk_suspended_tickets_list`

List tickets that Zendesk has flagged as spam or otherwise suspended before they became real tickets.

Parameters:

- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)
- `sort_by` (`string`, optional): author_email, cause, created_at, or subject
- `sort_order` (`string`, optional): asc or desc

### `zendesk_tags_list`

List up to the 20,000 most popular tags used across the Zendesk account in the last 60 days, ordered by decreasing popularity.

Parameters:

- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)

### `zendesk_talk_account_overview`

Get a high-level overview of Talk voice call activity for the current day. Returns total inbound calls, total outbound calls, and other account-wide call metrics. Data covers midnight to now in your account's timezone. Filter by phone number IDs to scope to specific lines.

Parameters:

- `phone_number_ids` (`string`, optional): Comma-separated list of phone number IDs to filter results by (up to 100 IDs)

### `zendesk_talk_agents_activity`

Get current-day Talk voice call activity broken down per agent. Returns calls accepted, calls missed, calls denied, talk time, and other live metrics for each agent. Data reflects the current day from midnight in your account timezone. Filter by group to narrow results.

Parameters:

- `group_ids` (`string`, optional): Comma-separated list of group IDs to filter agents by (up to 100 IDs)

### `zendesk_talk_agents_overview`

Get aggregated Talk performance metrics for all agents for the current day. Returns per-agent counts of accepted, missed, and declined calls, average handle time, and talk time. Data covers midnight to now in the account timezone. Use this to assess agent-level call performance without requiring Talk Professional/Enterprise.

### `zendesk_talk_call_legs_list`

List individual call legs from Zendesk Talk. Each call can have multiple legs (e.g., the customer leg and the agent leg). Returns leg status (accepted, missed, declined), duration, agent, and timestamps.

Parameters:

- `start_time` (`number`, required): Unix timestamp (seconds since epoch) to start the incremental query from. Required by Zendesk — the incremental legs endpoint will reject requests without this field.
- `agent_id` (`number`, optional): Filter call legs by a specific agent ID
- `end_time` (`number`, optional): Unix timestamp (seconds since epoch) to end the incremental query at.
- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of call legs to return per page (max 100)
- `status` (`string`, optional): Filter by leg status: accepted, missed, or declined

### `zendesk_talk_calls_list`

List voice calls from Zendesk Talk. Returns inbound and outbound call records with details such as duration, status, agent, phone number, and timestamps. Use filters to narrow by direction, date range, or agent.

Parameters:

- `agent_id` (`number`, optional): Filter calls by a specific agent ID
- `direction` (`string`, optional): Filter by call direction: inbound or outbound
- `end_time` (`string`, optional): Filter calls that ended before this ISO 8601 timestamp
- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of calls to return per page (max 100)
- `start_time` (`string`, optional): Filter calls that started after this ISO 8601 timestamp

### `zendesk_ticket_audits_get`

Retrieve the full audit trail for a specific ticket including all field changes, status transitions, comments, and timestamps.

Parameters:

- `ticket_id` (`number`, required): The ID of the ticket to retrieve audits for
- `page_after` (`string`, optional): Cursor for next page.
- `page_size` (`integer`, optional): Number of records per page. Maximum 100.
- `schema_version` (`string`, optional): Version of the tool schema
- `sort_order` (`string`, optional): Sort order for audit events.
- `tool_version` (`string`, optional): Version of the tool

### `zendesk_ticket_audits_list`

List audit trail events across all tickets including field changes, status transitions, assignment changes, and timestamps. Useful for tracking time-in-status and escalation paths.

Parameters:

- `page_after` (`string`, optional): Cursor for next page (cursor-based pagination).
- `page_before` (`string`, optional): Cursor for previous page (cursor-based pagination).
- `page_size` (`integer`, optional): Number of records per page. Maximum 100.
- `schema_version` (`string`, optional): Version of the tool schema
- `tool_version` (`string`, optional): Version of the tool

### `zendesk_ticket_collaborators_list`

List the users who are CC'd as collaborators on a Zendesk ticket. Requires the CCs and Followers feature to be enabled.

Parameters:

- `ticket_id` (`number`, required): The unique numeric identifier of the ticket

### `zendesk_ticket_comments_list`

Retrieve all comments (public replies and internal notes) for a specific Zendesk ticket. Returns comment body, author, timestamps, and attachments.

Parameters:

- `ticket_id` (`number`, required): The ID of the ticket whose comments to list
- `include` (`string`, optional): Sideloads to include. Accepts 'users' to list email CCs.
- `include_inline_images` (`boolean`, optional): When true, inline images are listed as attachments (default: false)
- `sort_order` (`string`, optional): Sort direction for comments: asc or desc (default: asc)

### `zendesk_ticket_create`

Create a new support ticket in Zendesk. Requires a comment/description and optionally a subject, priority, assignee, and tags.

Parameters:

- `comment_body` (`string`, required): The description or first comment of the ticket
- `assignee_email` (`string`, optional): Email of the agent to assign the ticket to
- `priority` (`string`, optional): Ticket priority: urgent, high, normal, or low
- `status` (`string`, optional): Ticket status: new, open, pending, hold, solved, or closed
- `subject` (`string`, optional): The subject/title of the ticket
- `tags` (`array`, optional): List of tags to apply to the ticket
- `type` (`string`, optional): Ticket type: problem, incident, question, or task

### `zendesk_ticket_delete`

Permanently delete a Zendesk ticket. This moves the ticket to the deleted tickets queue; agents with permission can restore it before it is purged. This action cannot be undone through this tool.

Parameters:

- `ticket_id` (`number`, required): The unique numeric identifier of the ticket

### `zendesk_ticket_field_create`

Create a new custom ticket field. For 'multiselect' or 'tagger' fields, supply custom_field_options as a JSON array of {name, value} objects.

Parameters:

- `title` (`string`, required): The title of the ticket field
- `active` (`boolean`, optional): Whether this field is available
- `custom_field_options` (`string`, optional): JSON array of options for 'tagger'/'multiselect' fields, e.g. [{"name":"Small","value":"small"}]
- `description` (`string`, optional): Describes the purpose of the field to end users
- `position` (`number`, optional): The relative position of the field among other ticket fields
- `required` (`boolean`, optional): Whether agents must enter a value for this field to change a ticket's status to solved
- `tag` (`string`, optional): For checkbox fields, the tag applied to tickets when the checkbox is checked
- `type` (`string`, optional): The type of ticket field. Defaults to text when not specified.
- `visible_in_portal` (`boolean`, optional): Whether this field is visible to end users in the help center

### `zendesk_ticket_field_get`

Retrieve a single ticket field by ID, including its type, title, and (for dropdown/multiselect fields) its options.

Parameters:

- `ticket_field_id` (`number`, required): The unique numeric identifier of the ticket field
- `creator` (`boolean`, optional): If true, includes creator_user_id and creator_app_name on app-created fields

### `zendesk_ticket_field_update`

Update an existing custom ticket field. The field's type cannot be changed after creation. For dropdown/multiselect fields, custom_field_options must list every option you want to keep -- omitted options are removed.

Parameters:

- `ticket_field_id` (`number`, required): The unique numeric identifier of the ticket field
- `active` (`boolean`, optional): Whether this field is available
- `custom_field_options` (`string`, optional): JSON array of every option to keep for 'tagger'/'multiselect' fields, e.g. [{"id":123,"name":"Small","value":"small"}]
- `description` (`string`, optional): Describes the purpose of the field to end users
- `position` (`number`, optional): The relative position of the field among other ticket fields
- `required` (`boolean`, optional): Whether agents must enter a value for this field to change a ticket's status to solved
- `title` (`string`, optional): The title of the ticket field
- `visible_in_portal` (`boolean`, optional): Whether this field is visible to end users in the help center

### `zendesk_ticket_fields_list`

List all system and custom ticket fields defined in the Zendesk account.

Parameters:

- `creator` (`boolean`, optional): If true, includes creator_user_id and creator_app_name on app-created fields
- `locale` (`string`, optional): Return title_in_portal as a dynamic content variant for this locale

### `zendesk_ticket_followers_list`

List the agents who follow a Zendesk ticket and receive updates about it. Requires the CCs and Followers feature to be enabled.

Parameters:

- `ticket_id` (`number`, required): The unique numeric identifier of the ticket

### `zendesk_ticket_form_create`

Create a new ticket form made up of an ordered set of ticket fields.

Parameters:

- `name` (`string`, required): The internal name of the ticket form
- `active` (`boolean`, optional): Whether the form is active
- `display_name` (`string`, optional): The name shown to end users. Defaults to name if omitted.
- `end_user_visible` (`boolean`, optional): Whether the form is visible to end users
- `position` (`number`, optional): The position of this form relative to other forms
- `ticket_field_ids` (`array`, optional): Ordered array of ticket field IDs to include on this form

### `zendesk_ticket_form_get`

Retrieve a single ticket form by ID, including the ordered list of ticket field IDs it contains.

Parameters:

- `ticket_form_id` (`number`, required): The unique numeric identifier of the ticket form

### `zendesk_ticket_form_update`

Update an existing ticket form's name, visibility, or the ticket fields it contains.

Parameters:

- `ticket_form_id` (`number`, required): The unique numeric identifier of the ticket form
- `active` (`boolean`, optional): Whether the form is active
- `display_name` (`string`, optional): The name shown to end users
- `end_user_visible` (`boolean`, optional): Whether the form is visible to end users
- `name` (`string`, optional): The internal name of the ticket form
- `position` (`number`, optional): The position of this form relative to other forms
- `ticket_field_ids` (`array`, optional): Ordered array of ticket field IDs to include on this form

### `zendesk_ticket_forms_list`

List the ticket forms configured for the Zendesk account. End users only see forms with end_user_visible set to true.

Parameters:

- `active` (`boolean`, optional): true returns only active forms, false returns only inactive forms
- `end_user_visible` (`boolean`, optional): true returns only end-user-visible forms, false returns only hidden forms
- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page

### `zendesk_ticket_get`

Retrieve details of a specific Zendesk ticket by ID. Returns ticket properties including status, priority, subject, requester, assignee, and timestamps.

Parameters:

- `ticket_id` (`number`, required): The ID of the ticket to retrieve
- `include` (`string`, optional): Comma-separated list of sideloads to include (e.g., users, groups, organizations)

### `zendesk_ticket_merge`

Merge one or more source tickets into a target ticket. Comments from the source tickets are copied into the target ticket and any attachments are copied over. Queues a background job; poll the returned job_status URL to confirm completion.

Parameters:

- `ticket_id` (`number`, required): The ID of the ticket that other tickets will be merged into
- `ticket_ids` (`array`, required): Array of ticket IDs to merge into the target ticket
- `source_comment` (`string`, optional): Comment added to the source ticket(s) explaining the merge
- `source_comment_is_public` (`boolean`, optional): Whether the comment on the source ticket(s) is public
- `target_comment` (`string`, optional): Comment added to the target ticket explaining the merge
- `target_comment_is_public` (`boolean`, optional): Whether the comment on the target ticket is public

### `zendesk_ticket_metric_events`

Incrementally export ticket metric events (reply times, agent work times, requester wait times) for time-series analysis. Returns event-level granularity for SLA compliance tracking.

Parameters:

- `start_time` (`number`, required): Unix timestamp to start incremental export from
- `exclude_deleted` (`boolean`, optional): When true, removes metric events tied to deleted tickets.
- `include_changes` (`boolean`, optional): When true, includes additional change data for more accurate incremental results.
- `per_page` (`number`, optional): Number of results per page
- `schema_version` (`string`, optional): Version of the tool schema
- `tool_version` (`string`, optional): Version of the tool

### `zendesk_ticket_metrics_get`

Retrieve ticket metrics for a specific ticket including reply time, resolution time, wait times, reopen count, and assignee/group station counts.

Parameters:

- `ticket_id` (`number`, required): The ID of the ticket to retrieve metrics for
- `schema_version` (`string`, optional): Version of the tool schema
- `tool_version` (`string`, optional): Version of the tool

### `zendesk_ticket_metrics_list`

List ticket metrics for all tickets in the Zendesk account. Returns first reply time, resolution time, agent wait time, requester wait time, reply count, and reopen count.

Parameters:

- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of results per page
- `schema_version` (`string`, optional): Version of the tool schema
- `tool_version` (`string`, optional): Version of the tool

### `zendesk_ticket_related_get`

Return related information for a ticket, such as counts of linked incidents, the associated problem ticket ID, and follow-up ticket IDs.

Parameters:

- `ticket_id` (`number`, required): The unique numeric identifier of the ticket

### `zendesk_ticket_reply`

Add a public reply or internal note to a Zendesk ticket. Set public to false for internal notes visible only to agents.

Parameters:

- `body` (`string`, required): The reply message content (plain text, markdown supported)
- `ticket_id` (`number`, required): The ID of the ticket to reply to
- `public` (`boolean`, optional): Whether the comment is public (true) or an internal note (false). Defaults to true.

### `zendesk_ticket_tags_add`

Add one or more tags to a ticket without removing its existing tags.

Parameters:

- `tags` (`array`, required): Tags to add to the ticket's existing tags
- `ticket_id` (`number`, required): The unique numeric identifier of the ticket

### `zendesk_ticket_tags_delete`

Remove specific tags from a ticket, leaving any other tags untouched.

Parameters:

- `tags` (`string`, required): Comma-separated list of tags to remove from the ticket
- `ticket_id` (`number`, required): The unique numeric identifier of the ticket

### `zendesk_ticket_tags_list`

List the tags currently applied to a Zendesk ticket.

Parameters:

- `ticket_id` (`number`, required): The unique numeric identifier of the ticket

### `zendesk_ticket_tags_set`

Replace all tags on a ticket with the given set of tags. Any tags not included in the list are removed from the ticket.

Parameters:

- `tags` (`array`, required): The full list of tags the ticket should have after this call
- `ticket_id` (`number`, required): The unique numeric identifier of the ticket

### `zendesk_ticket_update`

Update an existing Zendesk ticket. Change status, priority, assignee, subject, tags, or any other writable ticket field.

Parameters:

- `ticket_id` (`number`, required): The ID of the ticket to update
- `assignee_email` (`string`, optional): Email of the agent to assign the ticket to
- `assignee_id` (`number`, optional): ID of the agent to assign the ticket to
- `group_id` (`number`, optional): ID of the group to assign the ticket to
- `priority` (`string`, optional): Ticket priority: urgent, high, normal, or low
- `status` (`string`, optional): Ticket status: new, open, pending, hold, solved, or closed
- `subject` (`string`, optional): New subject/title for the ticket
- `tags` (`array`, optional): List of tags to set on the ticket (replaces existing tags)
- `type` (`string`, optional): Ticket type: problem, incident, question, or task

### `zendesk_tickets_count`

Return an approximate count of tickets in the account. If the count exceeds 100,000 it refreshes only once every 24 hours.

### `zendesk_tickets_list`

List tickets in Zendesk with sorting and pagination. Returns tickets for the authenticated agent's account.

Parameters:

- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of tickets per page (max 100)
- `sort_by` (`string`, optional): Field to sort by: created_at, updated_at, priority, status, ticket_type
- `sort_order` (`string`, optional): Sort direction: asc or desc (default: desc)

### `zendesk_trigger_create`

Create a new ticket trigger (event-based business rule) with conditions and actions. Triggers run immediately when a ticket is created or updated and its conditions match.

Parameters:

- `actions` (`array`, required): Actions this trigger performs when its conditions are met, as a JSON array of {field, value} action objects.
- `conditions` (`object`, required): Conditions that determine when this trigger fires, as a JSON object with 'all' and/or 'any' arrays of {field, operator, value} condition objects.
- `title` (`string`, required): The title of the trigger
- `active` (`boolean`, optional): Whether the trigger is active
- `category_id` (`string`, optional): ID of the trigger category to group this trigger under
- `description` (`string`, optional): A description of what the trigger does

### `zendesk_trigger_delete`

Delete a ticket trigger.

Parameters:

- `trigger_id` (`number`, required): The unique numeric identifier of the trigger to delete

### `zendesk_trigger_get`

Retrieve a single ticket trigger by ID, including its conditions and actions.

Parameters:

- `trigger_id` (`number`, required): The unique numeric identifier of the trigger

### `zendesk_trigger_update`

Update an existing ticket trigger's conditions and actions. Only the fields provided are changed.

Parameters:

- `trigger_id` (`number`, required): The unique numeric identifier of the trigger to update
- `actions` (`array`, optional): Actions this trigger performs when its conditions are met, as a JSON array of {field, value} action objects.
- `active` (`boolean`, optional): Whether the trigger is active
- `category_id` (`string`, optional): ID of the trigger category to group this trigger under
- `conditions` (`object`, optional): Conditions that determine when this trigger fires, as a JSON object with 'all' and/or 'any' arrays of {field, operator, value} condition objects.
- `description` (`string`, optional): A description of what the trigger does
- `title` (`string`, optional): The title of the trigger

### `zendesk_triggers_list`

List the ticket triggers configured for the account. Triggers run business rules automatically when a ticket is created or updated.

Parameters:

- `active` (`boolean`, optional): Filter by active (true) or inactive (false) triggers
- `category_id` (`string`, optional): Filter triggers by category ID
- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)
- `sort_by` (`string`, optional): alphabetical, created_at, updated_at, usage_1h, usage_24h, or usage_7d
- `sort_order` (`string`, optional): asc or desc

### `zendesk_user_create`

Create a new user in Zendesk. Can create end-users (customers), agents, or admins. Email is required for end-users.

Parameters:

- `name` (`string`, required): Full name of the user
- `email` (`string`, optional): Primary email address of the user
- `organization_id` (`number`, optional): ID of the organization to associate the user with
- `phone` (`string`, optional): Primary phone number (E.164 format, e.g. +15551234567)
- `role` (`string`, optional): User role: end-user, agent, or admin. Defaults to end-user.
- `verified` (`boolean`, optional): Whether the user's identity is verified. Defaults to false.

### `zendesk_user_delete`

Soft-delete a user and their associated records. Deleted users are not recoverable through the API; a further permanent-delete step is needed for GDPR compliance.

Parameters:

- `user_id` (`number`, required): The unique numeric identifier of the user

### `zendesk_user_get`

Retrieve details of a specific Zendesk user by ID. Returns user profile including name, email, role, organization, and account status.

Parameters:

- `user_id` (`number`, required): The ID of the user to retrieve
- `include` (`string`, optional): Comma-separated list of sideloads to include

### `zendesk_user_identities_list`

List the identities (email addresses, phone numbers, social logins) associated with a user.

Parameters:

- `user_id` (`number`, required): The unique numeric identifier of the user

### `zendesk_user_identity_create`

Add a new identity (email, phone number, or social login) to a user's profile.

Parameters:

- `type` (`string`, required): The kind of identity to add
- `user_id` (`number`, required): The unique numeric identifier of the user
- `value` (`string`, required): The identity value, e.g. an email address or phone number
- `skip_verify_email` (`boolean`, optional): If true, does not send a verification email for the new identity

### `zendesk_user_related_get`

Return related information for a user, such as counts of open tickets they requested, CC'd tickets, and assigned tickets.

Parameters:

- `user_id` (`number`, required): The unique numeric identifier of the user

### `zendesk_user_update`

Update an existing Zendesk user's profile, role, or moderation state.

Parameters:

- `user_id` (`number`, required): The unique numeric identifier of the user
- `email` (`string`, optional): The user's primary email address
- `external_id` (`string`, optional): A unique identifier from another system
- `name` (`string`, optional): The user's full name
- `notes` (`string`, optional): Any notes you want to store about the user
- `organization_id` (`number`, optional): ID of the organization to associate the user with
- `phone` (`string`, optional): The user's primary phone number in E.164 format
- `role` (`string`, optional): end-user, agent, or admin
- `suspended` (`boolean`, optional): If true, the user is suspended and cannot sign in or submit tickets
- `tags` (`array`, optional): The user's tags
- `verified` (`boolean`, optional): Whether the user's identity is verified

### `zendesk_users_autocomplete`

Return users whose name starts with the given substring, or that match a phone number. Only returns users with no foreign identities.

Parameters:

- `filter` (`string`, optional): Restrict results to assignable or requester users
- `name` (`string`, optional): Name substring to search for. Specify name or phone.
- `per_page` (`number`, optional): Number of results to return
- `phone` (`string`, optional): Phone number to search for. Specify name or phone.

### `zendesk_users_list`

List users in Zendesk. Filter by role (end-user, agent, admin) with pagination support.

Parameters:

- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of users per page (max 100)
- `role` (`string`, optional): Filter by role: end-user, agent, or admin
- `sort` (`string`, optional): Field to sort by. Prefix with - for descending (e.g. -created_at)

### `zendesk_users_search`

Search for users matching a query string or an exact external_id.

Parameters:

- `external_id` (`string`, optional): Exact external_id to match (does not support search syntax)
- `page` (`number`, optional): Page number to retrieve
- `per_page` (`number`, optional): Results per page (max 100)
- `query` (`string`, optional): Zendesk search syntax; can match a partial or full value of any user property

### `zendesk_view_count_get`

Return the approximate ticket count for a single view. Rate limited to 5 requests per minute per view per agent.

Parameters:

- `view_id` (`string`, required): The numeric view ID, or one of the aliases 'incoming', 'my', 'my_groups'

### `zendesk_view_create`

Create a new ticket view (saved filter).

Parameters:

- `conditions` (`object`, required): Conditions that determine which tickets appear in this view, as a JSON object with 'all' and/or 'any' arrays of {field, operator, value} condition objects.
- `title` (`string`, required): The title of the view
- `active` (`boolean`, optional): Whether the view is active
- `execution` (`object`, optional): Optional display configuration for the view's results: columns, grouping, and sorting.

### `zendesk_view_delete`

Delete a view.

Parameters:

- `view_id` (`string`, required): The unique numeric identifier of the view to delete

### `zendesk_view_execute`

Execute a view and return its column titles and ticket rows, as they would render in the Zendesk agent UI.

Parameters:

- `view_id` (`string`, required): The numeric view ID, or one of the aliases 'incoming', 'my', 'my_groups'
- `group_by` (`string`, optional): The ticket field title or custom field ID used for grouping
- `sort_by` (`string`, optional): The ticket field title or custom field ID used for sorting
- `sort_order` (`string`, optional): asc or desc

### `zendesk_view_get`

Retrieve a single view by ID. Also accepts the string aliases 'incoming', 'my', or 'my_groups' for built-in views.

Parameters:

- `view_id` (`string`, required): The numeric view ID, or one of the aliases 'incoming', 'my', 'my_groups'

### `zendesk_view_tickets_list`

List the tickets that currently match a view's conditions.

Parameters:

- `view_id` (`string`, required): The numeric view ID, or one of the aliases 'incoming', 'my', 'my_groups'
- `sort_by` (`string`, optional): A view column to sort or group by (subject and submitter are not supported)
- `sort_order` (`string`, optional): asc or desc

### `zendesk_view_update`

Update an existing view's conditions. Only the fields provided are changed.

Parameters:

- `view_id` (`string`, required): The unique numeric identifier of the view to update
- `active` (`boolean`, optional): Whether the view is active
- `conditions` (`object`, optional): Conditions that determine which tickets appear in this view, as a JSON object with 'all' and/or 'any' arrays of {field, operator, value} condition objects.
- `execution` (`object`, optional): Optional display configuration for the view's results: columns, grouping, and sorting.
- `title` (`string`, optional): The title of the view

### `zendesk_views_list`

List ticket views in Zendesk. Views are saved filters for organizing tickets by status, assignee, tags, and more.

Parameters:

- `access` (`string`, optional): Filter by access level: personal, shared, or account
- `page` (`number`, optional): Page number for pagination
- `per_page` (`number`, optional): Number of views per page (max 100)
- `sort_by` (`string`, optional): Field to sort by: title, updated_at, created_at, or position
- `sort_order` (`string`, optional): Sort direction: asc or desc

### `zendesk_webhook_create`

Create a new webhook to receive Zendesk event notifications at a callback URL. The webhook can be invoked directly from a trigger/automation action, or automatically via subscriptions.

Parameters:

- `endpoint` (`string`, required): The destination URL the webhook sends requests to
- `http_method` (`string`, required): The HTTP method used to call the endpoint
- `name` (`string`, required): A display name for the webhook
- `request_format` (`string`, required): The format of the request body sent to the endpoint
- `authentication` (`object`, optional): Authentication Zendesk should use when calling the endpoint
- `custom_headers` (`object`, optional): Additional custom HTTP headers to send with every webhook request
- `description` (`string`, optional): A description of what the webhook is for
- `status` (`string`, optional): Whether the webhook is active or inactive
- `subscriptions` (`array`, optional): System event types this webhook should be automatically invoked for, if any

### `zendesk_webhook_delete`

Permanently delete a webhook.

Parameters:

- `webhook_id` (`string`, required): The unique identifier of the webhook to delete

### `zendesk_webhook_get`

Retrieve a single webhook by ID, including its endpoint, HTTP method, request format, and status.

Parameters:

- `webhook_id` (`string`, required): The unique identifier of the webhook

### `zendesk_webhook_update`

Update an existing webhook's configuration. Only the fields provided are changed.

Parameters:

- `webhook_id` (`string`, required): The unique identifier of the webhook to update
- `authentication` (`object`, optional): Authentication Zendesk should use when calling the endpoint
- `custom_headers` (`object`, optional): Additional custom HTTP headers to send with every webhook request
- `description` (`string`, optional): A description of what the webhook is for
- `endpoint` (`string`, optional): The destination URL the webhook sends requests to
- `http_method` (`string`, optional): The HTTP method used to call the endpoint
- `name` (`string`, optional): A display name for the webhook
- `request_format` (`string`, optional): The format of the request body sent to the endpoint
- `status` (`string`, optional): Whether the webhook is active or inactive
- `subscriptions` (`array`, optional): System event types this webhook should be automatically invoked for, if any

### `zendesk_webhooks_list`

List all webhooks configured for the Zendesk account. Supports filtering by name or status, sorting, and cursor-based pagination.

Parameters:

- `name_contains` (`string`, optional): Only return webhooks whose name contains this substring
- `page_after` (`string`, optional): Cursor for the next page of results
- `page_before` (`string`, optional): Cursor for the previous page of results
- `page_size` (`integer`, optional): Number of webhooks to return per page (max 100)
- `sort` (`string`, optional): Field and direction to sort results by
- `status` (`string`, optional): Filter webhooks by status


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
