Recuperare il timer di un ticket in Zoho Desk è semplice utilizzando la REST API — puoi ottenere sia il record completo del timer sia solo il timer attualmente in esecuzione (attivo) per qualsiasi ticket.
Perché è importante
Quando il tuo team di supporto tiene traccia del tempo dedicato ai ticket, potresti dover leggere i dati del timer in modo programmatico — per dashboard di reportistica, integrazioni di fatturazione o flussi di lavoro automatizzati. Zoho Desk espone endpoint dedicati sia per il timer completo sia per il timer attivo, così puoi scegliere quello più adatto a seconda che tu abbia bisogno di uno snapshot di tutto il tempo registrato o solo di ciò che è attualmente in esecuzione. Come supporto esperto indipendente (non supporto ufficiale Zoho), Beam Help ti guida attraverso entrambe le opzioni di seguito.
---
Procedura passo dopo passo
Passaggio 1. Autenticati e ottieni un access token valido.
Prima di chiamare qualsiasi endpoint di Zoho Desk, la tua integrazione deve disporre di un access token OAuth 2.0 valido. Se il token è scaduto, il sistema utilizzerà il refresh token memorizzato per richiederne automaticamente uno nuovo — il meccanismo di aggiornamento scambia il refreshtoken con l'URL del token usando il tuo clientid e il clientsecret, quindi memorizza l'accesstoken aggiornato e il relativo timestamp di scadenza per le chiamate future. [8]
Passaggio 2. Inizializza il client API di Zoho Desk.
Crea un'istanza di ZohoDeskClient con il tuo dominio API, l'access token corrente e l'ID organizzazione (orgid). Racchiudilo in un'istanza di ZohoDeskApi. Se il tuo orgid non è ancora memorizzato, il client può scoprirlo automaticamente chiamando l'endpoint delle organizzazioni e salvando il primo risultato. [7]
Passaggio 3. Recupera il timer completo del ticket.
Chiama l'endpoint GET /api/v1/tickets/{ticketId}/timer, sostituendo l'identificatore reale del ticket a {ticketId}. In Python, si presenta così:
result = api.get_ticket_timer(ticketId="your_ticket_id")
Il metodo invia una richiesta GET a /api/v1/tickets/{ticketId}/timer e restituisce il record del timer associato a quel ticket. Un parametro opzionale p può contenere argomenti aggiuntivi della query string se necessario. [1]
Passaggio 4. (Alternativa) Recupera solo il timer attivo.
Se ti interessa solo un timer attualmente in esecuzione — ad esempio per visualizzare un indicatore del tempo trascorso in tempo reale — usa invece l'endpoint del timer attivo:
result = api.get_active_timer_for_a(ticketId="your_ticket_id")
Questo invia una richiesta GET a /api/v1/tickets/{ticketId}/activeTimer e restituisce i dati esclusivamente per il timer che è attualmente in stato di esecuzione. [2]
Passaggio 5. Gestisci la risposta.
Entrambi gli endpoint restituiscono un dizionario. Esamina il risultato per i campi del timer come durata, stato e dettagli dell'agente. Se il ticket non ha un timer attivo quando chiami l'endpoint activeTimer, aspettati un payload di dati vuoto o null anziché un errore.
---
Errori comuni
orgidmancante o non aggiornato: Zoho Desk richiede che l'ID organizzazione venga passato come header o parametro in ogni richiesta. Seorgidè vuoto, il client tenterà la scoperta automatica, ma questo aggiunge latenza. Salva sempre l'org_iddopo la prima chiamata riuscita. [7]
- Access token scaduti: I token scadono tipicamente dopo 3.600 secondi. Se ricevi un errore di autenticazione, verifica che la logica di aggiornamento del token stia aggiornando correttamente sia
accesstokensiatokenexpires_atnel tuo archivio dati. [8]
- Confusione tra i due endpoint del timer:
GET .../timerrestituisce il record completo del timer (inclusi i dati storici), mentreGET .../activeTimerrestituisce solo ciò che è attualmente in esecuzione. [1][2] Usare quello sbagliato può produrre risposte vuote che sembrano errori.
- Aggiornamento o reset accidentale: Se hai bisogno di accesso in sola lettura, fai attenzione a non chiamare accidentalmente
PATCH /api/v1/tickets/{ticketId}/timer(che modifica il timer) [4] oPOST /api/v1/tickets/{ticketId}/timer/reset(che lo azzera completamente). [6] Mantieni il metodo HTTP strettamente comeGETper il recupero dei dati.
---
Cosa verificare
- Conferma che il
ticketIdsia valido — verifica che esista nel tuo portale Zoho Desk prima di effettuare la chiamata API, poiché un ID non valido restituirà un errore di risorsa non trovata anziché i dati del timer. - Verifica gli scope OAuth — assicurati che all'access token sia stato concesso lo scope di lettura per il tracciamento del tempo di Desk; gli scope mancanti produrranno un errore di autorizzazione anche con un token valido. [5]
- Esamina la struttura della risposta — verifica che il dizionario restituito contenga i campi del timer attesi prima di passare i dati a valle, poiché un ticket inattivo potrebbe restituire un oggetto timer minimo o vuoto. [1][2]