Beam Help
Demander de l'aide

How-to · Zoho CRM

Comment récupérer des produits dans Zoho

Récupérez le catalogue produits et les données d'inventaire depuis votre compte Zoho.

La récupération de produits dans Zoho CRM nécessite une connexion OAuth valide et un jeton d'accès correctement actualisé avant tout appel API — voici comment notre équipe chez Beam Help (support expert indépendant pour Zoho, et non le support officiel de Zoho) parcourt l'ensemble du processus.


Pourquoi c'est important


Lorsque vous devez extraire des données de catalogue produits depuis Zoho CRM — pour des rapports, une synchronisation avec un système externe ou la création d'une intégration personnalisée — vous devez d'abord vous assurer que vos identifiants OAuth sont actifs et que votre client API est correctement initialisé. Un jeton expiré ou manquant bloquera silencieusement toutes les requêtes en aval, c'est pourquoi comprendre le cycle de vie du jeton est tout aussi important que de savoir quel outil appeler.


Étape par étape


Étape 1. Vérifiez que votre connexion Zoho existe.

Avant de tenter de récupérer des enregistrements, confirmez qu'une ligne de connexion existe pour l'utilisateur concerné dans votre magasin de données. La fonction getzohoconnection interroge zohoconnections par userid et renvoie None si aucun enregistrement n'est trouvé — dans ce cas, l'utilisateur doit se reconnecter avant de continuer. [3]


Étape 2. Laissez le système actualiser automatiquement le jeton d'accès.

Les jetons d'accès expirent, donc la couche de connexion vérifie si l'heure actuelle se situe dans les 120 secondes suivant tokenexpiresat. Si c'est le cas, ZohoOAuth.refreshtokens est appelé avec le refreshtoken stocké, et le nouveau accesstoken ainsi que le tokenexpires_at mis à jour sont réécrits dans la base de données avant que l'objet de connexion ne soit renvoyé à l'appelant. [3]


Étape 3. Obtenez une instance de l'API Zoho CRM.

Passez le userid et apptype="crm" à getzohoapi. En interne, cela appelle getzohoconnection (étapes 1–2), puis construit le client API en utilisant le apidomain et le accesstoken de l'enregistrement de connexion. Un rappel token_refresher est également connecté afin que les erreurs 401 survenant en cours de requête puissent être corrigées sans intervention de l'utilisateur. [1]


Étape 4. Exécutez l'outil de récupération des produits.

Disposant d'une instance API valide, appelez executetoolwithrepair en passant l'objet api, apptype="crm", le nom de tool approprié pour les produits, ainsi que les params de filtre dont vous avez besoin. L'indicateur allowrepair=True permet au système de tenter une correction automatique des paramètres si le premier appel échoue. Le résultat est renvoyé sous la clé "result" du dictionnaire de sortie. [2]


Étape 5. Traitez la réponse et construisez les liens de navigation.

Une fois toolresult renseigné, vous pouvez éventuellement appeler buildzoholinks avec le résultat, le nom de l'outil, les paramètres, apptype, ainsi que les valeurs dc / crmorgid de l'enregistrement de connexion. Cela génère des URL directes « Ouvrir dans Zoho » que vous pouvez présenter aux utilisateurs finaux aux côtés des données produits. [8]


Étape 6. Confirmez que les portées OAuth couvrent le module Produits.

Lorsque l'URL d'autorisation OAuth est générée pour la première fois, le paramètre scope est défini à partir de Config.ZOHO_SCOPES. Si le module Produits n'était pas inclus dans cette chaîne de portée au moment où l'utilisateur a autorisé l'application, les appels API vers ce module seront rejetés. Vous devrez peut-être révoquer l'autorisation existante et vous réautoriser avec une liste de portées mise à jour. [5]


Pièges courants


  • accesstoken manquant après l'actualisation. Si ZohoOAuth.refreshtokens renvoie un dictionnaire sans clé "accesstoken", l'actualisation a échoué (la méthode renvoie explicitement {"error": "No access token in response"} dans ce cas). Vérifiez que votre clientid, clientsecret et refreshtoken sont tous corrects et n'ont pas été révoqués. [6]
  • Incompatibilité de apidomain. Le apidomain renvoyé lors de l'échange initial du code OAuth (par exemple https://www.zohoapis.eu) doit être stocké et réutilisé pour chaque appel API ultérieur. L'utilisation du mauvais domaine régional entraînera des erreurs 404 ou d'authentification, même avec un jeton valide. [5]
  • Confusion avec le orgid de Desk. Si vous passez accidentellement apptype="desk" au lieu de "crm", le système tentera d'initialiser un ZohoDeskClient et de rechercher un identifiant d'organisation Desk — un chemin de code entièrement différent qui n'atteindra pas le module Produits du CRM. [1]
  • Collisions de requêtes simultanées. Le point de terminaison de chat utilise un jeton de simultanéité (release_concurrency) pour sérialiser les requêtes par utilisateur. Si une requête précédente n'a pas libéré son jeton correctement, les appels de récupération de produits suivants peuvent être mis en file d'attente ou échouer. [4]

Ce qu'il faut vérifier


  • Confirmez que la ligne zohoconnections de votre utilisateur contient un accesstoken non vide, un tokenexpiresat dans le futur, et le api_domain correct pour votre centre de données Zoho. [3]
  • Vérifiez que Config.ZOHO_SCOPES inclut la portée nécessaire pour les produits CRM avant de générer une nouvelle URL d'autorisation. [5]
  • Après la récupération, inspectez le dictionnaire brut tool_result pour détecter les clés d'erreur avant de transmettre les données en aval — un aller-retour HTTP réussi ne garantit pas que la charge utile contient des enregistrements de produits. [2]

Sources cited

  1. [1] server.py: get_zoho_api
  2. [2] server.py: chat_plan_stream
  3. [3] server.py: get_zoho_connection
  4. [4] server.py: chat
  5. [5] zoho_oauth.py
  6. [6] server.py: chat_stream
Récupérer des produits dans Zoho | Beam Help — Beam Help