72% des consommateurs ne choisiront pas une entreprise si elle ne répond pas à ses avis Google. Temps moyen pour rédiger une bonne réponse : 5 à 8 minutes. Une PME avec 3 établissements qui reçoit 30 avis par mois y consacre 3 heures — si elle le fait. En pratique, les réponses s'accumulent en retard, les avis négatifs restent sans réponse pendant des jours, et les réponses finissent par ressembler à du copier-coller.
Ce guide détaille un système complet pour détecter chaque nouvel avis Google, générer une réponse personnalisée par IA, publier automatiquement les réponses aux avis positifs et neutres, et router les avis négatifs ou suspects vers une validation humaine avant publication. Avec les outils, les prompts, et le code.
Tout est faisable en interne.
Ce que fait le système
Cinq étapes, de l'avis publié à la réponse en ligne :
- Détection — Chaque nouvel avis Google est capté en temps réel (API ou polling)
- Analyse IA — Claude ou GPT-4 évalue le sentiment, identifie les sujets mentionnés, détecte les cas sensibles (menace, faux avis, situation juridique)
- Génération de réponse — L'IA rédige une réponse personnalisée, adaptée au ton et au contenu de l'avis
- Routage — Avis positif ou neutre → publication automatique. Avis négatif, 1 étoile, ou suspect → envoi au responsable pour validation
- Publication + suivi — La réponse est publiée via l'API, le tableau de bord est mis à jour
Temps humain par avis positif : 0. Temps humain par avis négatif : 2 minutes (relecture + validation en un clic). Contre 5-8 minutes par avis aujourd'hui — quand c'est fait.
Les outils
| Brique | Option mainstream | Option open source | Coût |
|---|---|---|---|
| Détection avis | Google Business Profile API | Idem | Gratuit |
| Analyse + Rédaction IA | Claude API (Anthropic) ou GPT-4 (OpenAI) | Idem | ~0,01 €/avis |
| Orchestration | Make (ex-Integromat) ou Zapier | n8n auto-hébergé | 0-30 €/mois |
| Validation humaine | Slack (boutons interactifs) ou email | Mattermost | Gratuit |
| Base de suivi | Google Sheets ou Airtable | NocoDB auto-hébergé | 0-10 €/mois |
| Total | 10-50 €/mois |
Le coût IA est négligeable : un avis + réponse, c'est ~500 tokens. À 30 avis/mois, ça représente moins de 0,50 €/mois en API Claude ou GPT-4.
Étape 1 — Détecter les nouveaux avis
Google Business Profile API
Google propose l'API Google Business Profile (anciennement Google My Business) pour accéder aux avis. Deux approches.
Approche 1 — Polling régulier (recommandé pour démarrer)
Interrogez l'API toutes les heures pour récupérer les nouveaux avis :
GET https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/reviews
?orderBy=updateTime desc
&pageSize=50
Headers : Authorization: Bearer {access_token}
La réponse retourne un tableau de reviews avec : reviewId, reviewer.displayName, starRating (ONE à FIVE), comment, createTime, et reviewReply (null si pas encore répondu).
Dans le workflow, filtrez pour ne garder que les avis sans réponse (reviewReply est null) et plus récents que le dernier avis traité (stockez le createTime du dernier avis dans votre tableur).
Approche 2 — Notifications push (Google Cloud Pub/Sub)
Pour du temps réel, configurez un topic Pub/Sub dans Google Cloud et abonnez-vous aux notifications de la fiche. Chaque nouvel avis déclenche un message dans le topic, que votre workflow intercepte.
C'est plus réactif mais plus complexe à mettre en place. Le polling toutes les heures suffit dans 95% des cas — un avis posté à 14h qui reçoit une réponse à 15h, c'est déjà excellent.
Configuration de l'accès API
- Google Cloud Console → Créez un projet, activez l'API « My Business Account Management » et « My Business Business Information »
- OAuth 2.0 → Créez des identifiants OAuth (type Desktop ou Web), autorisez le scope
https://www.googleapis.com/auth/business.manage - Récupérez l'Account ID et le Location ID → un appel
GET /v4/accountspuisGET /v4/accounts/{id}/locationsvous donne les identifiants
Limite à connaître : l'API Google Business Profile est en accès restreint depuis 2022. Il faut soumettre un formulaire de demande d'accès (« GBP API request form ») et justifier l'usage. Le processus prend 1 à 3 semaines. Alternative : des outils tiers comme Birdeye, Podium ou ReviewTrackers proposent des webhooks sur les nouveaux avis — plus cher, mais accès immédiat.
Alternative sans API : scraping léger
Si l'accès API est trop lourd à obtenir, une alternative simple fonctionne pour les petits volumes :
// n8n — node HTTP Request — polling Google Maps
// (usage personnel uniquement, respectez les CGU Google)
// Utilisez l'API Google Places (plus accessible) :
const url = `https://maps.googleapis.com/maps/api/place/details/json`
+ `?place_id=${placeId}`
+ `&fields=reviews`
+ `&reviews_sort=newest`
+ `&language=fr`
+ `&key=${googleApiKey}`;
// Compare avec les avis déjà traités (par author_name + time)
L'API Google Places est plus facile d'accès (clé API simple, pas d'OAuth) mais limitée à 5 avis les plus récents et ne permet pas de publier de réponse. Elle sert uniquement à la détection — la publication de la réponse devra passer par l'API GBP ou être manuelle.
Étape 2 — L'analyse et la rédaction IA
Le prompt — version de base
Tu es le responsable relation client d'une entreprise.
Tu rédiges des réponses aux avis Google.
RÈGLES :
- Réponds en français, vouvoiement, ton professionnel et chaleureux.
- Personnalise chaque réponse : reprends au moins un élément
spécifique mentionné dans l'avis.
- Ne réponds JAMAIS de façon générique ("Merci pour votre avis,
nous en prenons bonne note"). Chaque réponse doit sembler
écrite à la main pour cet avis précis.
- Longueur : 2 à 5 phrases. Pas de pavé.
- N'invente aucune information sur l'entreprise.
- Ne fais aucune promesse (remboursement, geste commercial, etc.)
sans instruction explicite.
ANALYSE PRÉALABLE — produis un JSON :
{
"analyse": {
"note": 4,
"sentiment": "positif / neutre / mitigé / négatif / hostile",
"sujets": ["accueil", "délai", "qualité produit", "prix", "propreté"],
"points_positifs": ["Service rapide", "Personnel aimable"],
"points_negatifs": ["Attente longue au téléphone"],
"faux_avis_suspect": false,
"menace_juridique": false,
"necessite_validation": false,
"raison_validation": null
},
"reponse": "Votre réponse personnalisée ici."
}
RÈGLES DE ROUTAGE (renseigne necessite_validation) :
- Note 1 étoile → necessite_validation = true
- sentiment "hostile" ou "négatif" → necessite_validation = true
- L'avis mentionne un avocat, un tribunal, un procès,
la DGCCRF, ou toute intention juridique → necessite_validation = true,
raison = "menace_juridique"
- L'avis semble faux (profil sans historique mentionné,
faits incohérents, concurrent probable) → faux_avis_suspect = true,
necessite_validation = true, raison = "faux_avis_suspect"
- L'avis mentionne un problème de santé, une allergie,
un incident de sécurité → necessite_validation = true,
raison = "incident_sante_securite"
- Dans tous les autres cas → necessite_validation = false
ADAPTATION DU TON SELON LE SENTIMENT :
- Positif (4-5★) : remerciement sincère + rebond sur un point
spécifique + invitation à revenir.
- Neutre (3★) : remerciement + reconnaissance du point d'amélioration
+ ce que vous faites pour y remédier.
- Négatif (1-2★) : empathie d'abord + reconnaissance du problème
+ proposition de contact en privé (sans promesse).
Jamais de ton défensif.
Ce prompt fonctionne. Sur des avis standards (4-5 étoiles, commentaire classique), il produit des réponses personnalisées et publiables dans 85-90% des cas. Mais il reste des angles morts.
Pourquoi le prompt de base ne suffit pas
Problème 1 — Le ton « robot aimable ». L'IA a tendance à produire des réponses qui sentent l'automatisation. « Nous sommes ravis que vous ayez apprécié… » → c'est correct mais ça ne trompe personne. Un lecteur habitué repère la réponse IA en 3 secondes. Le calibrage doit injecter la voix de l'entreprise.
Problème 2 — Les cas multi-sujets. Un avis 3 étoiles qui dit « super accueil mais la livraison a pris 3 semaines et le produit était abîmé » contient trois sujets. Le prompt de base va souvent n'en traiter qu'un ou deux.
Problème 3 — Les réponses aux avis sans texte. Un 1 étoile sans commentaire — faut-il répondre ? Si oui, que dire ? Le prompt de base ne gère pas ce cas.
Problème 4 — Les avis qui nécessitent des informations internes. « J'ai commandé le modèle X et il est arrivé en panne » — l'IA ne sait pas si le modèle X existe, si c'est un problème connu, ou quelle est la politique SAV.
Le calibrage : comment passer de 85% à 98%
Itération 1 — Injecter la voix de l'entreprise. C'est le calibrage le plus important. Ajoutez au prompt :
IDENTITÉ DE L'ENTREPRISE :
Nom : [NOM DE L'ENTREPRISE]
Secteur : [VOTRE SECTEUR]
Ton de voix : [DÉCRIVEZ VOTRE TON]
Exemples de réponses réelles qui ont bien fonctionné
(copiez 3-5 de vos meilleures réponses passées) :
Exemple 1 — Avis 5★ :
"[avis client]"
→ "[votre vraie réponse]"
Exemple 2 — Avis 2★ :
"[avis client]"
→ "[votre vraie réponse]"
Exemple 3 — Avis 3★ mitigé :
"[avis client]"
→ "[votre vraie réponse]"
Reproduis ce style. Pas celui d'un chatbot — celui d'un humain
qui connaît son business et parle à un vrai client.
C'est le levier le plus puissant. Trois bons exemples valent plus que vingt lignes de consignes.
Itération 2 — Règles métier spécifiques.
RÈGLES SPÉCIFIQUES À L'ENTREPRISE :
- Si le client mentionne un retard de livraison → rappeler que
le suivi est disponible sur [lien]. Ne pas s'excuser de façon
excessive — donner une solution.
- Si le client mentionne un produit défectueux → l'inviter à
contacter le SAV à [email/téléphone] avec sa référence de
commande. Ne jamais promettre un remplacement dans la réponse
publique.
- Si le client se plaint du prix → ne jamais justifier le prix.
Remercier pour le retour et mettre en avant la valeur
(qualité, garantie, service).
- Pour un restaurant : si le client mentionne un plat spécifique,
citer le chef ou l'origine de l'ingrédient si pertinent.
- Multi-établissements : adapter le nom de l'établissement
et l'équipe dans la réponse.
- [AJOUTEZ VOS RÈGLES]
Itération 3 — Gestion des cas limites.
CAS PARTICULIERS :
- Avis sans texte (note seule) :
• 4-5★ sans texte → réponse courte (1-2 phrases) : remercier
et inviter à partager plus de détails.
• 1-3★ sans texte → réponse courte + invitation à contacter
en privé pour comprendre et améliorer.
• necessite_validation = false pour les sans-texte 4-5★,
true pour les sans-texte 1-2★.
- Avis en langue étrangère → rédige la réponse dans la langue
de l'avis. Si la langue n'est pas identifiable → français.
- Avis clairement hors sujet (spam, pub pour un autre business)
→ necessite_validation = true, raison = "spam",
réponse = null. On ne répond pas, on signale.
- Avis d'un employé / ancien employé → necessite_validation = true,
raison = "avis_employe".
- Avis qui mentionne un collaborateur par son prénom
→ necessite_validation = true (protection des équipes).
Itération 4 — Multi-établissements (si applicable).
ÉTABLISSEMENTS :
Adapte ta réponse en fonction de l'établissement concerné.
- "Restaurant Le Comptoir - Marseille" : tutoiement possible,
ton décontracté, mentionner le chef Julien.
- "Restaurant Le Comptoir - Aix" : vouvoiement, ton classique,
mentionner la terrasse comme point fort.
- [VOS ÉTABLISSEMENTS]
Signe chaque réponse avec le prénom du gérant de l'établissement :
- Marseille : Julien
- Aix : Sophie
Le résultat après calibrage
Après ces 4 itérations (comptez 1 semaine de tests sur vos 20-30 derniers avis), le prompt produit des réponses publiables sans retouche dans 95%+ des cas positifs/neutres. Les avis négatifs passent par la validation humaine — le brouillon de l'IA est correct dans ~80% des cas, mais le responsable ajuste le ton ou ajoute un détail.
L'appel API
Anthropic (Claude) :
POST https://api.anthropic.com/v1/messages
Headers : x-api-key, anthropic-version: 2023-06-01
Body :
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"temperature": 0.3,
"system": "VOTRE PROMPT CALIBRÉ",
"messages": [{
"role": "user",
"content": "Nouvel avis Google pour l'établissement {{ nom_etablissement }} :\n\nAuteur : {{ reviewer_name }}\nNote : {{ star_rating }}/5\nDate : {{ date }}\nCommentaire : {{ comment }}"
}]
}
Pourquoi temperature à 0.3 et pas 0 ? Pour les AO et les CR de réunion, on veut de l'extraction factuelle → temperature 0. Pour les réponses aux avis, on veut un peu de variété dans le style — sinon les 5 réponses du jour se ressemblent trop. 0.3 donne assez de variation sans perdre en cohérence.
OpenAI (GPT-4 Turbo) : même logique, endpoint /v1/chat/completions, avec response_format: { type: "json_object" }.
Coût moyen : 0,005 à 0,02 € par avis.
Étape 3 — Le routage
C'est le nœud central du système. Deux chemins selon l'analyse IA.
Le code de routage
// n8n — node Code après l'analyse IA
const result = $('Node_Analyse_IA').first().json;
// Parsing du JSON retourné par l'IA
const analyse = result.analyse;
const reponse = result.reponse;
// Double vérification (ne pas faire confiance aveuglément à l'IA)
const noteNum = analyse.note;
const forceValidation =
noteNum <= 2 ||
analyse.sentiment === 'hostile' ||
analyse.sentiment === 'négatif' ||
analyse.faux_avis_suspect === true ||
analyse.menace_juridique === true ||
analyse.necessite_validation === true;
// Route
return [{
json: {
...analyse,
reponse_proposee: reponse,
route: forceValidation ? 'VALIDATION_HUMAINE' : 'AUTO_PUBLISH',
raison_validation: forceValidation
? (analyse.raison_validation || `note_${noteNum}_etoiles`)
: null
}
}];
Le double check en JavaScript est volontaire. L'IA peut rater un cas de routage (faux négatif sur necessite_validation). Le code garantit que tout avis ≤ 2 étoiles ou tout sentiment négatif passe en validation, quoi que dise l'IA.
Chemin A — Publication automatique (avis positifs/neutres)
[Analyse IA → route = AUTO_PUBLISH]
↓
[Publier la réponse via API Google Business Profile]
↓
[Logger dans le tableur : avis + réponse + timestamp]
↓
[Notification Slack (optionnel) : "✅ Avis 4★ de Jean D. — réponse publiée"]
Chemin B — Validation humaine (avis négatifs/suspects)
[Analyse IA → route = VALIDATION_HUMAINE]
↓
[Message Slack interactif avec :
- L'avis original
- L'analyse IA (sentiment, sujets, raison du routage)
- La réponse proposée
- 3 boutons : ✅ Publier / ✏️ Modifier / 🚫 Ignorer]
↓
[Le responsable clique → webhook Slack → workflow n8n]
↓
[✅ Publier → publication API]
[✏️ Modifier → le responsable tape sa version → publication]
[🚫 Ignorer → log "ignoré" + raison]
Le message Slack interactif
// n8n — node Slack — message interactif pour validation
const a = $input.first().json;
const blocks = [
{
type: 'header',
text: { type: 'plain_text', text: `⚠️ Avis ${a.note}★ — Validation requise` }
},
{
type: 'section',
text: {
type: 'mrkdwn',
text: `*Auteur :* ${a.reviewer_name}\n*Note :* ${'⭐'.repeat(a.note)}\n*Raison du routage :* ${a.raison_validation}`
}
},
{
type: 'section',
text: { type: 'mrkdwn', text: `*Avis :*\n> ${a.comment}` }
},
{
type: 'section',
text: { type: 'mrkdwn', text: `*Analyse IA :*\nSentiment : ${a.sentiment}\nSujets : ${a.sujets.join(', ')}` }
},
{
type: 'divider'
},
{
type: 'section',
text: { type: 'mrkdwn', text: `*Réponse proposée :*\n${a.reponse_proposee}` }
},
{
type: 'actions',
elements: [
{
type: 'button',
text: { type: 'plain_text', text: '✅ Publier' },
style: 'primary',
action_id: 'publish_review',
value: JSON.stringify({ reviewId: a.reviewId, reponse: a.reponse_proposee })
},
{
type: 'button',
text: { type: 'plain_text', text: '✏️ Modifier' },
action_id: 'edit_review',
value: JSON.stringify({ reviewId: a.reviewId })
},
{
type: 'button',
text: { type: 'plain_text', text: '🚫 Ignorer' },
style: 'danger',
action_id: 'ignore_review',
value: JSON.stringify({ reviewId: a.reviewId })
}
]
}
];
Variante email — si votre équipe n'utilise pas Slack, envoyez un email avec deux liens (Publier / Modifier) qui pointent vers un webhook n8n avec le reviewId en paramètre. Moins interactif, mais fonctionnel.Étape 4 — Publier la réponse
API Google Business Profile
// n8n — node HTTP Request — publier la réponse
const reviewId = $input.first().json.reviewId;
const reponse = $input.first().json.reponse;
// PUT pour créer ou mettre à jour la réponse
const url = `https://mybusiness.googleapis.com/v4/accounts/${accountId}`
+ `/locations/${locationId}/reviews/${reviewId}/reply`;
const response = await fetch(url, {
method: 'PUT',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
comment: reponse
})
});
La réponse apparaît immédiatement sous l'avis sur Google Maps et Google Search.
Gestion du token OAuth
Le token OAuth Google expire toutes les heures. Votre workflow doit gérer le refresh automatiquement :
// n8n — node Code — rafraîchir le token si expiré
const tokenData = $('Node_Get_Stored_Token').first().json;
const now = Date.now();
if (now > tokenData.expiry_time) {
// Refresh
const res = await fetch('https://oauth2.googleapis.com/token', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
client_id: clientId,
client_secret: clientSecret,
refresh_token: tokenData.refresh_token,
grant_type: 'refresh_token'
})
});
const newToken = await res.json();
// Stockez le nouveau token + expiry_time
return [{ json: { access_token: newToken.access_token,
expiry_time: now + newToken.expires_in * 1000 } }];
}
return [{ json: { access_token: tokenData.access_token } }];
Étape 5 — Le suivi
Le tableau de bord
Créez un tableur « Avis Google » (Google Sheets, Airtable, ou NocoDB) :
| Colonne | Type | Rôle |
|---|---|---|
| review_id | Texte (clé unique) | Identifiant Google |
| date_avis | Date | Date de publication |
| auteur | Texte | Nom affiché |
| note | Nombre | 1 à 5 |
| commentaire | Texte long | Contenu de l'avis |
| sentiment | Sélection | Positif / Neutre / Mitigé / Négatif / Hostile |
| sujets | Texte | Tags extraits par l'IA |
| route | Sélection | Auto / Validation humaine |
| reponse | Texte long | Réponse publiée |
| statut | Sélection | Publié / En attente / Ignoré |
| date_reponse | Date | Timestamp de publication |
| delai_reponse_heures | Nombre | Temps entre avis et réponse |
| etablissement | Texte | Pour le multi-sites |
Ce tableur est votre source de vérité. Il permet de mesurer le délai moyen de réponse (objectif : < 4h en heures ouvrées), le taux de réponse (objectif : 100%), et l'évolution du sentiment dans le temps.
Les métriques à suivre
// Métriques mensuelles — calculables depuis le tableur
const metriques = {
total_avis: rows.length,
note_moyenne: avg(rows.map(r => r.note)),
taux_reponse: rows.filter(r => r.statut === 'Publié').length / rows.length,
delai_moyen_heures: avg(rows.map(r => r.delai_reponse_heures)),
auto_publish_rate: rows.filter(r => r.route === 'Auto').length / rows.length,
sentiment_distribution: {
positif: rows.filter(r => r.sentiment === 'positif').length,
neutre: rows.filter(r => r.sentiment === 'neutre').length,
mitigé: rows.filter(r => r.sentiment === 'mitigé').length,
negatif: rows.filter(r => r.sentiment === 'négatif').length,
},
sujets_negatifs_top: extractTopSujets(rows.filter(r => r.note <= 2))
};
Le taux d'auto-publication est la métrique clé pour le calibrage. Au début, visez 60-70% (seuls les avis clairement positifs passent en auto). Après calibrage, vous pouvez monter à 80-85%. Ne dépassez jamais 90% — gardez toujours le filet de sécurité pour les cas ambigus.
Workflow complet (résumé n8n)
[Trigger : Cron toutes les heures / Webhook Google Pub/Sub]
↓
[API Google : Récupérer les nouveaux avis (sans réponse)]
↓
[Pour chaque avis :]
↓
[Claude API : Analyse + Rédaction réponse]
↓
[Code : Routage (double vérification)]
↓
┌────────────────────────────┬────────────────────────────────┐
│ Route = AUTO_PUBLISH │ Route = VALIDATION_HUMAINE │
│ │ │
│ → API Google : Publier │ → Slack : Message interactif │
│ → Tableur : Logger │ → Attente clic responsable │
│ → Slack : ✅ Confirmation │ → ✅ Publier / ✏️ Modifier │
│ │ → API Google : Publier │
│ │ → Tableur : Logger │
└────────────────────────────┴────────────────────────────────┘
Ce que ça donne en vrai
| Avant | Après | |
|---|---|---|
| Taux de réponse aux avis | 40-60% (on oublie, on reporte) | 100% |
| Délai de réponse moyen | 3-5 jours | < 2 heures (auto) / < 4 heures (validé) |
| Temps humain par mois (30 avis) | 3 heures | 20 minutes (avis négatifs uniquement) |
| Qualité des réponses | Variable (copier-coller fréquent) | Personnalisée à chaque avis |
| Suivi | Aucun | Tableau de bord avec métriques |
| Coût | Temps salarié | 10-50 €/mois |
L'impact sur la note Google est indirect mais réel. Les études montrent qu'un business qui répond à tous ses avis en moins de 24h voit sa note moyenne augmenter de 0.1 à 0.3 point sur 6 mois — parce que les clients insatisfaits sont pris en charge, et les clients satisfaits se sentent valorisés (et reviennent).
Les limites
L'accès à l'API Google Business Profile est restrictif. Google a resserré l'accès depuis 2022. Si votre demande est refusée, les alternatives sont les outils tiers (Birdeye, Podium, LocalClarity) qui ont leur propre accès API, ou le mode semi-automatique : l'IA rédige la réponse, vous la collez manuellement dans le dashboard Google (30 secondes au lieu de 5 minutes — toujours un gain).
L'IA ne remplacera pas l'empathie humaine sur les cas difficiles. Un client furieux qui décrit une mauvaise expérience en détail mérite une réponse réfléchie par un humain. Le système est conçu pour ça : l'IA prépare un brouillon, l'humain ajuste. Ne basculez jamais en 100% automatique sur les avis négatifs.
La voix de l'entreprise se dégrade si le prompt n'est pas maintenu. Les few-shot examples (vos vraies réponses passées) sont la clé. Mettez-les à jour tous les 2-3 mois avec vos meilleures réponses récentes.
Attention aux réponses trop longues. L'IA a tendance à sur-expliquer. Imposez une limite stricte dans le prompt (3 phrases max pour un avis positif, 5 phrases max pour un avis négatif). Sur mobile, les réponses longues sont tronquées — personne ne clique sur « Lire la suite ».
Multi-établissements = multi-prompts. Si vos établissements ont des personnalités différentes (un restaurant gastronomique et un bistrot), il faut un prompt par profil. Le code est le même, seul le prompt change.
Maintenance. Vérification des logs, rafraîchissement du token OAuth, mise à jour des few-shot examples. Prévoir 1h/mois.
Troubleshooting
| Problème | Solution |
|---|---|
| API Google refuse l'accès | Soumettez le formulaire GBP API. En attendant, utilisez l'API Places pour la détection + copier-coller manuel |
| Token OAuth expiré | Vérifiez le refresh token dans votre workflow. Le refresh token n'expire pas sauf révocation manuelle |
| Réponses trop génériques | Ajoutez 3-5 exemples de vos vraies réponses dans le prompt (few-shot) |
| Réponses qui se ressemblent toutes | Augmentez la temperature à 0.4-0.5 (pas plus) |
| Routage trop restrictif (tout passe en validation) | Ajustez le seuil : ne router que les 1-2★ au lieu de 1-3★ |
| Routage trop laxiste (avis négatifs publiés en auto) | Vérifiez le double check JavaScript — il doit surcharger l'IA |
| JSON invalide de l'IA | Temperature à 0.3, ajoutez « Réponds UNIQUEMENT en JSON valide » dans le prompt |
| Faux avis non détectés | Ajoutez des patterns dans le prompt : profils sans photo, faits impossibles, langage de concurrent |
| Slack boutons ne fonctionnent pas | Vérifiez l'URL du webhook dans la Slack App et les permissions chat:write + interactions |
Le budget
| Poste | Coût |
|---|---|
| API IA (~30 avis/mois) | < 1 €/mois |
| Orchestration (Make/Zapier ou n8n) | 0-30 €/mois |
| Tableur (Sheets/Airtable/NocoDB) | 0-10 €/mois |
| API Google Business Profile | Gratuit |
| Total | 10-50 €/mois |
Le poste le plus cher est l'orchestrateur. Si vous auto-hébergez n8n, le coût total tombe à moins de 5 €/mois. Pour une PME avec 3 établissements et 50 avis/mois, le système coûte moins qu'une heure de travail salarié — et il répond à 100% des avis, 24h/24.
Tout est là
Ce guide contient l'architecture, les appels API (Google Business Profile, Claude, Slack), le prompt (avec la méthode de calibrage), le code de routage, le workflow de validation humaine, et le troubleshooting. Si vous avez quelqu'un en interne qui maîtrise les outils d'automatisation — lancez-vous.
Le point clé, c'est le prompt. C'est lui qui détermine si vos réponses sentent le robot ou le vrai patron qui prend le temps de répondre à chaque client. Et c'est lui qui gère le tri entre ce qui peut partir en automatique et ce qui doit passer sous des yeux humains. Les few-shot examples (vos vraies réponses) sont le secret : ils capturent votre voix mieux que n'importe quelle consigne.
Si vous préférez gagner du temps : on prend vos 20 derniers avis, on calibre le prompt sur votre ton, et on vous envoie les réponses générées. Vous comparez avec vos réponses réelles. Si les réponses IA sont au moins aussi bonnes — on déploie le système complet en 5 jours. Si elles ne le sont pas, vous n'avez rien dépensé.
Marketing Robot — systèmes d'automatisation pour PME. Des process, des outils, des résultats mesurables.