Beam Help
Solicitar ayuda

How-to · Zoho DESK

Cómo obtener el contenido original del correo en Zoho Desk

Recupera el contenido original del correo electrónico desde un hilo de ticket.

Recuperar el contenido de correo electrónico original y sin procesar de un hilo de ticket en Zoho Desk es sencillo una vez que conoces el endpoint correcto de la API y tienes los identificadores adecuados a mano.


Por qué esto es importante


Cuando un ticket de soporte llega por correo electrónico, Zoho Desk almacena tanto una versión procesada como el payload original del correo. Hay ocasiones —depuración de problemas de codificación, auditoría de cabeceras exactas o construcción de integraciones— en las que necesitas esa fuente sin procesar en lugar de la vista de hilo renderizada. Saber cómo llamar al endpoint dedicado te evita tener que hacer scraping de la interfaz o adivinar la estructura de datos.


Paso a paso


Paso 1. Reúne tus identificadores.

Antes de realizar cualquier solicitud, localiza dos valores: el ticketid del ticket que estás investigando y el threadid del hilo de correo electrónico específico dentro de ese ticket. Ambos están disponibles desde la vista de detalle del ticket en Zoho Desk o desde una llamada previa a la API que liste los hilos. [1]


Paso 2. Confirma que tus scopes de OAuth están configurados.

Tu aplicación conectada debe tener autorizado como mínimo Desk.tickets.READ. Sin este scope, la solicitud será rechazada antes de llegar a los datos del hilo. Revisa tu configuración de OAuth y asegúrate de que la lista de scopes incluye Desk.tickets.READ (e idealmente Desk.tickets.ALL para un acceso más amplio). [4]


Paso 3. Asegúrate de que tu cliente de Zoho Desk está inicializado con un org ID válido.

La API de Zoho Desk requiere una cabecera orgId en cada llamada. Si tu integración aún no ha almacenado el ID de organización, realiza una llamada preliminar para recuperar todas las organizaciones, toma el id del primer elemento de la lista devuelta y guárdalo para las solicitudes posteriores. [3]


Paso 4. Llama al endpoint de contenido de correo original.

Realiza una solicitud HTTP GET a:


GET /api/v1/tickets/{ticket_id}/threads/{thread_id}/original

Reemplaza {ticketid} y {threadid} con los valores que recopilaste en el Paso 1. Se puede pasar un parámetro de consulta opcional p para proporcionar opciones adicionales de paginación o filtrado. [1]


En Python, usando un cliente wrapper, la llamada tiene este aspecto:


result = desk_api.get_original_mail_content(
    ticket_id="123456",
    thread_id="789012"
)

El método realiza un GET a la ruta anterior y devuelve el payload de correo sin procesar. [1]


Paso 5. Gestiona la renovación del token de forma elegante.

Los tokens de acceso caducan. Construye tu integración de modo que cuando se devuelva un 401, llame automáticamente al flujo de renovación del token —obteniendo un nuevo accesstoken usando el refreshtoken almacenado— y reintente la solicitud original. Almacena el token renovado y su marca de tiempo de expiración para que las llamadas futuras tengan éxito sin intervención del usuario. [3]


Paso 6. Inspecciona la respuesta.

El cuerpo de la respuesta contiene el contenido de correo original para ese hilo. Analízalo según tu caso de uso: extrayendo cabeceras, partes MIME sin procesar o el cuerpo en texto plano según sea necesario. [1]


---


Errores comunes


  • Org ID ausente. Zoho Desk rechaza las solicitudes que carecen de un ID de organización válido en las cabeceras de la solicitud. Siempre detecta y almacena en caché el org ID en la primera conexión en lugar de asumir que ya está guardado. [3]
  • Scopes insuficientes. Solicitar únicamente Desk.tickets.WRITE sin Desk.tickets.READ impedirá que puedas obtener el contenido del hilo. Revisa cuidadosamente tu cadena de scopes completa — es fácil omitir los permisos de lectura cuando te centras en las operaciones de escritura. [4]
  • Thread ID incorrecto. El thread_id no es lo mismo que el ticket ID. Pasar el ticket ID en ambos campos es un error común; recupera siempre la lista de hilos primero para confirmar el valor correcto. [1]
  • Tokens de acceso caducados. Si tu integración no implementa un callback de renovación de token, las llamadas fallarán silenciosamente después de que el token expire. Implementa la lógica de renovación descrita en el Paso 5 antes de pasar a producción. [3]

---


Qué verificar


  • Verifica que ambos IDs son correctos — confirma que ticketid y threadid corresponden a registros reales en tu portal de Zoho Desk antes de llamar al endpoint. [1]
  • Confirma los scopes de OAuth activos — abre la configuración de tu aplicación OAuth y valida que Desk.tickets.READ (o Desk.tickets.ALL) aparece en la lista de scopes autorizados. [4]
  • Prueba la renovación del token de extremo a extremo — expira o revoca deliberadamente un token de acceso en un entorno de staging y confirma que tu integración se renueva y reintenta correctamente sin intervención manual. [3]

---


*Beam Help es un recurso de soporte experto independiente para usuarios de Zoho — no somos el soporte oficial de Zoho. Para problemas a nivel de plataforma, consulta siempre la documentación oficial de la API de Zoho Desk.*

Sources cited

  1. [1] GET /api/v1/tickets/{ticket_id}/threads/{thread_id}/original
  2. [2] server.py: chat
  3. [3] server.py: get_zoho_api
  4. [4] config.py
  5. [5] server.py: chat_stream
  6. [6] server.py: build_zoho_links
  7. [7] server.py: chat_plan
Obtener Contenido Original del Correo | Beam Help — Beam Help