Beam Help
Richiedi supporto

How-to · Zoho DESK

Come recuperare il timer di un ticket in Zoho Desk

Recupera i dati del timer attivo o in pausa per qualsiasi ticket tramite API.

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


  • orgid mancante o non aggiornato: Zoho Desk richiede che l'ID organizzazione venga passato come header o parametro in ogni richiesta. Se orgid è vuoto, il client tenterà la scoperta automatica, ma questo aggiunge latenza. Salva sempre l'org_id dopo 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 accesstoken sia tokenexpires_at nel tuo archivio dati. [8]

  • Confusione tra i due endpoint del timer: GET .../timer restituisce il record completo del timer (inclusi i dati storici), mentre GET .../activeTimer restituisce 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] o POST /api/v1/tickets/{ticketId}/timer/reset (che lo azzera completamente). [6] Mantieni il metodo HTTP strettamente come GET per il recupero dei dati.

---


Cosa verificare


  • Conferma che il ticketId sia 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]

Sources cited

  1. [1] GET /api/v1/tickets/{ticketId}/timer
  2. [2] GET /api/v1/tickets/{ticketId}/activeTimer
  3. [3] server.py: build_zoho_links
  4. [4] PATCH /api/v1/tickets/{ticketId}/timer
  5. [5] zoho_oauth.py
  6. [6] POST /api/v1/tickets/{ticketId}/timer/reset
  7. [7] server.py: get_zoho_api
Ottieni il Timer del Ticket | Beam Help — Beam Help