L'eliminazione di un allegato di un thread in Zoho Desk tramite API richiede una richiesta DELETE che punta all'allegato specifico all'interno del thread di un ticket, utilizzando tre parametri di percorso per identificare con precisione la risorsa.
Perché è importante
Quando si creano integrazioni o flussi di lavoro di automazione su Zoho Desk, potrebbe essere necessario rimuovere programmaticamente gli allegati dai thread dei ticket — ad esempio, per eliminare file sensibili dopo l'elaborazione, applicare policy di conservazione dei dati o ripulire dati di test. Conoscere l'endpoint corretto e la struttura dei parametri evita l'eliminazione accidentale della risorsa sbagliata. Questa guida tratta specificamente l'endpoint con scope di thread e menziona anche la variante a livello di ticket per completezza. Come sempre, Beam Help è un supporto esperto indipendente per Zoho — non siamo il supporto ufficiale Zoho.
Procedura passo dopo passo
Passaggio 1. Raccogli i tre identificatori richiesti prima di effettuare qualsiasi chiamata API: il ticketid del ticket padre, il threadid del thread specifico che contiene l'allegato e l'attachment_id del file che vuoi rimuovere. Tutti e tre devono essere presenti nel percorso della richiesta — omettere anche solo uno di essi punterà a una risorsa diversa o restituirà un errore. [1]
Passaggio 2. Costruisci la tua richiesta DELETE verso l'endpoint degli allegati del thread. Il percorso completo segue questo schema:
DELETE /api/v1/tickets/{ticket_id}/threads/{thread_id}/attachments/{attachment_id}
Sostituisci ogni segnaposto con gli ID stringa effettivi raccolti nel Passaggio 1. [1]
Passaggio 3. Invia la richiesta utilizzando il client HTTP preferito o il wrapper SDK di Zoho Desk. In Python, la chiamata si presenta così:
response = client.delete_attachment(
ticket_id="your_ticket_id",
thread_id="your_thread_id",
attachment_id="your_attachment_id"
)
Il metodo invia una DELETE all'URL costruito e restituisce l'oggetto risposta dell'API. [1]
Passaggio 4. Controlla lo stato della risposta HTTP. Un'eliminazione riuscita restituisce tipicamente un codice di stato 2xx. Se ricevi una risposta 4xx, verifica gli ID forniti — una mancata corrispondenza tra threadid e ticketid è una causa comune di errori 404.
Passaggio 5. Se il tuo caso d'uso prevede la rimozione di un allegato che appartiene al ticket stesso anziché a un thread specifico, utilizza invece l'endpoint a livello di ticket:
DELETE /api/v1/tickets/{ticketId}/attachments/{attachmentId}
Questa variante richiede solo ticketId e attachmentId — non è necessario alcun thread_id. [7]
Errori comuni
- Confondere le varianti di endpoint. Zoho Desk espone diversi endpoint per l'eliminazione degli allegati per diversi tipi di risorse: thread [1], ticket [7], attività [3], account [4], prodotti [6], articoli dell'Help Center [8] e bozze di transizione [5]. Utilizzare l'endpoint sbagliato per il tipo di risorsa restituirà un
404o un errore di autorizzazione, anche se l'ID allegato è corretto.
- Ordine errato dei parametri di percorso. L'endpoint degli allegati del thread richiede i parametri nell'ordine
ticketid → threadid → attachmentid. Invertirethreadideattachment_idnell'URL produrrà un percorso non valido. [1]
- Eliminazione accidentale di un allegato di una bozza di transizione. Se un ticket è in fase di transizione (ad esempio, in movimento attraverso una fase di blueprint), i suoi allegati in bozza si trovano in un percorso separato che richiede anche un
transitionId. L'invio di una richiesta standard di eliminazione del thread non influirà su quei file. [5]
Cosa verificare
- Conferma che tutti e tre gli ID siano corretti — verifica che il
threadidappartenga effettivamente alticketidspecificato prima di inviare la richiesta. [1] - Verifica il codice di stato della risposta — assicurati di aver ricevuto una risposta
2xx; qualsiasi altro codice significa che l'allegato non è stato eliminato e dovresti esaminare il corpo dell'errore per i dettagli. - Conferma l'endpoint corretto per la tua risorsa — se l'allegato si trova su un'attività, un account o un prodotto anziché su un thread di ticket, utilizza l'endpoint corrispondente (
/api/v1/tasks/,/api/v1/accounts/o/api/v1/products/) per evitare un'eliminazione fallita o indirizzata erroneamente. [3][4][6]