Lister toutes les approbations attachées à un ticket Zoho Desk se résume à un seul appel API qui retourne chaque enregistrement d'approbation associé à un identifiant de ticket donné — voici exactement comment procéder.
Pourquoi c'est important
Les approbations de tickets dans Zoho Desk représentent des étapes formelles de validation qui peuvent être requises avant qu'un ticket puisse progresser ou être résolu. Si vous construisez une intégration, automatisez un flux de travail ou auditez le statut des approbations sur plusieurs tickets, vous avez besoin d'un moyen fiable de récupérer la liste complète des approbations pour n'importe quel ticket donné. Comprendre le bon endpoint et les scopes OAuth requis garantit que vos requêtes aboutissent sans erreurs de permission.
> Beam Help est une ressource d'assistance experte indépendante pour Zoho — et non le support officiel de Zoho.
---
Étape par étape
Étape 1. Vérifiez que votre token OAuth inclut les scopes Zoho Desk corrects avant d'effectuer toute requête. Vous aurez au minimum besoin de Desk.tickets.READ dans votre ensemble de scopes autorisés, ce qui couvre l'accès en lecture aux ressources liées aux tickets, y compris les approbations. [2]
Étape 2. Identifiez le ticketId du ticket dont vous souhaitez récupérer les approbations. Il s'agit de l'identifiant numérique unique que Zoho Desk attribue à chaque ticket — vous pouvez le trouver dans l'URL du ticket dans le portail agent Desk, qui suit le modèle https://desk.zoho.com/agent/{portal}/tickets/details/{ticketId}. [7]
Étape 3. Envoyez une requête GET vers l'endpoint des approbations, en substituant l'identifiant réel du ticket dans le chemin :
GET /api/v1/tickets/{ticketId}/approvals
Cette opération est identifiée en interne sous le nom list_approvals. L'endpoint accepte ticketId comme paramètre de chemin obligatoire et un paramètre optionnel p pour toute option de requête supplémentaire que vous souhaitez transmettre. [3]
Étape 4. Dans le code, l'appel ressemble à ceci (illustré en Python pour plus de clarté) :
def list_approvals(self, ticketId: str, p: dict = None):
return self.c.request("GET", f"/api/v1/tickets/{ticketId}/approvals", p, None)
Passez l'identifiant du ticket sous forme de chaîne de caractères, et fournissez éventuellement un dictionnaire de paramètres de requête via p si vous avez besoin de filtrer ou de paginer les résultats. [3]
Étape 5. Analysez la réponse. L'API retournera la collection des enregistrements d'approbation liés à ce ticket. Si vous avez besoin des détails complets d'une approbation spécifique de la liste, récupérez son approvalId et effectuez une requête GET séparée vers :
GET /api/v1/tickets/{ticketId}/approvals/{approvalId}
Il s'agit de l'opération get_approval, qui accepte à la fois ticketId et approvalId comme paramètres de chemin. [5]
Étape 6. Si votre flux de travail nécessite d'agir sur une approbation — par exemple, approuver un ticket par programmation — vous pouvez le faire via un POST vers :
POST /api/v1/tickets/{ticketId}/approvals/{approvalId}/approve
Cette opération createapproveticket requiert à la fois les identifiants du ticket et de l'approbation, ainsi que tout payload data pertinent. [4]
---
Erreurs courantes
- Scopes manquants : Si votre token OAuth a été généré sans
Desk.tickets.READ(ou le scope plus largeDesk.tickets.ALL), l'API retournera une erreur d'autorisation. Vérifiez toujours votre liste de scopes avant de déboguer la requête elle-même. [2] - Format d'identifiant de ticket incorrect : Le
ticketIddoit être passé sous forme de chaîne de caractères dans le chemin. Passer directement un type entier sans le convertir peut provoquer des erreurs de construction de requête selon votre client HTTP. [3] - Confusion entre les endpoints liste et détail : L'endpoint
listapprovals(GET /api/v1/tickets/{ticketId}/approvals) retourne une collection, tandis quegetapproval(GET /api/v1/tickets/{ticketId}/approvals/{approvalId}) retourne un seul enregistrement. Utilisez d'abord l'endpoint liste pour découvrir les valeursapprovalIddisponibles, puis explorez les enregistrements individuels selon vos besoins. [3][5] - Création vs. listage : L'endpoint
POST /api/v1/tickets/{ticketId}/approvalssert à *créer* une nouvelle approbation, et non à récupérer les approbations existantes. Envoyer unPOSTalors que vous souhaitiez unGETcréera un enregistrement d'approbation non désiré. [6]
---
Points à vérifier
- Vérification des scopes : Confirmez que
Desk.tickets.READouDesk.tickets.ALLapparaît dans la liste des scopes du token OAuth actif avant d'effectuer l'appel. [2] - Identifiant de ticket correct : Ouvrez le ticket dans le portail agent Zoho Desk et vérifiez que l'identifiant dans l'URL correspond au
ticketIdque vous transmettez à l'endpoint. [7] - Structure de la réponse : Assurez-vous que le corps de la réponse contient un tableau/une liste d'objets d'approbation ; un tableau vide est valide et signifie simplement qu'aucune approbation n'a encore été créée pour ce ticket, tandis qu'un objet d'erreur indique un problème de scope ou de chemin. [3]