list_tickets
Retrieve and organize Zendesk tickets with pagination and sorting options, enabling efficient ticket management and structured data access for support workflows.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| per_page | No | Number of tickets per page (max 100) | |
| sort_by | No | Field to sort by | |
| sort_order | No | Sort order (asc or desc) |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"page": {
"description": "Page number for pagination",
"type": "number"
},
"per_page": {
"description": "Number of tickets per page (max 100)",
"type": "number"
},
"sort_by": {
"description": "Field to sort by",
"type": "string"
},
"sort_order": {
"description": "Sort order (asc or desc)",
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"type": "object"
}
Implementation Reference
- src/tools/tickets.js:20-40 (handler)The handler function that implements the core logic of the 'list_tickets' tool. It constructs parameters, calls zendeskClient.listTickets, formats the result as JSON text response, and handles errors.handler: async ({ page, per_page, sort_by, sort_order }) => { try { const params = { page, per_page, sort_by, sort_order }; const result = await zendeskClient.listTickets(params); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error listing tickets: ${error.message}` }, ], isError: true, }; } },
- src/tools/tickets.js:9-19 (schema)Zod schema defining the input parameters for the 'list_tickets' tool, including pagination and sorting options.page: z.number().optional().describe("Page number for pagination"), per_page: z .number() .optional() .describe("Number of tickets per page (max 100)"), sort_by: z.string().optional().describe("Field to sort by"), sort_order: z .enum(["asc", "desc"]) .optional() .describe("Sort order (asc or desc)"), },
- src/server.js:31-52 (registration)Registration of all tools including 'list_tickets' from ticketsTools. Tools are collected into allTools array and registered dynamically via server.tool() calls.const allTools = [ ...ticketsTools, ...usersTools, ...organizationsTools, ...groupsTools, ...macrosTools, ...viewsTools, ...triggersTools, ...automationsTools, ...searchTools, ...helpCenterTools, ...supportTools, ...talkTools, ...chatTools, ]; // Register each tool with the server allTools.forEach((tool) => { server.tool(tool.name, tool.schema, tool.handler, { description: tool.description, }); });
- src/zendesk-client.js:77-78 (helper)Helper method in ZendeskClient that performs the actual API request to list tickets, called by the tool handler.async listTickets(params) { return this.request("GET", "/tickets.json", null, params);