Listar todas las aprobaciones vinculadas a un ticket de Zoho Desk es una única llamada a la API que devuelve cada registro de aprobación asociado a un ID de ticket determinado — aquí te explicamos exactamente cómo hacerlo.
Por qué esto es importante
Las aprobaciones de tickets en Zoho Desk representan pasos formales de autorización que pueden ser necesarios antes de que un ticket pueda avanzar o resolverse. Si estás creando una integración, automatizando un flujo de trabajo o auditando el estado de aprobaciones en varios tickets, necesitas una forma fiable de recuperar la lista completa de aprobaciones de cualquier ticket. Conocer el endpoint correcto y los scopes de OAuth requeridos garantiza que tus solicitudes se completen sin errores de permisos.
> Beam Help es un recurso de soporte experto independiente para Zoho — no es el soporte oficial de Zoho.
---
Paso a paso
Paso 1. Confirma que tu token de OAuth incluye los scopes correctos de Zoho Desk antes de realizar cualquier solicitud. Como mínimo, necesitarás Desk.tickets.READ en tu conjunto de scopes autorizados, que cubre el acceso de lectura a los recursos relacionados con tickets, incluidas las aprobaciones. [2]
Paso 2. Identifica el ticketId del ticket cuyas aprobaciones deseas recuperar. Este es el identificador numérico único que Zoho Desk asigna a cada ticket — puedes encontrarlo en la URL del ticket dentro del portal de agentes de Desk, que sigue el patrón https://desk.zoho.com/agent/{portal}/tickets/details/{ticketId}. [7]
Paso 3. Envía una solicitud GET al endpoint de aprobaciones, sustituyendo el ID real del ticket en la ruta:
GET /api/v1/tickets/{ticketId}/approvals
Esta operación se identifica internamente como list_approvals. El endpoint acepta ticketId como parámetro de ruta obligatorio y un parámetro opcional p para cualquier opción de consulta adicional que desees pasar. [3]
Paso 4. En código, la llamada tiene este aspecto (mostrado en Python para mayor claridad):
def list_approvals(self, ticketId: str, p: dict = None):
return self.c.request("GET", f"/api/v1/tickets/{ticketId}/approvals", p, None)
Pasa el ID del ticket como cadena de texto y, opcionalmente, proporciona un diccionario de parámetros de consulta como p si necesitas filtrar o paginar los resultados. [3]
Paso 5. Analiza la respuesta. La API devolverá la colección de registros de aprobación vinculados a ese ticket. Si necesitas los detalles completos de una aprobación específica de la lista, toma su approvalId y realiza una solicitud GET separada a:
GET /api/v1/tickets/{ticketId}/approvals/{approvalId}
Esta es la operación get_approval y acepta tanto ticketId como approvalId como parámetros de ruta. [5]
Paso 6. Si tu flujo de trabajo requiere actuar sobre una aprobación — por ejemplo, aprobar un ticket de forma programática — puedes hacerlo mediante un POST a:
POST /api/v1/tickets/{ticketId}/approvals/{approvalId}/approve
Esta operación createapproveticket requiere tanto el ID del ticket como el de la aprobación, además de cualquier payload data relevante. [4]
---
Errores comunes
- Scopes faltantes: Si tu token de OAuth fue generado sin
Desk.tickets.READ(o el más amplioDesk.tickets.ALL), la API devolverá un error de autorización. Verifica siempre tu lista de scopes antes de depurar la solicitud en sí. [2] - Formato incorrecto del ID de ticket: El
ticketIddebe pasarse como cadena de texto en la ruta. Pasar un tipo entero directamente sin convertirlo puede causar errores en la construcción de la solicitud dependiendo de tu cliente HTTP. [3] - Confundir los endpoints de lista y detalle: El endpoint
listapprovals(GET /api/v1/tickets/{ticketId}/approvals) devuelve una colección, mientras quegetapproval(GET /api/v1/tickets/{ticketId}/approvals/{approvalId}) devuelve un único registro. Usa primero el endpoint de lista para descubrir los valores deapprovalIddisponibles y luego profundiza en los registros individuales según sea necesario. [3][5] - Crear vs. listar: El endpoint
POST /api/v1/tickets/{ticketId}/approvalssirve para *crear* una nueva aprobación, no para recuperar las existentes. Enviar unPOSTcuando pretendías unGETcreará un registro de aprobación no deseado. [6]
---
Qué verificar
- Verificación de scopes: Confirma que
Desk.tickets.READoDesk.tickets.ALLaparece en la lista de scopes del token de OAuth activo antes de realizar la llamada. [2] - ID de ticket correcto: Abre el ticket en el portal de agentes de Zoho Desk y confirma que el ID en la URL coincide con el
ticketIdque estás pasando al endpoint. [7] - Estructura de la respuesta: Asegúrate de que el cuerpo de la respuesta contiene un array/lista de objetos de aprobación; un array vacío es válido y simplemente significa que aún no se han creado aprobaciones para ese ticket, mientras que un objeto de error indica un problema de scope o de ruta. [3]