Beam Help
Demander de l'aide

How-to · Zoho CRM

Comment récupérer des rapports dans Zoho

Récupérez les données et configurations de rapports de manière programmatique.

La récupération de rapports dans Zoho via l'API implique d'authentifier votre connexion, d'appeler l'outil de lecture approprié et de suivre les liens de réponse vers les enregistrements concernés dans votre application Zoho.


Pourquoi c'est important


Lorsque vous devez extraire des données de rapports de manière programmatique — pour des tableaux de bord, des audits ou des workflows automatisés — comprendre le fonctionnement du pipeline de récupération vous fait gagner un temps précieux en débogage. Que vous travailliez avec Zoho CRM ou Zoho Desk, le schéma sous-jacent de gestion des tokens, d'exécution des outils et de génération de liens est cohérent. En tant que support expert indépendant (et non le support officiel de Zoho), Beam Help vous guide à travers chaque étape afin que vous puissiez l'adapter à votre propre environnement.


Étape par étape


Étape 1. Établissez et vérifiez votre connexion Zoho.


Avant que des données de rapport puissent être récupérées, le système doit résoudre une connexion valide pour votre compte utilisateur. La fonction getzohoapi recherche votre enregistrement de connexion stocké et, si le token d'accès a expiré, appelle automatiquement ZohoOAuth.refreshtokens en utilisant le refresh token stocké, puis persiste le nouveau token d'accès dans la base de données. [8] Assurez-vous que votre enregistrement zohoconnections contient un refreshtoken valide et que le champ apidomain est correctement renseigné. [8]


Étape 2. Confirmez que les scopes OAuth requis sont autorisés.


Pour la récupération de rapports Zoho CRM, votre autorisation OAuth doit inclure des scopes tels que ZohoCRM.coql.READ et ZohoCRM.org.ALL. Pour Zoho Desk, l'accès en lecture aux tickets, contacts et recherches nécessite des scopes incluant Desk.tickets.READ, Desk.contacts.READ et Desk.search.READ. [7] Si un scope requis est absent, l'appel API échouera silencieusement ou retournera une erreur d'autorisation — réautorisez la connexion avec la liste complète des scopes définis dans votre configuration. [7]


Étape 3. Identifiez le type d'application et le nom d'outil corrects.


Lors de la soumission d'une requête, le système inspecte le message et le paramètre apptype (soit "crm" soit "desk") pour décider quel outil invoquer. Pour les requêtes de rapport de type comptage d'enregistrements, l'outil résolu est getrecordcount. [2] Pour les opérations de lecture plus larges, la couche de planification itère sur une liste d'actions, appelant executetoolwithrepair pour chacune avec le nom de l'outil et ses paramètres. [6] Confirmez que votre valeur apptype correspond au produit Zoho que vous interrogez, car le client API instancié diffère entre CRM et Desk. [8]


Étape 4. Exécutez l'outil et capturez le résultat.


L'appel d'exécution de l'outil transmet votre instance api, apptype, le nom tool résolu et un dictionnaire params (qui doit inclure une clé module le cas échéant) à executetoolwithrepair. [6] La fonction retourne un objet de sortie ; extrayez le résultat via execout.get("result") et le nom d'outil final résolu via execout.get("tool"). [2] Si l'outil retourne une clé clarifyingquestion au lieu d'un résultat, le système s'interrompt et présente cette question à l'utilisateur avant de continuer. [6]


Étape 5. Construisez des liens directs vers les enregistrements récupérés.


Une fois qu'un toolresult non vide est disponible, transmettez-le avec le nom de l'outil, les params, apptype, le code du centre de données (dc) et les identifiants d'organisation/portail à buildzoholinks. [3] Cette fonction construit des URL de liens profonds en utilisant le schéma https://crm.zoho.{dc}/crm/tab/{Module}/{RecordId} pour les enregistrements CRM et https://desk.zoho.{dc}/agent/{portal}/tickets/details/{TicketId} pour les tickets Desk. [3] La valeur dc est par défaut "com" mais doit être définie sur votre centre de données réel (par ex., "eu", "au") si votre compte est hébergé en dehors des États-Unis. [3]


Étape 6. Examinez le payload de réponse complet.


L'objet de réponse final retourné à l'appelant inclut sessionid, response (la réponse lisible par l'humain), les comptages de tokens usage, toolresult (les données brutes de l'API) et un tableau links contenant des paires nom/URL pour chaque enregistrement récupéré. [4] En mode streaming, les mêmes champs sont émis progressivement, avec des messages de statut tels que "Calling Zoho tool: getrecordcount..." envoyés avant l'arrivée des données. [2] Sauvegardez le tableau links si vous devez présenter des références cliquables « Ouvrir dans Zoho » aux côtés du résultat du rapport. [1]


Pièges courants


  • ID d'organisation manquant pour Zoho Desk. Si deskorgid est vide, le client tente de le découvrir automatiquement en appelant getallorganizations et en persistant le premier résultat. [8] Si cet appel de découverte échoue également (par ex., en raison d'un manque de scope), les appels de rapport Desk suivants manqueront du contexte d'organisation requis.
  • Code de centre de données incorrect. Le champ dc pilote toute la construction des URL. Une incohérence (par ex., le laisser à "com" alors que votre compte est sur "eu") produit des liens profonds d'apparence valide mais inaccessibles. [3]
  • Manques de scopes causant des échecs silencieux. La liste des scopes OAuth est longue et spécifique au produit. [7] Un scope READ manquant sur le module cible ne se manifestera pas toujours comme une erreur évidente — vérifiez les scopes avant de supposer que l'outil lui-même est défaillant.
  • Question de clarification interrompant le flux. Si l'exécution de l'outil retourne une clarifying_question, le pipeline s'arrête et l'utilisation est suivie mais aucune donnée de rapport n'est retournée. [6] Gérez cet état explicitement dans votre intégration afin que l'utilisateur soit invité à répondre plutôt que de recevoir un résultat vide.

Ce qu'il faut vérifier


  • Vérifiez que votre enregistrement de connexion stocké contient un refreshtoken non expiré ainsi que les valeurs correctes pour apidomain et dc. [8]
  • Confirmez que tous les scopes OAuth requis — notamment ZohoCRM.coql.READ pour CRM ou Desk.search.READ pour Desk — sont présents dans votre autorisation accordée. [7]
  • Après la récupération, inspectez le tableau links dans la réponse pour confirmer que les URL des enregistrements pointent vers le module et le centre de données attendus. [3]

Sources cited

  1. [1] server.py: chat
  2. [2] server.py: chat_stream
  3. [3] server.py: build_zoho_links
  4. [4] server.py: chat_plan
  5. [5] server.py: chat_plan_stream
  6. [6] config.py
  7. [7] server.py: get_zoho_api
Récupérer des rapports | Beam Help — Beam Help