La récupération des tickets dans Zoho Desk nécessite une connexion OAuth valide, un identifiant d'organisation résolu et le client API correct initialisé pour le type d'application desk — tout cela est géré automatiquement par notre intégration une fois votre connexion établie.
Pourquoi c'est important
Les tickets Zoho Desk (tickets d'assistance) sont rattachés à un contexte d'organisation spécifique, de sorte que tout appel de récupération doit inclure le bon org_id ainsi qu'un jeton d'accès actif. Si votre jeton a expiré ou si votre identifiant d'organisation n'a jamais été enregistré, l'appel API échouera silencieusement ou renverra une erreur d'autorisation. Comprendre le flux complet vous aide à diagnostiquer rapidement les problèmes — et en tant que Beam Help (support expert indépendant pour Zoho, et non le support officiel de Zoho), nous souhaitons rendre ce flux transparent.
Étape par étape
Étape 1. Confirmez qu'un enregistrement de connexion Zoho existe pour votre compte utilisateur. Le système recherche vos identifiants dans la table zohoconnections à l'aide de votre userid. Si aucun enregistrement n'est trouvé, le processus de récupération ne peut pas démarrer et None est retourné immédiatement — vous devrez vous reconnecter via OAuth avant de continuer. [2]
Étape 2. Assurez-vous que votre jeton d'accès est toujours valide. La couche de connexion vérifie si l'heure actuelle se situe dans les 120 secondes de la valeur tokenexpiresat enregistrée. Si c'est le cas, un rafraîchissement proactif est déclenché à l'aide de votre refreshtoken avant toute demande de données de ticket, réduisant ainsi le risque d'une erreur 401 en cours de requête. Le accesstoken rafraîchi et l'expiration mise à jour sont automatiquement réécrits dans la base de données. [2]
Étape 3. Initialisez le client API avec apptype défini sur "desk". Cela indique au système d'instancier un ZohoDeskClient plutôt que la variante CRM. Le client est construit à l'aide de votre apidomain enregistré, du accesstoken actuel, de votre deskorgid et d'un rappel tokenrefresher capable d'obtenir silencieusement un nouveau jeton en cours de session si nécessaire. [1]
Étape 4. Laissez le système découvrir automatiquement votre identifiant d'organisation s'il n'est pas déjà enregistré. Lorsque deskorgid est vide, l'intégration appelle getallorganizations et lit le champ id du premier élément de la liste data retournée. Cette valeur découverte est ensuite persistée afin que les appels futurs ignorent entièrement l'étape de découverte. [1]
Étape 5. Une fois le client prêt, émettez votre appel d'outil de récupération de tickets. Dans le flux de chat ou de planification, le nom d'outil approprié (par exemple getrecords ciblant le module Cases) est transmis à executetoolwithrepair, qui exécute la requête et retourne des résultats structurés. Le système émet également un message de statut tel que "Calling Zoho tool: <toolname>..." afin que vous puissiez confirmer que l'appel est en cours. [^3,5]
Étape 6. Inspectez la charge utile retournée. Les résultats réussis sont renvoyés sous forme de dictionnaire contenant les enregistrements de tickets. Le système génère également des liens contextuels à l'aide de vos valeurs dc (centre de données), deskorgid et desk_portal afin que vous puissiez naviguer directement vers les enregistrements correspondants dans l'interface Zoho Desk. [3]
Étape 7. Si vous testez le flux de récupération directement (en contournant l'interface de chat), le chemin d'appel direct récupère l'enregistrement de connexion le plus récemment créé dans la base de données et construit sa propre fermeture token_refresher avant d'invoquer l'outil. Confirmez qu'au moins une ligne de connexion existe avant d'exécuter des tests directs. [4]
Pièges courants
orgidmanquant : Sideskorg_idest une chaîne vide et que l'appel de découverte automatique échoue également (par exemple, en raison de portées OAuth insuffisantes), chaque appel API Desk ultérieur sera rejeté. Vérifiez que vos portées OAuth incluent l'accès au point de terminaison des organisations Desk. [1]- Jeton de rafraîchissement périmé : La méthode
refreshtokensattend unrefreshtokenvalide dans le corps de la requête, accompagné de votreclientidetclientsecret. Si le jeton de rafraîchissement a été révoqué (par exemple, l'utilisateur s'est ré-autorisé depuis une session différente), la réponse contiendra une cléerrorplutôt queaccess_token, et la connexion sera marquée comme inutilisable. [6] - Mauvais
apptype: Passerapptype="crm"lorsque vous souhaitez récupérer des tickets Desk instanciera le client CRM à la place, et les points de terminaison spécifiques aux tickets ne seront pas disponibles. Confirmez toujours que le paramètreapp_typecorrespond au produit que vous interrogez. [1] - Aucune ligne de connexion dans les tests directs : Le harnais de test d'appel direct sélectionne la ligne de connexion insérée le plus récemment. Si la base de données est vide ou si la ligne a été supprimée, l'appel retourne
{"error": "No Zoho connection found"}immédiatement. [4]
Ce qu'il faut vérifier
- Vérifiez que
zohoconnectionscontient une ligne pour votre utilisateur avec undeskorgidnon vide et une valeurtokenexpires_atdans le futur. [^1,2] - Confirmez que vos portées OAuth ont été accordées avec
accesstype=offlineetprompt=consentafin qu'unrefreshtokensoit inclus dans la réponse d'échange de jeton initial. [6] - Après une récupération réussie, vérifiez que la charge utile retournée contient une liste
dataavec au moins un objet de ticket, et que les liens Desk générés référencent le bon sous-domainedesk_portalpour votre compte. [3]