Deleting a ticket template in Zoho Desk is accomplished via a single authenticated API call that permanently removes the template by its unique identifier.
Why this matters
Ticket templates help agents pre-fill common fields, but outdated or duplicate templates can clutter the interface and confuse your support team. Knowing how to cleanly remove a template via the Zoho Desk API lets administrators keep their workspace tidy without manual workarounds. This is especially useful when managing templates programmatically across multiple departments or during a Desk configuration audit.
Step-by-step
Step 1. Confirm you have the correct OAuth scopes authorised for your Zoho Desk integration. At a minimum, your token must include Desk.settings.DELETE (and ideally Desk.settings.ALL) to perform destructive operations on settings-level resources such as ticket templates. [2]
Step 2. Retrieve the templateId of the template you want to remove. You can obtain this by listing your ticket templates through the Zoho Desk API and noting the unique identifier returned for the target template. Keep this value handy — it is required in the request path. [1]
Step 3. Send a DELETE request to the ticket templates endpoint, substituting your template's identifier into the path:
DELETE /api/v1/ticketTemplates/{templateId}
This call takes the templateId as a path parameter. No request body is required. [1]
Step 4. If you are working in Python, the call follows this pattern:
def delete_ticket_template(self, templateId: str, p: dict = None):
return self.c.request("DELETE", f"/api/v1/ticketTemplates/{templateId}", p, None)
Pass the template's ID as templateId. The optional p parameter can carry any additional query parameters your environment requires. [1]
Step 5. Check the HTTP response code. A successful deletion will return a 2xx status. Any 4xx response typically indicates either an invalid templateId or insufficient OAuth permissions — revisit Steps 1 and 2 if this occurs. [1]
> Note: If you only need to modify a template rather than remove it entirely, use PATCH /api/v1/ticketTemplates/{templateId} instead, which accepts a data payload with the fields you wish to update. [7]
Common pitfalls
- Wrong scope granted. The most frequent failure is authenticating with a token that lacks
Desk.settings.DELETE. Double-check that your OAuth configuration explicitly includes the settings-level DELETE scope, not justDesk.tickets.DELETE, which covers ticket records rather than configuration objects. [2] - Stale or incorrect
templateId. Template IDs are not human-readable names. Passing a display name or a ticket ID instead of the actual template identifier will result in a404or similar error. Always resolve the ID programmatically before calling the delete endpoint. [1] - Confusing template deletion with other DELETE operations. Zoho Desk exposes several DELETE endpoints — for attachments, tags, and transition drafts — that share a similar structure. Make sure you are targeting
/api/v1/ticketTemplates/{templateId}and not an attachment or tag endpoint. [3][5][6][8]
What to check
- Scope verification: Confirm your active OAuth token includes
Desk.settings.DELETEorDesk.settings.ALLbefore making the call. [2] - Template ID accuracy: Validate the
templateIdby retrieving the template list first and matching the correct record. [1] - Response status: After the DELETE call, verify a
2xxresponse is returned and that the template no longer appears when you list ticket templates. [1]
---
*Beam Help provides independent expert support for Zoho products and is not official Zoho support. Always test destructive API operations in a sandbox or staging environment before running them against your production Zoho Desk instance.*