Exemple d'utilisation de Code Studio dans Zoho Analytics

11/08/2025 12:40

Zoho Analytics est une solution puissante de Business Intelligence, mais lorsqu’il s’agit d’aller au-delà des connecteurs standards, on se heurte à des limitations. C’est exactement ce que j’ai expérimenté lors d’un projet d’intégration entre une application externe (fictive dans mon exemple) et Zoho Analytics. 

Contexte

Prenons le cas suivant :

  1. Une application externe (par exemple, un logiciel de gestion de flotte automobile) expose deux APIs :

    • API A1 : retourne les identifiants des voitures correspondant à certains critères.

    • API A2 : pour chaque identifiant, retourne les détails du véhicule (marque, couleur, vitesse, etc.).

  2. L’objectif est de :

    • Appeler l’API A1 pour obtenir la liste des IDs.

    • Appeler dynamiquement l’API A2 pour chaque ID.

    • Insérer les résultats dans Zoho Analytics (même ou nouvelle table).


Problème : impossible de le faire avec un connecteur natif.

Solution

Quelques mots sur Code Studio : 
  • Code Studio est inclus dans le plan Enterprise Standalone de Zoho Analytics.

  • Dans le plan Premium, il est disponible en option payante.

  • Il permet d’appeler des APIs externes, de traiter les résultats et de les insérer dans des tables via du code.


L’activation de Code Studio dans Zoho One nécessite une action manuelle de la part de Zoho — il faut leur transmettre l’adresse email du compte concerné.


Voici un extrait Python utilisé dans Code Studio pour appeler une API externe, transformer les données avec Pandas, enrichir chaque ligne, puis injecter le tout dans Zoho Analytics :


from DataTransformationUtil import DataTransformationUtil
from ZohoAnalytics import ZohoAnalytics
from pandas import DataFrame
import pandas as pd
import requests

class DataTransformation:
    dt: DataTransformationUtil = None
    za: ZohoAnalytics = None

    def __init__(self, za):
        self.za = za
        self.dt = DataTransformationUtil(self.za)
        self.log = self.za.context.log

    def process_data(self):
        url = "https://jsonplaceholder.typicode.com/posts"

        response = requests.get(url)
        response.raise_for_status()

        json_data = response.json()
        df = pd.DataFrame(json_data)
        def get_username(user_id):
            user_url = f"https://jsonplaceholder.typicode.com/users/{user_id}"
            user_data = requests.get(user_url).json()
            return user_data.get("username", "")
        df['title'] = df['title'].astype('string[python]')
        df['body'] = df['body'].astype('string[python]')
        df['username'] = df['userId'].apply(get_username).astype('string[python]')

        self.log.INFO(df.dtypes)
        self.dt.upload_tabledata_from_DataFrame("Posts", df, {"importType": "truncateadd"})
        self.log.INFO("StoreSales1 completed")

Ce code :

  • Récupère des données via une API publique ;

  • Appelle une seconde API pour enrichir chaque ligne avec un nom d’utilisateur ;

  • Envoie le tout dans une table Zoho Analytics nommée Posts.


A noter : 

  • Authentification : les appels API doivent gérer les headers, tokens, etc.
    • Pagination : certaines APIs nécessitent une gestion de pagination.
    • Fréquence d’exécution : pensez à planifier ou déclencher le script via workflow ou cron.
    • Quota Zoho : Code Studio est puissant mais peut avoir des quotas d’exécution ou de taille de données (à vérifier selon le plan).


    François Ehret