Beam Help
Get help now

How-to · Zoho DESK

How to get applied blueprint details in Zoho Desk

Retrieve the blueprint configuration applied to a support ticket.

Retrieving the blueprint currently applied to a Zoho Desk ticket is a single authenticated GET request — no body required, just a valid ticket ID and the right OAuth scopes.


Why this matters


Blueprints in Zoho Desk enforce structured workflows on tickets, controlling which transitions agents can take and what data must be captured at each stage. When you're building integrations, automations, or audit tools, you often need to inspect the active blueprint state on a specific ticket — for example, to determine which transition buttons should be shown in a custom portal, or to log the current stage for compliance purposes. This guide (from Beam Help — independent expert support for Zoho, not official Zoho support) walks you through exactly how to do that via the Zoho Desk REST API.


---


Step-by-step


Step 1. Confirm your OAuth scopes are in place.


Before making any API call, verify that your OAuth token includes the necessary Zoho Desk ticket scopes. At minimum you need Desk.tickets.READ in your authorised scope list — broader ticket scopes such as Desk.tickets.ALL also satisfy this requirement. [5]


Step 2. Identify the target ticket ID.


You need the internal Zoho Desk ticketId for the ticket whose blueprint you want to inspect. This is the numeric identifier returned when a ticket is created or listed — not the human-readable ticket number shown in the UI. If you don't have it yet, retrieve it from a prior list or search call.


Step 3. Call the "Get Applied Blueprint Details" endpoint.


Send an HTTP GET request to the following path, substituting your actual ticket ID:


GET /api/v1/tickets/{ticketId}/blueprint

Include your OAuth bearer token in the Authorization header as usual. An optional query-parameter dictionary (p) can be passed if you need to filter or paginate the response, but for most use cases no additional parameters are required. [1]


In Python, using the Zoho Desk client wrapper, the call looks like this:


result = client.op_7_get_applied_blueprint_details(ticketId="1234567890")

The method issues a GET to /api/v1/tickets/{ticketId}/blueprint and returns the parsed response. [1]


Step 4. Parse the response.


The response body contains the blueprint details currently applied to that ticket — including the active transition states and any associated field requirements. Inspect the returned object to find the current stage, available transitions, and any mandatory fields that must be filled before a transition can proceed.


Step 5. (Optional) Cross-reference with the blueprint definition.


If you need the full blueprint schema — all stages, all transitions, all conditions — rather than just the applied state on one ticket, you can fetch the blueprint definition directly using its blueprint ID:


GET /api/v1/blueprints/{blueprintId}

This returns the complete blueprint configuration independent of any specific ticket. [2]


To discover which blueprints exist in a department, you can also list them all:


GET /api/v1/blueprints

This returns every blueprint configured in the department, which is useful for mapping blueprint IDs before drilling into a specific definition. [7]


---


Common pitfalls


  • Wrong ID type. Passing the human-readable ticket number (e.g. #1042) instead of the internal numeric ticketId will result in a 404 or invalid-record error. Always use the system-generated ID. [1]

  • Missing or insufficient OAuth scope. If your token was generated without Desk.tickets.READ (or an equivalent broader scope like Desk.tickets.ALL), the API will return an authorisation error. Re-generate your token with the correct scopes included. [5]

  • Blueprint not applied. If no blueprint has been applied to the ticket, the endpoint may return an empty or null blueprint object rather than an error. Handle this case gracefully in your integration logic rather than assuming a blueprint is always present. [1]

  • Confusing ticket-level vs. definition-level endpoints. The /api/v1/tickets/{ticketId}/blueprint endpoint returns the *applied* state for a specific ticket, while /api/v1/blueprints/{blueprintId} returns the *definition* of a blueprint. These serve different purposes — don't substitute one for the other. [1][2]

---


What to check


  • Scope verification: Confirm your active OAuth token includes Desk.tickets.READ or Desk.tickets.ALL before making the call. [5]
  • Correct ticket ID: Double-check that the ticketId you're passing is the internal system ID, not the display number shown in the Zoho Desk UI. [1]
  • Response handling: Verify your code handles the case where the blueprint field is empty or null, indicating no blueprint is currently applied to that ticket. [1]

Sources cited

  1. [1] GET /api/v1/tickets/{ticketId}/blueprint
  2. [2] GET /api/v1/blueprints/{blueprintId}
  3. [3] GET /api/v1/blueprints/{blueprintId}
  4. [4] server.py: chat
  5. [5] config.py
  6. [6] server.py: build_zoho_links
  7. [7] GET /api/v1/blueprints
  8. [8] run_llm_routing_suite.py