VX Agents

OpenAPI Marketplace · Customer Support

Zendesk Support Tickets

v1.0.0 · 11 endpoints · 0 connections · shared by vx.ai

Lets an agent run a Zendesk Support queue: search and list tickets, read the conversation, create tickets, and update status, priority, assignee and tags or add a public reply or internal note. It can also look up requesters, views, ticket fields and macros. Curated from Zendesk's official OpenAPI specification.

Connect this API to an AI agent Browse all specs

What you can do with Zendesk Support Tickets via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
GET /api/v2/search searchTickets Search tickets, users or organizations with Zendesk query syntax
GET /api/v2/tickets listTickets List recent tickets
POST /api/v2/tickets createTicket Create a new ticket
GET /api/v2/tickets/{ticket_id} getTicket Get one ticket's details
PUT /api/v2/tickets/{ticket_id} updateTicket Update a ticket or add a public reply / internal note
GET /api/v2/tickets/{ticket_id}/comments listTicketComments Read a ticket's conversation (public replies and internal notes)
GET /api/v2/users/search searchUsers Find users (requesters, agents) by name or email
GET /api/v2/views listViews List ticket views (queues)
GET /api/v2/views/{view_id}/tickets listViewTickets List the tickets in a view
GET /api/v2/ticket_fields listTicketFields List ticket fields, including custom field ids and options
GET /api/v2/macros listMacros List macros (canned responses and actions)

Authentication

zendeskApiToken

HTTP Basic

HTTP Basic auth with a Zendesk API token.

How to get a credential

  1. Sign in to Zendesk as an admin and open Admin Center > Apps and integrations > APIs > Zendesk API.
  2. Turn on Token access and click Add API token; give it a description (e.g. VX Agents) and copy the token (shown once).
  3. Username: {agent email}/token (the literal text /token after the email, e.g. [email protected]/token). Password: the API token.
  4. The agent acts as that user, so use an agent account with access to the groups and tickets it should handle.

Permissions used

Access Operations
Agent (read) listTickets, getTicket, listTicketComments, searchTickets, searchUsers, listViews, listViewTickets, listTicketFields, listMacros
Agent (write tickets) createTicket, updateTicket (status, priority, assignee, tags, public reply or internal note)

Common errors

  • 401 Unauthorized: wrong username format (must end in /token), token deleted, or token access turned off.
  • 403 Forbidden: the user is an end user or lacks access to that ticket's group/brand.
  • 400 / 422 Unprocessable Entity: invalid field value (e.g. unknown status, custom field id, or an empty comment body).
  • 429 Too Many Requests: plan rate limit reached. Wait Retry-After seconds.

Store the email/token pair as a VX Agents Basic credential, and set the subdomain server variable to your Zendesk subdomain.

Usage guide

Setup

  • Credential: HTTP Basic with username [email protected]/token and a Zendesk API token as the password.
  • Set the server variable subdomain to your account (for https://acme.zendesk.com use acme). Requests fail with a DNS/404 error until this is set.
  • Worth pinning as presets: the agent's own user id (for assignee_id) and the group id your team works in.

Triage a ticket queue

  1. Find work: searchTickets with query such as type:ticket status:open assignee:none, type:ticket status<solved priority:urgent, type:ticket requester:[email protected] created>7days, sorted with sort_by=updated_at&sort_order=desc. Or listViews then listViewTickets for an existing queue.
  2. getTicket, then listTicketComments to read the whole conversation (public: false comments are internal notes).
  3. listTicketFields once to learn custom field ids and allowed values; listMacros (active=true) to reuse the team's canned answers.
  4. Draft the reply and show it to the user. After they confirm, updateTicket with {"ticket": {"comment": {"body": "...", "public": true}, "status": "pending"}}. For an internal note use "public": false (no customer email is sent).
  5. Classify in the same call: priority (low/normal/high/urgent), assignee_id or group_id, tags (replaces all tags), custom_fields: [{"id": 123, "value": "x"}].
  6. New issue: searchUsers with query=email to find the requester, then createTicket with subject, comment.body and requester_id (or requester: {name, email}).

Good to know

  • A public comment emails the customer: confirm the text before sending. Confirm before setting status: solved/closed; closed tickets cannot be reopened.
  • Statuses: new, open, pending, hold, solved, closed.
  • Times are ISO 8601 UTC. Search relative dates: created>2026-10-01, updated<3days.
  • Search returns at most 1,000 results (100 per page); follow next_page.
  • tags on update replaces the list; read the current tags first and send the full list.
  • No delete operations by design.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “Zendesk Support Tickets” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs