Listar las actividades de un ticket en Zoho Desk es sencillo una vez que tienes el endpoint correcto y los scopes de OAuth adecuados configurados: una única solicitud GET al sub-recurso de actividades devuelve el registro completo de actividad de cualquier ticket.
Por qué esto es importante
Cada ticket de soporte acumula un historial de cambios de estado, asignaciones de agentes y otros eventos del sistema. Recuperar ese historial de forma programática te permite auditar el historial del ticket, crear paneles personalizados o enviar datos de actividad a flujos de trabajo posteriores. Si estás integrando Zoho Desk con un sistema externo, este endpoint es la forma canónica de obtener esa información sin necesidad de extraerla de la interfaz de usuario.
Paso a paso
Paso 1. Confirma que tus scopes de OAuth incluyen acceso a tickets.
Antes de realizar cualquier llamada a la API, verifica que tu aplicación conectada tenga concedido el scope Desk.tickets.READ (como mínimo). Un permiso más amplio como Desk.tickets.ALL también cumple este requisito. Estos scopes deben declararse al registrar tu cliente OAuth y autorizar la conexión. [2]
Paso 2. Obtén tu ID de organización.
La API de Zoho Desk requiere un encabezado orgId en cada solicitud. Si aún no has almacenado este valor, llama al endpoint de organizaciones para recuperarlo. La primera organización devuelta en el array de respuesta puede usarse como tu orgId de trabajo, y deberías persistirlo para no tener que buscarlo en cada llamada. [8]
Paso 3. Identifica el ID del ticket de destino.
Necesitas el ticketId numérico del ticket cuyas actividades deseas listar. Puedes obtenerlo de una búsqueda o consulta de ticket previa, o directamente desde la URL de la interfaz del agente de Zoho Desk, que sigue el patrón https://desk.zoho.{dc}/agent/{portal}/tickets/details/{TicketId}. [3]
Paso 4. Llama al endpoint de listado de actividades del ticket.
Envía una solicitud HTTP GET a:
GET /api/v1/tickets/{ticketId}/activities
Reemplaza {ticketId} con el identificador real del ticket del Paso 3. La solicitud acepta un parámetro opcional p para paginación o filtrado. Incluye tu token de acceso en el encabezado Authorization y tu orgId en el encabezado orgId. [4]
Un ejemplo mínimo en Python tiene este aspecto:
# Assuming `desk_api` is an initialised ZohoDeskApi instance
activities = desk_api.list_ticket_activities(ticketId="98765", p=None)
print(activities)
El método ejecuta internamente GET /api/v1/tickets/98765/activities y devuelve la respuesta procesada. [4]
Paso 5. Gestiona la paginación si es necesario.
El parámetro p acepta argumentos de paginación. Si el ticket tiene un historial extenso, pasa los valores de página o límite adecuados dentro de ese diccionario para recorrer todos los resultados. [4]
Paso 6. (Opcional) Cruza referencias con tareas.
Las actividades y las tareas son recursos separados en Zoho Desk. Si también necesitas los registros de tareas asociados al ticket, utiliza el endpoint específico:
GET /api/v1/tickets/{ticket_id}/tasks
Esto devuelve objetos de tarea en lugar del registro de actividad, así que mantén las dos llamadas separadas según lo que requiera tu integración. [7]
Errores comunes
- Encabezado
orgIdausente. Zoho Desk rechaza las solicitudes que no incluyen un ID de organización válido. Si tuorgIdalmacenado está vacío, activa el flujo de autodescubrimiento contra el endpoint de organizaciones antes de volver a intentarlo. [8] - Scopes insuficientes. Solicitar actividades con solo
Desk.basic.READgenerará un error de autorización. Asegúrate de queDesk.tickets.READoDesk.tickets.ALLesté presente en tu cadena de scopes. [2] - Confundir actividades con tareas. Los sub-recursos
/activitiesy/tasksno son intercambiables. Las actividades capturan eventos de auditoría generados por el sistema; las tareas son elementos de acción creados por el usuario. Llamar al endpoint incorrecto devolverá un conjunto de resultados vacío o irrelevante. [4][7] - Tokens de acceso caducados. Los tokens de acceso de Zoho tienen una vida útil limitada. Tu integración debe implementar un flujo de actualización de tokens que intercambie el token de actualización almacenado por un nuevo token de acceso cada vez que se reciba una respuesta
401. [8]
Qué verificar
- Lista de scopes: Confirma que
Desk.tickets.READ(oDesk.tickets.ALL) aparece en la cadena de scopes de OAuth utilizada durante la autorización. [2] - ID de ticket correcto: Verifica que el
ticketIden tu solicitud corresponda a un ticket real en tu organización de Zoho Desk; una discrepancia devolverá un error 404 o un array de actividades vacío. [4] - Persistencia del ID de organización: Tras la primera llamada exitosa de descubrimiento de organización, confirma que el
orgIdestá guardado para que las solicitudes posteriores no generen un viaje de ida y vuelta adicional. [8]
---
*Beam Help ofrece soporte experto independiente para productos Zoho y no es el soporte oficial de Zoho. Consulta siempre la documentación de la API de Zoho Desk para conocer las especificaciones más actualizadas de los endpoints.*