Aller au contenu

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.


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.


Slack (réaction) → Calcul des dates → Requête boutiques → Requête boutiques × familles → Formatage → LLM → Slack (thread)

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

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.

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étriqueSemaine en coursComparaison S-1
CA Produit HT
Marge Produit HT
Taux Marge Produit apr. Remises
Nb Commandes Facturées
Nb Clients Distincts

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étriqueSemaine en coursComparaison S-1
CA Produit HT
Marge Produit HT
Nb Produits Vendus

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.

Ajoutez le bloc Gemini et renseignez deux inputs :

System instructions — le cadre immuable de l’agent, à copier tel quel :

### RÔLE
Tu es l'Analyste de Données expert pour l'entreprise. Ta mission est d'extraire
des informations précises à partir du jeu de données fourni pour répondre à une
question posée sur Slack.
### INSTRUCTIONS CRITIQUES
1. 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]

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 Ts issue du message déclencheur

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.