La récupération de la configuration de messagerie dans Zoho CRM et Zoho Desk nécessite d'appeler le point de terminaison REST approprié avec un jeton d'accès OAuth valide — le chemin exact diffère selon le produit utilisé.
Pourquoi c'est important
Lors de la création d'intégrations ou d'automatisations, vous devez souvent inspecter la configuration des e-mails entrants ou sortants d'une organisation. Que vous auditiez le routage des e-mails dans Zoho CRM ou que vous listiez les configurations de boîtes aux lettres d'assistance dans Zoho Desk, connaître le bon point de terminaison et le flux d'authentification approprié permet d'économiser un temps de débogage considérable. Cela est particulièrement pertinent pour les équipes gérant un support multicanal ou la synchronisation des e-mails CRM. *(Remarque : Beam Help est un support expert indépendant pour Zoho — nous ne sommes pas le support officiel de Zoho.)*
---
Étape par étape
1. Obtenir un jeton d'accès OAuth valide
Avant d'appeler tout point de terminaison de configuration de messagerie, votre application doit compléter le flux OAuth. Commencez par générer une URL d'autorisation incluant votre clientid, redirecturi, les scopes configurés, responsetype: code, accesstype: offline et prompt: consent.[1]
Étape 1a. Redirigez l'utilisateur vers cette URL d'autorisation. Après approbation, Zoho redirige vers votre application avec un paramètre code.
Étape 1b. Échangez le code d'autorisation contre des jetons en effectuant un POST vers l'URL de jeton Zoho avec granttype: authorizationcode, votre clientid, clientsecret, redirecturi et le code reçu. Une réponse réussie contient un accesstoken, un refreshtoken, un apidomain et une valeur expires_in.[1]
Étape 1c. Stockez l'horodatage tokenexpiresat (heure Unix actuelle plus expiresin) afin que votre code sache quand actualiser le jeton. Lorsque le jeton expire, effectuez à nouveau un POST vers l'URL de jeton en utilisant granttype: refreshtoken avec vos identifiants client pour obtenir un nouvel accesstoken.[2]
---
2. Récupérer la configuration de messagerie dans Zoho CRM
Étape 2. Avec un jeton d'accès valide, envoyez la requête suivante au point de terminaison des paramètres CRM :
GET /settings/mail_config
En Python, en utilisant le wrapper client interne, cela ressemble à :
def get_mail_config(self):
return self.c.request("GET", "/settings/mail_config")
Cette opération (getmailconfig) relève de la catégorie de paramètres Mail & Social et renvoie la configuration de messagerie actuelle de l'organisation CRM connectée.[6]
---
3. Lister les configurations de messagerie dans Zoho Desk
Étape 3. Pour Zoho Desk, le point de terminaison est différent. Pour récupérer les configurations de messagerie au niveau de l'organisation, envoyez :
GET /api/v1/mailConfigurations
Un paramètre optionnel p peut être transmis pour la pagination ou le filtrage. En Python :
def list_organizationlevel_mail_configurations(self, p: dict = None):
return self.c.request("GET", "/api/v1/mailConfigurations", p, None)
Cela liste toutes les configurations de messagerie définies au niveau de l'organisation dans Zoho Desk.[7]
---
4. Gérer les erreurs d'authentification avec élégance
Étape 4. Si l'un ou l'autre des points de terminaison renvoie un statut HTTP 401, le jeton d'accès a expiré ou a été révoqué. Dans ce cas, invitez l'utilisateur à reconnecter son compte Zoho et relancez la requête après avoir obtenu un nouveau jeton.[4]
---
Erreurs courantes
- Mauvais centre de données (DC). L'
apidomainrenvoyé lors de l'échange de jetons reflète le centre de données de l'utilisateur (par exemple,zohoapis.eupour l'UE). Utilisez toujours l'apidomainde la réponse de jeton plutôt que de coder en durzohoapis.com, sinon les requêtes échoueront silencieusement ou renverront des erreurs d'authentification.[1] - Scope non inclus. Si les scopes OAuth configurés lors de l'autorisation ne couvrent pas l'accès à la messagerie ou aux paramètres, l'API rejettera la requête. Vérifiez que votre configuration
ZOHO_SCOPESinclut le scope de messagerie ou de paramètres approprié avant de générer l'URL d'autorisation.[1] - Incompatibilité d'ID d'organisation. Les informations utilisateur renvoyées par
https://accounts.zoho.<DC>/oauth/user/infopeuvent exposer l'ID d'organisation sous différents noms de champs (orgid,organizationidouZGID) selon le centre de données. Essayez toujours plusieurs noms de champs et gérez les cas d'échec avec élégance.[2] - Jeton non actualisé avant expiration. Comparer l'heure Unix actuelle avec la valeur
tokenexpiresatstockée avant chaque appel API permet d'éviter des erreurs401inutiles en cours de traitement.[2]
---
Ce qu'il faut vérifier
- Confirmer la bonne URL de base — vérifiez que les requêtes sont envoyées vers l'
api_domainrenvoyé lors de l'échange de jetons, et non vers un domaine codé en dur, afin de cibler le bon centre de données.[1] - Valider que le jeton d'accès est à jour — vérifiez que
tokenexpiresatest dans le futur avant d'appeler/settings/mail_config(CRM) ou/api/v1/mailConfigurations(Desk), et actualisez-le de manière proactive si nécessaire.[2] - Inspecter le contenu de la réponse — confirmez que le JSON renvoyé contient les champs de configuration de messagerie attendus ; un
401dans le corps de la réponse signale un problème d'authentification nécessitant une reconnexion plutôt qu'un problème de données.[4]