Section 10.6.2 : Créer son premier scénario Make pas à pas
🎯 Objectif pédagogique
Construire de A à Z un scénario Make fonctionnel qui intègre ChatGPT pour automatiser une tâche métier concrète : le traitement automatique de formulaires. Vous apprendrez le processus complet, du trigger au logging, en passant par le routing conditionnel.
Le projet : traitement automatique de formulaires
Imaginez : vous recevez 50 demandes par jour via un formulaire de contact. Chaque demande doit être lue, catégorisée (support ? devis ? réclamation ?), une réponse appropriée rédigée, et le tout logué dans un tableau de suivi. Manuellement, ça prend 4 heures par jour. Avec Make + ChatGPT, ça prend 0 minutes — tout est automatique.
Voici le scénario que nous allons construire :
- →Un formulaire Google Forms est soumis → trigger
- →Make récupère les données → extraction automatique
- →ChatGPT analyse et catégorise la demande → intelligence
- →Un Router envoie vers le bon chemin → logique conditionnelle
- →Un email de réponse personnalisé est envoyé → action
- →Les données sont sauvegardées dans Google Sheets → logging
Pré-requis : préparer les outils
Avant de construire, préparez :
- →Un formulaire Google Forms avec 4 champs : Nom, Email, Sujet (liste déroulante : Support technique / Demande de devis / Réclamation / Autre), Message (texte long)
- →Un Google Sheet "Suivi Demandes" avec les colonnes : Date | Nom | Email | Sujet | Catégorie IA | Urgence | Résumé | Statut
- →Une clé API OpenAI (depuis platform.openai.com → API keys)
- →Un compte Slack (optionnel, pour les notifications urgentes)
Étape 1 : Configurer le trigger
Module : Google Forms > Watch Responses
- →Sur le canvas Make, cliquez le gros
+central → recherchez "Google Forms" - →Sélectionnez l'action "Watch Responses"
- →Cliquez "Add" pour créer une connexion → autorisez l'accès à votre compte Google
- →Sélectionnez votre formulaire dans la liste déroulante
- →Limit : laissez à 10 (nombre max de réponses traitées par exécution)
- →Cliquez "OK" pour valider
Ce que produit ce module : à chaque exécution, il retourne les nouvelles réponses sous forme de données structurées — {{1.Nom}}, {{1.Email}}, {{1.Sujet}}, {{1.Message}}.
Trigger : Watch vs Instant
"Watch Responses" vérifie les nouvelles réponses à intervalle régulier (5, 15, 60 min). Pour une réponse immédiate, utilisez plutôt un Webhook : Google Forms → Google Apps Script → envoi webhook vers Make. Plus complexe à configurer, mais la réponse est quasi-instantanée au lieu d'attendre le prochain cycle de polling.
Étape 2 : Analyser avec ChatGPT
Module : OpenAI > Create a Chat Completion
Ajoutez le module en cliquant le petit + à droite du trigger. Configuration détaillée :
- →Connection : cliquez "Add" → collez votre clé API OpenAI
- →Model :
gpt-4o-mini(rapide et économique, ~$0.15/million tokens) - →Messages :
- →Role : System
- →Message Content (le system prompt, crucial pour la qualité) :
Tu es un assistant de traitement de demandes client pour une entreprise de services numériques. Tu reçois des messages de clients et tu dois les analyser avec précision.
INSTRUCTIONS :
1. Catégorise la demande parmi : support_technique, devis, reclamation, information, partenariat
2. Évalue l'urgence : haute (problème bloquant / client mécontent), moyenne (demande standard), basse (question simple)
3. Résume la demande en UNE phrase
4. Rédige une réponse professionnelle, empathique et personnalisée (utilise le prénom du client)
RÈGLES pour la réponse :
- Tutoie si le message du client est informel, vouvoie sinon
- Si réclamation : commence par reconnaître le problème et t'excuser
- Si devis : remercie et indique qu'un commercial reviendra sous 24h
- Si support : donne une première piste de solution si possible
RETOURNE ABSOLUMENT en JSON valide, sans aucun texte avant ou après :
{
"categorie": "...",
"urgence": "haute|moyenne|basse",
"resume": "...",
"reponse_suggeree": "...",
"sentiment": "positif|neutre|negatif"
}
- →Ajoutez un second message avec Role : User et Message Content :
Nom: {{1.Nom}}
Email: {{1.Email}}
Sujet: {{1.Sujet}}
Message: {{1.Message}}
- →Temperature :
0(pour des résultats déterministes et cohérents) - →Max Tokens :
500(suffisant pour le JSON de réponse) - →Response Format : sélectionnez
json_object(force le modèle à retourner du JSON valide)
Pourquoi gpt-4o-mini et pas GPT-5 ? Pour cette tâche de catégorisation/rédaction standard, gpt-4o-mini est ~20x moins cher et suffisamment performant. GPT-5 est réservé aux tâches de raisonnement complexe. À 50 demandes/jour, la différence : $0.25/mois (mini) vs $5/mois (GPT-5). Sur un an : $3 vs $60.
Étape 3 : Parser le JSON de la réponse IA
Le module OpenAI retourne une string JSON dans {{2.choices[0].message.content}}. Pour utiliser les champs individuels (catégorie, urgence, etc.) dans les modules suivants, vous avez deux options :
Option A — parseJSON inline (ce que nous utilisons) :
{{parseJSON(2.choices[0].message.content).categorie}}
{{parseJSON(2.choices[0].message.content).urgence}}
{{parseJSON(2.choices[0].message.content).reponse_suggeree}}
Option B — module JSON > Parse (plus propre pour les scénarios complexes) : Ajoutez un module "JSON > Parse JSON" entre OpenAI et le Router. Il crée des variables proprement nommées.
Étape 4 : Router selon la catégorie et l'urgence
Module : Router
Ajoutez un Router après le module OpenAI (ou JSON Parse). Créez 3 routes :
Route 1 — Urgence haute (réclamation ou bug bloquant) :
- →Condition :
{{parseJSON(2.choices[0].message.content).urgence}}equalshaute - →Actions :
- →Slack > Send a Message → canal #alertes-clients → message :
🚨 URGENT — {{1.Nom}} ({{parseJSON(2.choices[0].message.content).categorie}}) : {{parseJSON(2.choices[0].message.content).resume}} - →Gmail > Send an Email → réponse immédiate (voir Étape 5)
- →Slack > Send a Message → canal #alertes-clients → message :
Route 2 — Demande de devis :
- →Condition :
{{parseJSON(2.choices[0].message.content).categorie}}equalsdevis - →Actions :
- →Gmail > Send an Email → email de remerciement + "un commercial revient vers vous sous 24h"
- →Google Sheets > Add Row → ajouter au CRM (feuille "Prospects")
Route 3 — Autres demandes (fallback) :
- →Condition : aucune (route par défaut)
- →Actions :
- →Gmail > Send an Email → réponse standard personnalisée
Étape 5 : Envoyer l'email de réponse
Module : Gmail > Send an Email
Configuration :
- →To :
{{1.Email}} - →Subject :
Re: {{1.Sujet}} - →Content Type : HTML
- →Body :
<p>{{parseJSON(2.choices[0].message.content).reponse_suggeree}}</p>
<br>
<p>Cordialement,<br>L'équipe Support<br>
<em>Ce message a été généré automatiquement. Si vous souhaitez parler à un humain, répondez simplement à cet email.</em></p>
Point important : ajoutez toujours la mention "généré automatiquement" ou "traité par notre assistant". C'est une bonne pratique éthique et légale (transparence IA).
Étape 6 : Logger dans Google Sheets
Module : Google Sheets > Add a Row (présent sur TOUTES les routes)
| Colonne | Mapping | Pourquoi |
|---|---|---|
| A — Date | {{formatDate(now; "DD/MM/YYYY HH:mm")}} | Horodatage |
| B — Nom | {{1.Nom}} | Identification |
| C — Email | {{1.Email}} | Contact |
| D — Sujet | {{1.Sujet}} | Contexte |
| E — Catégorie IA | {{parseJSON(2.choices[0].message.content).categorie}} | Classification |
| F — Urgence | {{parseJSON(2.choices[0].message.content).urgence}} | Priorisation |
| G — Résumé | {{parseJSON(2.choices[0].message.content).resume}} | Vue rapide |
| H — Sentiment | {{parseJSON(2.choices[0].message.content).sentiment}} | Tendances |
| I — Statut | Traité automatiquement | Suivi |
Ce Google Sheet devient votre tableau de bord : vous pouvez créer des graphiques pour suivre le volume par catégorie, le sentiment moyen, les tendances d'urgence, etc.
Étape 7 : Ajouter la gestion d'erreurs
C'est l'étape que les débutants oublient — et qui fait la différence entre un prototype et un outil de production.
Error Handler sur le module OpenAI :
- →Clic droit sur le module OpenAI → "Add error handler"
- →Choisissez "Resume" → le scénario continue malgré l'erreur
- →Ajoutez un module Gmail > Send an Email dans le handler : envoyez-vous un email d'alerte avec les détails de l'erreur
- →Ajoutez un module Google Sheets > Add a Row : loguez l'erreur dans un onglet "Erreurs" avec la date, le message d'erreur, et les données du formulaire (pour retraitement manuel)
Erreurs courantes du module OpenAI :
- →
429 Rate Limit Exceeded: trop de requêtes simultanées → ajoutez un module Sleep (2 secondes) avant le module OpenAI - →
500 Internal Server Error: incident OpenAI → le error handler + retry automatique (configurable dans les settings du scénario) - →
Invalid API Key: clé expirée ou révoquée → regénérez sur platform.openai.com
Tester le scénario complet
- →Cliquez Run once (bouton vert en bas)
- →Ouvrez votre Google Form dans un autre onglet
- →Soumettez 3 formulaires tests avec des profils différents :
- →Test 1 : "Mon site est en panne depuis 3 jours, c'est inacceptable" (urgence haute, réclamation)
- →Test 2 : "Bonjour, j'aimerais un devis pour un site e-commerce" (devis, urgence basse)
- →Test 3 : "Est-ce que vous proposez des formations ?" (information, urgence basse)
- →Revenez sur Make → vérifiez que les 3 bulles sont vertes (succès)
- →Cliquez sur chaque bulle pour inspecter les données d'entrée/sortie
- →Vérifiez : email reçu ? Slack notifié (si urgence haute) ? Google Sheet mis à jour ?
- →Si tout fonctionne : activez le scheduling → ON, intervalle : 15 minutes
Avant d'activer en production
Testez TOUJOURS avec au moins 5 scénarios variés avant d'activer le scheduling. Vérifiez en particulier : les cas où le formulaire a des champs vides, les messages très courts (3 mots), les messages très longs (2000 caractères), les caractères spéciaux (accents, emojis, URL). Chacun de ces cas edge peut casser le JSON ou produire une catégorisation erronée.
Pourquoi utiliser gpt-4o-mini plutôt que GPT-5 dans un scénario Make automatisé de catégorisation ?
Que faire si le module OpenAI retourne une erreur 429 (Rate Limit) dans votre scénario Make ?