Update Ticket
whmcs_update_ticketUpdate WHMCS ticket details including department, subject, priority, status, and assigned staff.
Instructions
Update ticket properties
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ticketid | Yes | Ticket ID | |
| deptid | No | Department ID | |
| subject | No | Subject | |
| userid | No | Assign to client ID | |
| name | No | Name | |
| No | |||
| priority | No | Priority | |
| status | No | Status | |
| flag | No | Flag to admin ID |
Implementation Reference
- src/index.ts:527-550 (registration)Registration of the 'whmcs_update_ticket' tool on the MCP server with input schema definition (ticketid, deptid, subject, userid, name, email, priority, status, flag). The handler calls whmcsClient.updateTicket(params) and returns the result as JSON text.
server.registerTool( 'whmcs_update_ticket', { title: 'Update Ticket', description: 'Update ticket properties', inputSchema: { ticketid: z.number().describe('Ticket ID'), deptid: z.number().optional().describe('Department ID'), subject: z.string().optional().describe('Subject'), userid: z.number().optional().describe('Assign to client ID'), name: z.string().optional().describe('Name'), email: z.string().optional().describe('Email'), priority: z.enum(['Low', 'Medium', 'High']).optional().describe('Priority'), status: z.string().optional().describe('Status'), flag: z.number().optional().describe('Flag to admin ID'), }, }, async (params) => { const result = await whmcsClient.updateTicket(params); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }], }; } ); - src/index.ts:532-543 (schema)Input schema for whmcs_update_ticket tool defining optional fields: ticketid (required number), deptid, subject, userid, name, email, priority (Low/Medium/High), status, flag.
inputSchema: { ticketid: z.number().describe('Ticket ID'), deptid: z.number().optional().describe('Department ID'), subject: z.string().optional().describe('Subject'), userid: z.number().optional().describe('Assign to client ID'), name: z.string().optional().describe('Name'), email: z.string().optional().describe('Email'), priority: z.enum(['Low', 'Medium', 'High']).optional().describe('Priority'), status: z.string().optional().describe('Status'), flag: z.number().optional().describe('Flag to admin ID'), }, }, - src/index.ts:544-549 (handler)Handler function for whmcs_update_ticket - an async arrow function that calls whmcsClient.updateTicket(params) and wraps the result in MCP content response.
async (params) => { const result = await whmcsClient.updateTicket(params); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }], }; } - src/whmcs-client.ts:760-780 (helper)The actual API client method 'updateTicket' in WhmcsApiClient that sends an 'UpdateTicket' action to the WHMCS API with parameters matching the tool's input schema (ticketid, deptid, subject, userid, name, email, cc, priority, status, flag, etc.).
/** * Update ticket status */ async updateTicket(params: { ticketid: number; deptid?: number; subject?: string; userid?: number; name?: string; email?: string; cc?: string; priority?: 'Low' | 'Medium' | 'High'; status?: string; flag?: number; removeattachments?: boolean; message?: string; markdown?: boolean; customfields?: string; }) { return this.call<WhmcsApiResponse & { ticketid: number }>('UpdateTicket', params); }