update_macro
Modify existing Zendesk macros by updating their title, description, or actions to streamline customer support workflows.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Macro ID to update | |
| title | No | Updated macro title | |
| description | No | Updated macro description | |
| actions | No | Updated actions |
Implementation Reference
- src/tools/macros.js:99-120 (handler)The handler function that implements the core logic of the 'update_macro' tool, constructing macro data and calling the Zendesk client to update the macro.handler: async ({ id, title, description, actions }) => { try { const macroData = {}; if (title !== undefined) macroData.title = title; if (description !== undefined) macroData.description = description; if (actions !== undefined) macroData.actions = actions; const result = await zendeskClient.updateMacro(id, macroData); return { content: [{ type: "text", text: `Macro updated successfully!\n\n${JSON.stringify(result, null, 2)}` }] }; } catch (error) { return { content: [{ type: "text", text: `Error updating macro: ${error.message}` }], isError: true }; } }
- src/tools/macros.js:90-98 (schema)Zod schema defining the input parameters for the 'update_macro' tool.schema: { id: z.number().describe("Macro ID to update"), title: z.string().optional().describe("Updated macro title"), description: z.string().optional().describe("Updated macro description"), actions: z.array(z.object({ field: z.string().describe("Field to modify"), value: z.any().describe("Value to set") })).optional().describe("Updated actions") },
- src/server.js:47-52 (registration)Generic registration loop that registers the 'update_macro' tool (included via macrosTools in allTools) with the MCP server.// Register each tool with the server allTools.forEach((tool) => { server.tool(tool.name, tool.schema, tool.handler, { description: tool.description, }); });
- src/zendesk-client.js:178-180 (helper)Helper method in ZendeskClient that performs the API request to update a macro.async updateMacro(id, data) { return this.request("PUT", `/macros/${id}.json`, { macro: data }); }