Eliminar un archivo adjunto de un hilo en Zoho Desk mediante la API requiere una solicitud DELETE dirigida al adjunto específico dentro del hilo de un ticket, utilizando tres parámetros de ruta para identificar el recurso con precisión.
Por qué esto es importante
Al crear integraciones o flujos de automatización sobre Zoho Desk, puede que necesites eliminar archivos adjuntos de hilos de tickets de forma programática — por ejemplo, para eliminar archivos sensibles tras su procesamiento, aplicar políticas de retención de datos o limpiar datos de prueba. Conocer el endpoint correcto y la estructura de parámetros evita la eliminación accidental del recurso equivocado. Esta guía cubre específicamente el endpoint con ámbito de hilo y también menciona la variante a nivel de ticket por completitud. Como siempre, Beam Help es soporte experto independiente para Zoho — no somos el soporte oficial de Zoho.
Paso a paso
Paso 1. Reúne los tres identificadores necesarios antes de realizar cualquier llamada a la API: el ticketid del ticket principal, el threadid del hilo específico que contiene el adjunto y el attachment_id del archivo que deseas eliminar. Los tres deben estar presentes en la ruta de la solicitud — omitir cualquiera de ellos apuntará a un recurso diferente o devolverá un error. [1]
Paso 2. Construye tu solicitud DELETE al endpoint de adjuntos de hilo. La ruta completa sigue este patrón:
DELETE /api/v1/tickets/{ticket_id}/threads/{thread_id}/attachments/{attachment_id}
Reemplaza cada marcador de posición con los IDs de cadena reales que recopilaste en el Paso 1. [1]
Paso 3. Envía la solicitud usando tu cliente HTTP preferido o el wrapper del SDK de Zoho Desk. En Python, la llamada tiene este aspecto:
response = client.delete_attachment(
ticket_id="your_ticket_id",
thread_id="your_thread_id",
attachment_id="your_attachment_id"
)
El método emite un DELETE a la URL construida y devuelve el objeto de respuesta de la API. [1]
Paso 4. Comprueba el estado de la respuesta HTTP. Una eliminación exitosa normalmente devuelve un código de estado 2xx. Si recibes una respuesta 4xx, revisa los IDs que proporcionaste — una discrepancia entre el threadid y el ticketid es una causa común de errores 404.
Paso 5. Si tu caso de uso implica eliminar un adjunto que pertenece al ticket en sí en lugar de a un hilo específico, utiliza el endpoint a nivel de ticket:
DELETE /api/v1/tickets/{ticketId}/attachments/{attachmentId}
Esta variante solo requiere ticketId y attachmentId — no se necesita thread_id. [7]
Errores comunes
- Confundir las variantes de endpoint. Zoho Desk expone varios endpoints de eliminación de adjuntos para distintos tipos de recursos: hilos [1], tickets [7], tareas [3], cuentas [4], productos [6], artículos del Help Center [8] y borradores de transición [5]. Usar el endpoint incorrecto para tu tipo de recurso resultará en un error
404o un error de permisos, incluso si el ID del adjunto es correcto.
- Orden incorrecto de los parámetros de ruta. El endpoint de adjuntos de hilo requiere los parámetros en el orden
ticketid → threadid → attachmentid. Intercambiarthreadidyattachment_iden la URL producirá una ruta inválida. [1]
- Eliminar por error un adjunto de borrador de transición. Si un ticket está en medio de una transición (por ejemplo, avanzando por una etapa de blueprint), sus adjuntos de borrador se encuentran bajo una ruta separada que también requiere un
transitionId. Enviar una solicitud estándar de eliminación de hilo no afectará a esos archivos. [5]
Qué verificar
- Confirma que los tres IDs son correctos — verifica que el
threadidpertenece realmente alticketidque especificaste antes de enviar la solicitud. [1] - Verifica el código de estado de la respuesta — asegúrate de haber recibido una respuesta
2xx; cualquier otro resultado significa que el adjunto no fue eliminado y debes inspeccionar el cuerpo del error para obtener detalles. - Confirma el endpoint correcto para tu recurso — si el adjunto está en una tarea, cuenta o producto en lugar de en un hilo de ticket, usa el endpoint correspondiente (
/api/v1/tasks/,/api/v1/accounts/o/api/v1/products/) para evitar una eliminación fallida o mal dirigida. [3][4][6]