FlowKit

Analyser automatiquement vos réponses NPS avec n8n et l'IA : verbatims, alertes, rapport

Publié le 2 août 2026 · 6 min de lecture

Une enquête NPS qui tourne bien produit deux choses : un score, et une pile de verbatims que personne ne lit systématiquement. Résultat : un détracteur qui écrit « je résilie à la fin du mois si le problème de facturation n'est pas réglé » reçoit le même traitement qu'un passif qui trouve l'interface « correcte ». Ce guide montre comment construire dans n8n un pipeline complet : collecte des réponses, classement promoteurs/passifs/détracteurs, analyse des verbatims par LLM avec sortie structurée, alerte immédiate sur les détracteurs à fort enjeu, et rapport mensuel généré par IA.

Pourquoi le score seul ne suffit pas

Le NPS repose sur une question unique — « Quelle est la probabilité que vous recommandiez X à un ami ou collègue ? » sur une échelle de 0 à 10 — popularisée par Frederick Reichheld dans son article de 2003 dans la Harvard Business Review, « The One Number You Need to Grow » : 9-10 sont des promoteurs, 7-8 des passifs, 0-6 des détracteurs, et le NPS est le pourcentage de promoteurs moins celui de détracteurs.

Mais la littérature académique invite à ne pas s'arrêter au chiffre. Une étude de Keiningham, Cooil, Andreassen et Aksoy publiée en 2007 dans le Journal of Marketing, « A Longitudinal Examination of Net Promoter and Firm Revenue Growth », a testé sur données longitudinales (21 entreprises, plus de 15 000 entretiens) l'affirmation selon laquelle le NPS serait le meilleur prédicteur de la croissance — sans trouver de supériorité du NPS sur les indices de satisfaction classiques. La leçon pratique : la valeur opérationnelle de votre enquête est dans les verbatims, pas dans le score agrégé. C'est exactement ce qu'un LLM sait exploiter à grande échelle.

Étape 1 — Collecter les réponses, quelle que soit la source

Trois canaux couvrent la plupart des situations, et les trois convergent vers le même pipeline :

Quelle que soit la source, normalisez immédiatement avec un node Set / Edit Fields vers un format commun : score (entier 0-10), verbatim (texte, possiblement vide), email, source, date_reponse.

Étape 2 — Classer promoteurs, passifs, détracteurs

Pas besoin d'IA ici : c'est une règle déterministe, donc un node Switch suffit, avec trois sorties basées sur des expressions :

  • Promoteur : {{ $json.score >= 9 }}
  • Passif : {{ $json.score >= 7 && $json.score <= 8 }}
  • Détracteur : {{ $json.score <= 6 }}

Ajoutez la catégorie au JSON (categorie: "detracteur") pour l'agrégation. Réservez l'IA à ce qu'elle fait mieux que les règles : comprendre le texte libre.

Étape 3 — Analyser les verbatims par LLM avec sortie structurée

C'est le cœur du pipeline. Une chaîne LLM (Basic LLM Chain) couplée à un Structured Output Parser garantit une sortie JSON exploitable par les nodes suivants. Pour un simple étiquetage, le node Text Classifier est une alternative plus légère, mais ici on veut plusieurs champs d'un coup.

Le prompt d'analyse, avec le contexte du score :

Tu analyses le commentaire d'une réponse à une enquête NPS.
Score donné par le client : {{ $json.score }}/10.

Commentaire :
"""{{ $json.verbatim }}"""

Consignes :
- "themes" : choisis UNIQUEMENT parmi : prix, produit, support,
  facturation, livraison, onboarding, performance, autre.
- "sentiment" : le ton du texte, indépendamment du score.
- "urgence" : "haute" seulement si le client évoque une résiliation,
  un litige, un blocage opérationnel ou une échéance explicite.
- "citation_cle" : extrait littéral le plus significatif, sans reformuler.
- Ne déduis rien qui ne soit pas dans le texte.

Et le schéma JSON fourni au Structured Output Parser :

{
  "type": "object",
  "properties": {
    "themes": { "type": "array", "items": { "type": "string" } },
    "sentiment": { "type": "string", "enum": ["positif", "neutre", "negatif", "mixte"] },
    "urgence": { "type": "string", "enum": ["haute", "moyenne", "basse"] },
    "risque_churn": { "type": "boolean" },
    "citation_cle": { "type": "string" },
    "resume": { "type": "string" }
  },
  "required": ["themes", "sentiment", "urgence", "risque_churn", "resume"]
}

Deux points d'attention. D'abord, la liste fermée de thèmes : sans elle, le modèle invente des libellés proches mais différents (« tarifs », « prix », « coût ») qui ruinent l'agrégation, comme pour l'analyse d'avis clients par IA. Ensuite, un node IF en amont saute l'appel LLM quand verbatim est vide — un modèle forcé d'analyser un texte absent hallucine.

Étape 4 — Alerter immédiatement sur les détracteurs à fort enjeu

Un node IF après l'analyse combine les signaux : {{ $json.categorie === "detracteur" && ($json.urgence === "haute" || $json.risque_churn) }}. Sur cette branche :

  1. Message Slack dans le canal support, avec score, résumé, citation clé et email du client — tout ce qu'il faut pour rappeler dans l'heure ;
  2. Création de ticket dans votre outil de support (Zendesk, Jira, Linear…) avec la priorité déduite de l'urgence, sur le même principe que le scoring automatique des tickets support par IA.

Les détracteurs « ordinaires » partent dans une file de traitement normale : inutile de réveiller l'équipe pour un 6/10 sans commentaire.

Étape 5 — Agréger et suivre l'évolution du score

Chaque réponse enrichie s'écrit dans une table : score, categorie, themes, sentiment, urgence, source, date_reponse. Deux options selon votre stack :

  • Supabase si vous voulez requêter en SQL et brancher un dashboard ;
  • Data Tables n8n pour rester dans n8n sans base externe — les Data Tables suffisent largement pour quelques centaines de réponses par mois.

Le NPS du mois se calcule alors dans un node Code : (promoteurs - detracteurs) / total * 100, en filtrant sur la période.

Le rapport mensuel de synthèse généré par IA

Un Schedule Trigger mensuel lit les réponses des 30 derniers jours et celles de la période précédente, agrège les compteurs (NPS actuel et précédent, volume, répartition des thèmes par catégorie), puis passe le tout à un LLM chargé de rédiger la synthèse : évolution du score et hypothèses tirées des thèmes, top 3 des irritants chez les détracteurs avec citations, signaux positifs chez les promoteurs, recommandations. Le pattern complet — agrégation, prompt de synthèse, diffusion par email ou Slack — est le même que pour un rapport de synthèse et d'audit généré par IA.

Point important : calculez les chiffres (NPS, deltas, comptages de thèmes) dans un node Code avant l'appel LLM. Un modèle qui rédige à partir de chiffres pré-calculés est fiable ; un modèle qui compte lui-même dans une liste de 200 réponses ne l'est pas.

Limites et bonnes pratiques

  • Ne sur-réagissez pas aux petits volumes : avec 20 réponses, un NPS bouge de 10 points quand deux personnes changent d'avis. Affichez toujours le volume à côté du score.
  • Auditez l'analyse IA chaque mois sur un échantillon de verbatims classés, surtout les urgence: haute : les faux négatifs (une menace de résiliation ratée) coûtent plus cher que les faux positifs.
  • Attention aux données personnelles : les verbatims citent parfois des noms ou des situations identifiantes. Si votre politique l'exige, anonymisez avant l'appel à une API externe, ou utilisez un modèle local.
  • Gardez l'humain dans la boucle : l'alerte Slack déclenche un rappel par un humain, pas une réponse automatique au client. L'IA trie et priorise ; elle ne gère pas la relation.

En résumé

  • Le score NPS seul est un indicateur pauvre — la recherche (Keiningham et al., 2007) montre qu'il ne prédit pas mieux la croissance que les indices classiques ; la valeur est dans les verbatims.
  • Collectez via Typeform, Form Trigger n8n ou import CSV, puis normalisez vers un format unique.
  • Classez promoteurs/passifs/détracteurs avec un node Switch, et réservez le LLM au texte libre avec un Structured Output Parser et une liste fermée de thèmes.
  • Alertez dans Slack et créez un ticket uniquement pour les détracteurs à urgence haute ou risque de churn.
  • Agrégez dans Supabase ou les Data Tables, pré-calculez les chiffres dans un node Code, et laissez l'IA rédiger le rapport mensuel à partir de ces chiffres — jamais l'inverse.

FAQ

Questions fréquentes

Quel volume de réponses NPS faut-il pour que l'automatisation vaille le coup ?

Dès quelques dizaines de réponses par mois, le tri manuel des verbatims devient irrégulier et les détracteurs passent entre les mailles. L'intérêt principal n'est pas le gain de temps brut mais la constance : chaque réponse est traitée de la même façon, immédiatement, y compris un vendredi soir.

Peut-on utiliser un modèle IA local pour analyser les verbatims au lieu d'une API cloud ?

Oui. Les verbatims contiennent parfois des données personnelles (noms, contexte client), et un modèle local via Ollama évite de les envoyer à un fournisseur externe. La contrepartie est une qualité d'extraction un peu moindre sur les verbatims ambigus ; testez sur un échantillon réel avant de trancher.

Comment gérer les réponses NPS sans commentaire ?

Un node IF en amont de l'analyse IA route les réponses sans verbatim directement vers l'agrégation : le score seul suffit pour le calcul du NPS. Cela évite des appels LLM inutiles et des sorties JSON vides ou hallucinées sur un texte absent.

Le score NPS calculé automatiquement peut-il différer de celui de Typeform ou de mon outil d'enquête ?

Oui, si les périmètres diffèrent : Typeform calcule sur les réponses collectées chez lui, votre table agrège potentiellement plusieurs sources (formulaire n8n, imports CSV). Documentez le périmètre de calcul et gardez une seule source de vérité, sinon les écarts créeront de la confusion en interne.

Bundle FlowKit Complet

269 €