Beam Help
Demander de l'aide

How-to · Zoho DESK

Comment récupérer un profil dans Zoho Desk

Obtenez des informations détaillées sur un profil utilisateur spécifique.

La récupération d'un profil dans Zoho Desk nécessite une connexion OAuth valide, un identifiant d'organisation résolu et un client API correctement initialisé — une seule erreur sur ces éléments et l'appel échouera silencieusement ou retournera une erreur 401.


Pourquoi c'est important


Lorsque vous devez extraire des données de profil d'agent, de contact ou de compte depuis Zoho Desk — que ce soit pour un workflow de support, une automatisation ou un tableau de bord de reporting — la chaîne de récupération doit être configurée dans le bon ordre. Des identifiants manquants ou obsolètes, ou un org_id non découvert, sont les deux raisons les plus fréquentes pour lesquelles les recherches de profil ne retournent rien. En tant que support expert indépendant pour Zoho (et non le support officiel de Zoho), Beam Help vous guide à travers la séquence complète ci-dessous.


---


Étape par étape


Étape 1. Vérifiez que l'utilisateur dispose d'une connexion Zoho active.


Avant qu'un appel à l'API Desk puisse aboutir, le système doit localiser un enregistrement de connexion stocké pour l'utilisateur. La connexion est récupérée depuis la table zohoconnections à l'aide du userid. Si aucun enregistrement n'existe, toute la chaîne de récupération retourne None et rien ne peut se poursuivre. [7]


Étape 2. Rafraîchissez le jeton d'accès s'il est proche de l'expiration.


La couche de connexion vérifie si l'heure actuelle se situe dans les 120 secondes précédant tokenexpiresat. Si c'est le cas, elle appelle ZohoOAuth.refreshtokens() avec le refreshtoken stocké, écrit le nouveau access_token et la nouvelle expiration dans la base de données, puis continue avec les identifiants rafraîchis. Cela évite les erreurs 401 en cours de requête lors de la récupération du profil. [7]


Étape 3. Initialisez le client Zoho Desk avec app_type = "desk".


Passez "desk" comme valeur de apptype lors de l'appel à getzohoapi. Cela oriente la logique vers la création d'un ZohoDeskClient — plutôt qu'un client CRM — en utilisant le apidomain, le accesstoken et le orgid stockés. Une instance ZohoDeskApi est ensuite construite par-dessus ce client. [1]


Étape 4. Découvrez automatiquement l'identifiant d'organisation s'il n'est pas déjà stocké.


Si deskorgid est vide dans l'enregistrement de connexion, le système appelle automatiquement api.getallorganizations(). Il inspecte le payload retourné — en vérifiant à la fois un format de liste data et un format de liste brute — extrait l'id de la première organisation et le persiste dans zohoconnections sous la colonne deskorg_id. Le client actif est également mis à jour immédiatement afin que la requête en cours puisse continuer sans redémarrage. [1][6]


Étape 5. Résolvez le portail/sous-domaine si nécessaire.


Parallèlement à l'identifiant d'organisation, le système peut également avoir besoin de découvrir l'identifiant du portail Desk. Il vérifie des champs tels que urlName, subDomain, portalName et id dans la réponse du centre d'aide, stocke la première valeur non vide en tant que desk_portal et met à jour l'enregistrement de connexion. [5]


Étape 6. Appelez l'endpoint de profil avec l'instance API résolue.


Une fois l'instance ZohoDeskApi entièrement initialisée et l'org_id confirmé, vous pouvez invoquer la méthode appropriée pour le type de profil dont vous avez besoin — agent, contact ou compte. Le prompt de l'assistant Desk reconnaît ces entités clés : tickets, contacts, comptes, agents, départements, équipes et articles. [3]


Étape 7. Formatez et affichez les données de profil retournées.


Lorsque l'API retourne des résultats, présentez les champs clés dans une structure lisible : Name, Email, Status, Subject et Owner/Agent sur des lignes séparées, suivis de tout autre champ pertinent. Ignorez les valeurs vides et les identifiants internes pour garder la sortie propre. [3]


---


Erreurs courantes


  • Un orgid manquant provoque des échecs silencieux. Si la découverte automatique ne peut pas atteindre l'endpoint des organisations (par exemple, en raison d'un délai réseau ou d'une portée OAuth insuffisante), orgid reste une chaîne vide et les appels de profil suivants seront rejetés par l'API Desk. Vérifiez toujours que la valeur est stockée après la première connexion réussie. [1][6]

  • Les échecs de rafraîchissement du jeton bloquent tout. Si refreshtokens() retourne une réponse ne contenant pas accesstoken, la fonction de rafraîchissement retourne None et le client est initialisé avec un jeton obsolète. Le test runner vérifie explicitement la présence d'une clé "error" dans la réponse de rafraîchissement et s'arrête tôt — reproduisez cette vérification dans toute intégration personnalisée. [8]

  • Incompatibilité de centre de données lors des appels d'informations utilisateur. L'endpoint d'informations utilisateur est construit à l'aide d'une valeur ZOHODC configurable (par exemple com, eu, in). Si cette valeur est incorrecte, la récupération OAuth des informations utilisateur échouera et des champs tels que ZUID, Email et orgid ne seront pas résolus. Les noms de champs varient également selon le centre de données, c'est pourquoi le code essaie plusieurs alternatives (orgid, organizationid, ZGID) avant de se rabattre sur une valeur par défaut. [4]

  • Confusion entre deskorgid et deskportal. Ce sont deux valeurs stockées distinctes. Le orgid est un identifiant numérique requis dans les en-têtes des requêtes API, tandis que desk_portal est le sous-domaine/nom d'URL utilisé pour construire des liens navigateur. Les confondre entraînera la rupture des appels API ou des liens d'interface. [5][6]

---


Ce qu'il faut vérifier


  • Vérifiez que deskorgid est renseigné dans l'enregistrement zoho_connections après le premier appel à l'API Desk ; s'il est toujours vide, relancez manuellement l'étape de découverte des organisations. [6]
  • Confirmez que le jeton d'accès est valide et non expiré en comparant tokenexpiresat avec l'horodatage actuel — le système ne rafraîchit automatiquement que si le seuil d'écart est atteint. [7]
  • Assurez-vous que les portées OAuth accordées incluent les permissions de lecture de profil Desk ; une portée insuffisante entraînera une erreur d'autorisation sur l'endpoint des organisations ou de profil, même si le jeton lui-même est valide. [4]

Sources cited

  1. [1] server.py: get_zoho_api
  2. [2] server.py: build_zoho_links
  3. [3] planner.py
  4. [4] zoho_oauth.py
  5. [5] server.py: get_zoho_connection
  6. [6] desk_test_runner.py
Récupérer les détails d'un profil | Beam Help — Beam Help