Interroger la performance boutique en langage naturel depuis Slack
Ce use case illustre une utilisation concrète du plugin Biron dans Zapier. Si vous n’êtes pas encore familier avec son fonctionnement (authentification, structure d’une requête, gestion des variables), consultez d’abord le guide Biron × Zapier avant de continuer.
Ce qu’on construit
Section intitulée « Ce qu’on construit »Un Zap qui se déclenche quand un utilisateur ajoute une réaction spécifique à un message Slack. Le Zap récupère le message, interroge des charts Biron pré-existants pour obtenir les données de performance des boutiques, puis soumet la question à un LLM qui répond directement en thread.
Préparer les charts Biron en amont permet de concentrer le contexte fourni au LLM sur des données structurées et maîtrisées — ce qui réduit significativement le risque d’hallucinations.
Architecture du Zap
Section intitulée « Architecture du Zap »Slack (réaction) → Calcul des dates → Requête boutiques → Requête boutiques × familles → Formatage → LLM → Slack (thread)Trigger — Slack “New Reaction Added”
Section intitulée « Trigger — Slack “New Reaction Added” »Ajoutez un bloc Slack → New Reaction Added et configurez :
- Channel : le canal sur lequel le Zap sera actif
- Reaction : la réaction emoji qui déclenche le Zap
Calcul des dates
Section intitulée « Calcul des dates »Les requêtes Biron nécessitent des dates explicites. Ce bloc les génère dynamiquement à chaque exécution.
Ajoutez un bloc Code by Zapier (Python). Utilisez le prompt suivant pour générer le code, puis collez le résultat dans le bloc :
Rôle : Expert Python pour Zapier.Objectif : Créer un script de calcul de dates relatives.
Calculer les dates suivantes en gérant les spécificités du calendrier(années bissextiles, fins de mois) :- Début de la semaine précédente- Fin de la semaine précédente- Début de la semaine actuelle- Aujourd'hui
Sortie : retourner un dictionnaire "output" avec toutes les dates au format YYYY-MM-DD.Requête boutiques
Section intitulée « Requête boutiques »Créez dans Biron un chart de type tableau par boutique avec les métriques suivantes, puis copiez le NexusQL et collez-le dans le bloc Biron Query. Remplacez les dates statiques par les variables produites à l’étape précédente.
| Métrique | Semaine en cours | Comparaison S-1 |
|---|---|---|
| CA Produit HT | ✓ | ✓ |
| Marge Produit HT | ✓ | ✓ |
| Taux Marge Produit apr. Remises | ✓ | ✓ |
| Nb Commandes Facturées | ✓ | ✓ |
| Nb Clients Distincts | ✓ | ✓ |
Requête boutiques × familles de produits
Section intitulée « Requête boutiques × familles de produits »Même principe : créez un chart Biron par boutique et famille de produit, copiez le NexusQL, collez-le dans un second bloc Biron Query et remplacez les dates.
| Métrique | Semaine en cours | Comparaison S-1 |
|---|---|---|
| CA Produit HT | ✓ | ✓ |
| Marge Produit HT | ✓ | ✓ |
| Nb Produits Vendus | ✓ | ✓ |
Formatage pour le LLM
Section intitulée « Formatage pour le LLM »Les données Biron doivent être converties en JSON structuré avant d’être soumises au LLM. Ce bloc produit deux JSON distincts, un par requête.
Ajoutez un bloc Code by Zapier (Python) et utilisez ce prompt pour générer le code :
Rôle : Expert Python pour Zapier.Objectif : Formater des données pour la lecture par un LLM.
Inputs disponibles :Requête boutiques :- [Indiquer ici les dimensions et métriques récupérées]Requête boutiques × familles :- [Indiquer ici les dimensions et métriques récupérées]
Demande :Produire deux JSON optimisés pour la lecture par un LLM,un pour chaque requête d'entrée.LLM — Gemini
Section intitulée « LLM — Gemini »Ajoutez le bloc Gemini et renseignez deux inputs :
System instructions — le cadre immuable de l’agent, à copier tel quel :
### RÔLETu es l'Analyste de Données expert pour l'entreprise. Ta mission est d'extrairedes informations précises à partir du jeu de données fourni pour répondre à unequestion posée sur Slack.
### INSTRUCTIONS CRITIQUES1. ANALYSE : Examine attentivement si les données fournies contiennent la réponse directe ou les éléments permettant de la calculer.2. VÉRITÉ : Ne fais JAMAIS de suppositions. Si une information manque, ne tente pas d'estimer.3. CONCISION : Ta réponse doit être concise en général, mais à la longueur nécessaire pour être complète.4. TON : Professionnel, factuel et direct. Pas de politesses superflues.5. OUTPUT : La réponse doit être au format d'un message Slack avec le formatting adéquat.
### PROTOCOLE DE RÉPONSE OBLIGATOIRE- SI la réponse est présente : donne le résultat clairement.- SI les données sont insuffisantes ou si la question est hors sujet, réponds exactement : "Je ne suis pas capable de traiter la question avec les données actuellement disponibles. Mon périmètre couvre l'analyse de la performance des boutiques sur la semaine."- SI la question porte sur ton périmètre, réponds : "Mon périmètre couvre l'analyse de la performance des boutiques sur la semaine."Prompt utilisateur — à construire dynamiquement en liant les variables Zapier :
### JEU DE DONNÉES (CONTEXTE)Les valeurs globales de chaque boutique :[Insérer JSON Boutiques]
Les valeurs par boutique × famille de produit :[Insérer JSON Boutiques × Familles]
### QUESTION DE L'UTILISATEUR[Insérer le contenu du message Slack ayant déclenché le Zap]Réponse — Slack (thread)
Section intitulée « Réponse — Slack (thread) »Ajoutez un bloc Slack et configurez pour poster la réponse du LLM en thread sur le message initial :
- Channel : le même canal que le trigger
- Message Text : la réponse produite par le bloc Gemini
- Thread : insérez la variable
Tsissue du message déclencheur
Résultat attendu
Section intitulée « Résultat attendu »Quand un utilisateur ajoute la réaction configurée à un message dans le canal, le Zap analyse la question, interroge les données de performance des boutiques et répond directement en thread avec une analyse structurée — sans quitter Slack.
Si la question dépasse le périmètre des données disponibles, le LLM le signale explicitement plutôt que d’approximer.