Beam Help
Richiedi supporto

How-to · Zoho DESK

Come eliminare gli allegati dei ticket in Zoho Desk

Rimuovi file indesiderati dai ticket di supporto in modo programmatico tramite API.

L'eliminazione di un allegato di un ticket in Zoho Desk avviene tramite una chiamata API DELETE che individua l'allegato specifico tramite il suo ID, nell'ambito del ticket padre — e in alcuni casi, di uno specifico thread o bozza di transizione all'interno di quel ticket.


Perché è importante


Quando un file viene allegato a un ticket per errore — versione sbagliata, dati sensibili o semplicemente disordine — è necessario un modo affidabile per rimuoverlo in modo programmatico. Zoho Desk espone diversi endpoint DELETE a seconda di *dove* si trova l'allegato: direttamente sul ticket, all'interno di una risposta in un thread, oppure su una bozza di transizione. Scegliere l'endpoint sbagliato comporterà una richiesta fallita, quindi è importante comprendere la gerarchia.


> Beam Help è un servizio di supporto esperto indipendente per Zoho — non è il supporto ufficiale di Zoho.


---


Procedura passo dopo passo


Passaggio 1. Verifica gli scope OAuth.

Prima di effettuare qualsiasi chiamata di eliminazione, verifica che l'app connessa abbia ricevuto lo scope Desk.tickets.ALL o Desk.tickets.DELETE. Senza lo scope corretto, l'API rifiuterà la richiesta con un errore di autorizzazione. [6]


Passaggio 2. Recupera l'ID dell'allegato.

Se non disponi già dell'attachmentId, chiama prima l'endpoint di elenco. Invia una richiesta GET a /api/v1/tickets/{ticketId}/attachments, passando il ticketId pertinente come parametro di percorso. La risposta includerà l'ID di ciascun allegato, necessario per la chiamata di eliminazione. [7]


Passaggio 3. Elimina un allegato di primo livello del ticket.

Per gli allegati che appartengono direttamente al ticket (non all'interno di un thread), invia una richiesta DELETE a:


DELETE /api/v1/tickets/{ticketId}/attachments/{attachmentId}

Fornisci sia ticketId che attachmentId come parametri di percorso. Una chiamata riuscita rimuove il file dal record del ticket. [1][2]


In Python, la chiamata è la seguente:


client.delete_ticket_attachment(ticketId="123456", attachmentId="987654")

Passaggio 4. Elimina un allegato all'interno di un thread del ticket.

Se il file è stato allegato a una risposta o a un thread specifico all'interno del ticket, devi includere il thread_id nel percorso. Utilizza:


DELETE /api/v1/tickets/{ticket_id}/threads/{thread_id}/attachments/{attachment_id}

Tutti e tre i parametri di percorso — ticketid, threadid e attachment_id — sono obbligatori. Omettere il segmento del thread causerà il fallimento della richiesta o il targeting della risorsa sbagliata. [3]


In Python:


client.delete_attachment(ticket_id="123456", thread_id="111", attachment_id="987654")

Passaggio 5. Elimina un allegato da una bozza di transizione.

Se l'allegato è associato a una bozza di transizione di un blueprint o di un workflow anziché al corpo del ticket o al thread, si applica un endpoint separato:


DELETE /api/v1/tickets/{ticketId}/transitions/{transitionId}/attachments/{attachmentId}

In questo caso sono necessari il ticketId, il transitionId della bozza e l'attachmentId. [4]


In Python:


client.op_16_delete_attachment_of_transition(
    ticketId="123456",
    transitionId="555",
    attachmentId="987654"
)

---


Errori comuni


  • Utilizzare l'endpoint a livello di ticket per gli allegati dei thread. L'endpoint di primo livello DELETE /api/v1/tickets/{ticketId}/attachments/{attachmentId} non individuerà i file con scope limitato a un thread. Abbina sempre l'endpoint alla posizione effettiva dell'allegato. [1][3]

  • Scope mancante o errato. Lo scope Desk.tickets.DELETE deve essere incluso esplicitamente nella configurazione OAuth. Se hai richiesto solo READ o WRITE, le chiamate di eliminazione verranno rifiutate. [6]

  • Confondere gli allegati dei ticket con gli allegati degli account. Esiste un endpoint separato — DELETE /api/v1/accounts/{accountId}/attachments/{attachmentId} — per i file allegati ai record degli account. Non utilizzarlo per i file a livello di ticket. [8]

  • Non recuperare prima l'ID dell'allegato. Inserire manualmente o indovinare gli ID degli allegati non è affidabile. Utilizza sempre l'endpoint di elenco (GET /api/v1/tickets/{ticketId}/attachments) per recuperare l'ID corretto prima di tentare l'eliminazione. [7]

---


Cosa verificare


  • Parametri di percorso corretti: Verifica che ticketId, attachmentId e, dove applicabile, thread_id o transitionId corrispondano tutti a record reali ed esistenti prima di inviare la richiesta. [1][3][4]
  • Copertura dello scope OAuth: Verifica che Desk.tickets.DELETE o Desk.tickets.ALL sia presente nell'elenco degli scope del token attivo. [6]
  • Posizione dell'allegato: Dopo l'eliminazione, riesegui GET /api/v1/tickets/{ticketId}/attachments per confermare che l'allegato non compaia più nella risposta. [7]

Sources cited

  1. [1] DELETE /api/v1/tickets/{ticketId}/attachments/{attachmentId}
  2. [2] DELETE /api/v1/tickets/{ticket_id}/attachments/{attachment_id}
  3. [3] DELETE /api/v1/tickets/{ticket_id}/threads/{thread_id}/attachments/{attachment_id}
  4. [4] DELETE /api/v1/tickets/{ticketId}/transitions/{transitionId}/attachments/{attachmentId}
  5. [5] server.py: build_zoho_links
  6. [6] config.py
  7. [7] GET /api/v1/tickets/{ticketId}/attachments
  8. [8] DELETE /api/v1/accounts/{accountId}/attachments/{attachmentId}
Elimina Allegati Ticket Zoho Desk | Beam Help — Beam Help