Beam Help
Richiedi supporto

How-to · Zoho DESK

Come eliminare una voce di tempo da un ticket in Zoho Desk

Rimuovi le voci di tempo dai ticket tramite API con gli ID del ticket e della voce.

L'eliminazione di una voce di tempo da un ticket in Zoho Desk avviene tramite una singola richiesta DELETE autenticata all'endpoint delle voci di tempo, passando sia l'ID del ticket che l'ID della voce di tempo come parametri di percorso.


Perché è importante


Le voci di tempo registrate sui ticket di supporto alimentano la fatturazione, i report SLA e le metriche di produttività degli agenti. Se una voce è stata registrata per errore — ticket sbagliato, invio duplicato o durata errata — è necessario un modo pulito per rimuoverla senza influire sugli altri record. Questo è rilevante anche quando si automatizza la pulizia del tracciamento del tempo tramite script o integrazioni.


> Nota: Beam Help è un 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 API, verifica che il token dell'app connessa includa lo scope Desk.tickets.ALL o Desk.tickets.DELETE. Senza lo scope corretto, la richiesta verrà rifiutata con un errore di autorizzazione. [2]


Passaggio 2. Identifica i due ID richiesti.

Hai bisogno esattamente di due valori:

  • ticketId — l'identificatore univoco del ticket a cui appartiene la voce di tempo.
  • timeEntryId — l'identificatore univoco della specifica voce di tempo che vuoi rimuovere.

Entrambi sono stringhe. Puoi recuperarli da una precedente chiamata GET all'elenco delle voci di tempo del ticket, oppure dall'URL dell'interfaccia di Zoho Desk. [1]


Passaggio 3. Costruisci la richiesta DELETE.

Invia una richiesta HTTP DELETE al seguente endpoint, sostituendo i tuoi ID reali:


DELETE /api/v1/tickets/{ticketId}/timeEntries/{timeEntryId}

Includi l'intestazione Authorization: Bearer <access_token> e l'intestazione orgId appropriata richiesta dall'API di Zoho Desk. [1]


Passaggio 4. Esegui la chiamata in Python (facoltativo).

Se stai lavorando con un'integrazione Python, la chiamata segue questo schema:


def delete_ticket_time_entry(self, ticketId: str, timeEntryId: str, p: dict = None):
    return self.c.request(
        "DELETE",
        f"/api/v1/tickets/{ticketId}/timeEntries/{timeEntryId}",
        p,
        None
    )

Passa ticketId e timeEntryId come argomenti posizionali; il parametro opzionale p può contenere eventuali parametri di query aggiuntivi richiesti dal tuo ambiente. [1]


Passaggio 5. Gestisci la risposta.

Un'eliminazione riuscita restituisce un HTTP 204 No Content o uno stato di successo simile con un corpo vuoto. Se ricevi una risposta 4xx, verifica nuovamente i tuoi ID e gli scope OAuth prima di riprovare. [1]


---


Errori comuni


  • Tipo di entità errato. Le voci di tempo possono essere associate anche a contatti (/api/v1/contacts/{contactId}/timeEntries/{timeEntryId}) o account (/api/v1/accounts/{accountId}/timeEntries/{timeEntryId}). Assicurati di puntare all'endpoint del ticket e non a uno di questi endpoint analoghi, altrimenti riceverai un errore "non trovato" anche se la voce esiste. [4][8]
  • Scope OAuth insufficiente. Lo scope Desk.tickets.READ da solo non è sufficiente — devi disporre di uno scope che consenta l'eliminazione, come Desk.tickets.DELETE o Desk.tickets.ALL. [2]
  • ID invertiti. Inserire il timeEntryId nella posizione del ticketId (o viceversa) produrrà un errore di risorsa non trovata. Controlla attentamente l'ordine: l'ID del ticket viene prima nel percorso, l'ID della voce di tempo viene secondo. [1]

---


Cosa verificare


  • Copertura degli scope: Conferma che il token OAuth sia stato emesso con Desk.tickets.DELETE o Desk.tickets.ALL prima di effettuare la chiamata. [2]
  • Percorso endpoint corretto: Verifica che l'URL sia /api/v1/tickets/{ticketId}/timeEntries/{timeEntryId} — non la variante per contatti o account. [1][4][8]
  • Codice di risposta corretto: Un 204 (o stato di successo equivalente) conferma la rimozione; qualsiasi valore nell'intervallo 4xx indica che la voce non è stata eliminata e richiede un'indagine. [1]

Sources cited

  1. [1] DELETE /api/v1/tickets/{ticketId}/timeEntries/{timeEntryId}
  2. [2] config.py
  3. [3] server.py: build_zoho_links
  4. [4] DELETE /api/v1/contacts/{contactId}/timeEntries/{timeEntryId}
  5. [5] DELETE /api/v1/tickets/{ticketId}/tags/{tagId}
  6. [6] DELETE /api/v1/ticketTemplates/{templateId}
  7. [7] zoho_oauth.py
  8. [8] DELETE /api/v1/accounts/{accountId}/timeEntries/{timeEntryId}
Elimina Voce di Tempo Ticket | Beam Help — Beam Help