Enrichissez vos données avec un Agent IA

Comprenez ce qu’est un Agent IA dans n8n

Le pipeline que vous avez construit traite maintenant les tickets, gère les pannes et évite les doublons. Mais on passe encore du temps sur une tâche répétitive : lire chaque ticket, décider de quelle catégorie il relève, estimer l'urgence, et rédiger une première réponse. C'est exactement le genre de tâche où brancher une IA apporte une vraie valeur.

Dans n8n, un nœud Agent IA peut raisonner sur la situation, enchaîner plusieurs étapes et utiliser des outils. Il lit le ticket, consulte le contexte client, choisit la bonne catégorie et rédige une réponse ; le tout en une seule exécution.

Pour notre cas, l'Agent IA est le bon choix : la tâche combine plusieurs étapes (catégoriser + estimer le niveau d'escalade + rédiger) et dépend du contenu enrichi du ticket.

Configurez un Agent IA et rédigez un system prompt efficace

Dans n8n, le nœud AI Agent se configure en deux parties :

  1. le modèle de langage à utiliser,

  2. et les instructions données à l'agent — le system prompt.

Choisissez votre modèle : n8n supporte plusieurs fournisseurs (OpenAI, Anthropic, Mistral…). Pour commencer, GPT-4o-mini est un bon équilibre entre qualité et coût. Stockez votre clé API dans les Credentials n8n — jamais directement dans le nœud.

Rédigez le system prompt : c'est la partie la plus importante. Il décrit à l'agent son rôle, sa tâche et le format de sortie attendu. Voici un exemple adapté à notre pipeline :

Tu es un assistant support client pour un éditeur SaaS.
Tu reçois un ticket enrichi avec le profil du client.
Produis uniquement un JSON avec ces trois champs :
  category : bug | question | feature_request | billing
  escalation_level : L1 | L2 | L3
  draft_reply : premier jet de réponse en français, concis
Contexte : sujet = [out_subject], message = [out_message], plan = [out_client_plan]

Pour lire la réponse, ajoutez un nœud Edit Fields après le nœud Agent. L'agent renvoie sa sortie dans$json.output. Parsez-le avecJSON.parse($json.output)et renommez les champs avec votre conventionout_:out_category,out_escalation_level,out_draft_reply.

Gérez la mémoire de l'Agent IA selon le contexte

Par défaut, chaque exécution de l'agent est indépendante : il ne se souvient pas des tickets précédents. C'est le comportement adapté pour notre pipeline — chaque ticket doit être traité sur ses propres mérites.

Alors, à quoi sert la mémoire ? 

La mémoire est utile quand l'agent gère une conversation : un chatbot qui répond à plusieurs messages d'un même utilisateur. Elle lui permet de maintenir le fil de l'échange.

Pour un pipeline d'automatisation (notre cas), ne pas activer la mémoire est le bon choix. Elle est inutile ici et présente deux inconvénients :

  1. elle consomme des tokens supplémentaires (coût),

  2. et peut introduire un biais si un ticket précédent influence l'analyse d'un nouveau ticket sans rapport.

Intégrez un Agent IA pour catégoriser et répondre aux tickets

Voici comment câbler le nœud Agent IA dans le pipeline :

  1. Positionnez-le après l'étape de déduplication (cf chapitre précédent) — vous traitez des tickets déjà normalisés, enrichis et dédupliqués.

  2. Transmettez le contexte dans le prompt : sujet, message, plan client.

  3. Indiquer à l’agent l’attitude à avoir dans son système prompt.

  4. Forcez le format JSON dans vos instructions. Un agent qui renvoie du texte libre est difficile à exploiter en aval.

  5. Parsez la sortie dans un nœud Edit Fields et renommez les champs avec votre conventionout_.

Appliquez les bonnes pratiques avant de brancher l'agent en production

Avant d'activer le workflow, vérifiez trois points essentiels :

  1. Le prompt

  2. Le format de sortie

  3. Les timeouts

Testez le prompt isolément : avant de l'intégrer dans n8n, testez votre system prompt directement dans l'interface du fournisseur (ChatGPT, Claude.ai…) avec des exemples de tickets réels. Ajustez jusqu'à obtenir un format de sortie stable et cohérent.

Validez le format de sortie : ajoutez un nœud IF après le parsing JSON pour vérifier queout_categoryest bien dans la liste attendue et queout_escalation_levelest L1, L2 ou L3.

Anticipez les timeouts : un appel à un LLM peut prendre plusieurs secondes, voire échouer si le service est surchargé. Configurez un retry avec délai et prévoyez des valeurs par défaut si l'agent ne répond pas :out_category: "unknown",out_escalation_level: "L2",out_draft_reply: null.

À vous de jouer !

Revenons à notre projet de workflow pour AgroTech !

Consigne

Vous recevez des relevés agricoles normalisés, enrichis avec le profil de l'exploitation (  out_farm_*  ) et dédoublonnés. Il est temps de brancher l'Agent IA en fin de pipeline pour qualifier l'incident et rédiger une recommandation.

Ajoutez un nœud Agent IA à la suite du pipeline. Pour chaque relevé entrant, l'agent doit produire :

  • out_category: une valeur parmi ["panne_materiel", "question_technique", "alerte_climatique", "facturation"]

  • out_escalation_level: "L1" (support standard), "L2" (technicien agronome), ou "L3" (intervention d'urgence terrain)

  • out_draft_reply: un projet de réponse/recommandation en français, professionnel et concis, mentionnant le nom du responsable (out_farm_owner).

  • Tous les champs  out_*  des chapitres précédents sont conservés.

  • Un relevé critique (ex: gel ou panne générale) sur une exploitation produit un niveau  out_escalation_level  : "L3".

  • Si l'agent ne répond pas ou renvoie un format invalide, le workflow continue en mode dégradé avec  out_category  : "unknown", out_escalation_level: "L1" et out_draft_reply: null.

Contrainte : Ne pas activer la mémoire (Window Buffer) ; chaque relevé doit être traité de manière strictement indépendante.

Corrigé

Voici un exemple de ce que vous pouviez faire pour y arriver :

Capture d’écran du workflow n8n intitulé 'Qualification & Draft via Agent IA' dans l’éditeur.

  • Objectif : Qualifier automatiquement l’alerte agricole et générer un projet de réponse.

  • Logique (décrite dans la fenêtre à gauche) :

    1. Analyse du message et du profil de l’exploitation par un LLM.

    2. Structuration forcée via Structured Output Parser (category,escalation_level,draft_reply).

    3. En cas de timeout ou défaillance du LLM, bascule automatique surunknown/L1/null.

  • Structure du workflow (sur fond bleu) :

    • Nœud 1 : 'When clicking Test workflow' (déclencheur).

    • Nœud 2 : 'Simuler relevé enrichi' (manuel, données de test).

    • Nœud 3 : 'Agent IA Agrotech' (Mistral Cloud Chat Model).

      • Outputs :Success(vers 'Structured Output Parser') etError(vers 'Fallback IA Invalide').

    • Nœud 4 : 'Structured Output Parser' (traitement des données structurées).

    • Nœud 5 : 'Formatage Réponse IA' (manuel, préparation de la réponse finale).

    • Nœud 6 : 'Fallback IA Invalide' (manuel, gestion des erreurs).

  • Logs (en bas) :

    • Success in 1.615spour l’ensemble du workflow.

    • Agent IA Agrotech: Success in 1.413s(~320 Tokens).

  • Bouton 'Execute workflow' en orange.

Capture d’écran des paramètres et de l’exécution du nœud 'Agent IA Agrotech' dans n8n.

  • Input : Données du nœud 'Simuler relevé enrichi' (mêmes champs que le screenshot 1).

  • Paramètres :

    • Source for Prompt :User Message.

    • Prompt (User Message) :

      plaintext
      Copy
      Voici les données du relevé agricole entrant à analyser :
      - Exploitant : {{ $json.out_farm_owner || 'Client' }}
      - Nom de l'exploitation : {{ $json.out_farm_name || 'Non renseignée' }}
      - Type de culture : {{ $json.out_farm_crop_type || 'Non renseigné' }}
      - Sujet de l'alerte : {{ $json.out_subject }}
      - Message du capteur : {{ $json.out_message }}
      - Priorité détectée : {{ $json.out_priority }}
      Analyse cet incident et fournit la catégorie, le niveau d'escalade et le projet de réponse.
      
    • System Message : Règles d’escalade et de catégorie (identiques au screenshot 1).

    • Chat Model :Mistral Cloud Chat Model.

    • Require Specific Output Format : Activé.

    • Connect an output parser on the canvas : Activé (lié au nœud 'Structured Output Parser').

  • Output (Success Branch) :

    • out_category: alerte_climatique

    • out_escalation_level: L3

    • out_draft_reply: Bonjour Maria Johnson, \n\nNous avons été alertés par notre système concernant une chute de température sous -2°C détectée à 05:00 sur votre exploitation, le Domaine des Vignes. Ce risque de gel nécessite une attention immédiate pour protéger vos cultures...(message complet de réponse généré par l’IA).

Capture d’écran de la configuration complète du nœud 'Agent IA Agrotech' dans n8n, incluant :

  • Input : Données du nœud 'Simuler relevé enrichi' (identique au screenshot 3).

  • Paramètres :

    • Source for Prompt :User Message.

    • Prompt (User Message) : Identique au screenshot 3.

    • System Message :

      plaintext
      Copy
      RÈGLES D'ESCALADE (escalation_level) :
      - "L3" : Si le message mentionne du gel, une chute de température sous 0°C, une panne générale, OU si la priorité est "high".
      - "L2" : Si le message concerne un problème technique sur un capteur (ex: batterie faible, problème réseau).
      - "L1" : Pour toute question d'information ou problème mineur.
      
      RÈGLES DE CATÉGORIE (category) :
      Tu dois choisir EXACTEMENT une valeur parmi : ["panne_materiel", "question_technique", "alerte_climatique", "facturation"].
      
    • Chat Model :Mistral Cloud Chat Model.

    • Require Specific Output Format : Activé.

    • Connect an output parser on the canvas : Activé (lié au 'Structured Output Parser').

    • Enable Fallback Model : Désactivé.

  • Output (Success Branch) :

    • out_category: alerte_climatique

    • out_escalation_level: L3

    • out_draft_reply: Bonjour Maria Johnson...(message complet généré par l’IA).

Capture d’écran de la fenêtre 'Test Expression' dans n8n, avec :

  • Input (à gauche) :

    • Données du nœud 'Simuler relevé enrichi' :

      • out_source: Station Météo Web

      • out_subject: Risque de Gel

      • out_message: Chute de température sous -2°C détectée à 05:00

      • out_device_email: emailmaria@hubspot.com

      • out_priority: high

      • out_created_at: 2026-03-15T06:00:00Z

      • out_farm_owner: Maria Johnson

      • out_farm_name: Domaine des Vignes

      • out_farm_crop_type: Viticulture Premium.

  • Expression (au centre) :

    • Règles d’escalade (escalation_level) :

      • L3: Si le message mentionne du gel, une chute de température sous 0°C, ou une panne générale avec prioritéhigh.

      • L2: Si le message concerne un problème technique sur un capteur.

      • L1: Pour toute question d’information ou problème mineur.

    • Règles de catégorie (category) :

      • Doit choisir exactement une valeur parmi :panne_materiel,question_technique,alerte_climatique,facturation.

  • Résultat (à droite) :

    • out_category: alerte_climatique

    • out_escalation_level: L3.

Capture d’écran des paramètres et de l’exécution du nœud 'Structured Output Parser' dans n8n.

  • Input : Données du nœud 'Agent IA Agrotech' avec :

    • action: parse

    • text: { "output": { "out_category": "alerte_climatique", "out_escalation_level": "L3", "out_draft_reply": "Bonjour Maria Johnson, \n\nNous avons été alertés..." } }.

  • Paramètres :

    • Schema Type :Generate From JSON Example.

    • JSON Example :

      json
      Copy
      {
        "out_category":"alerte_climatique",
        "out_escalation_level":"L3",
        "out_draft_reply":"Bonjour Maria, nous avons été alertés..."
      }
      
    • Auto-Fix Format : Activé.

    • Avertissement : All properties will be required. To make them optional, use the 'JSON Schema' schema type instead.

  • Output :

    • action: parse

    • response:

      • out_category: alerte_climatique

      • out_escalation_level: L3

      • out_draft_reply: Bonjour Maria Johnson, \n\nNous avons été alertés...(message complet).

    • output: Même structure queresponse.

Capture d’écran des paramètres du nœud 'Formatage Réponse IA' dans n8n.

  • Input : Données du nœud 'Agent IA Agrotech' avec :

    • out_category: alerte_climatique

    • out_escalation_level: L3

    • out_draft_reply: Bonjour Maria Johnson, \n\nNous avons été alertés...(message complet).

  • Paramètres (mode Manual Mapping) :

    • Fields to Set :

      • out_category:= {{ $json.output.out_category || 'unknown' }}alerte_climatique.

      • out_escalation_level:= {{ $json.output.out_escalation_level || 'L1' }}L3.

      • out_draft_reply:= {{ $json.output.out_draft_reply || null }}→ Message complet.

    • Include Other Input Fields : Activé (tous les champs).

  • Output :

    • out_category: alerte_climatique

    • out_escalation_level: L3

    • out_draft_reply: Bonjour Maria Johnson, \n\nNous avons été alertés...(message final formaté).

En résumé

  • Dans n8n, distinguez le nœud IA classique (tâche unique, prédéfinie) de l'Agent IA (raisonnement, enchaînement d'étapes). Utilisez l'agent quand la tâche combine plusieurs étapes ou dépend du contexte enrichi.

  • Le system prompt est la pièce centrale : décrivez le rôle, la tâche et le format de sortie. Injectez les données du ticket avec des expressions n8n.

  • Pour un pipeline d'automatisation, ne pas activer la mémoire : chaque ticket doit être traité indépendamment, sans biais de l'exécution précédente.

  • Forcez un format JSON en sortie et validez-le avant de l'utiliser en aval ; ne faites jamais confiance à 100 % au LLM.

  • Appliquez la même stratégie de fallback que pour HubSpot : si l'agent ne répond pas, le pipeline continue avec des valeurs par défaut.

Dans le dernier chapitre, le pipeline est complet et fonctionnel. Il peut maintenant maintenant être remis à l’équipe, qui doit pouvoir le maintenir le week-end. On refactorise, on documente, et on livre. Allons-y !

Ever considered an OpenClassrooms diploma?
  • Up to 100% of your training program funded
  • Flexible start date
  • Career-focused projects
  • Individual mentoring
Find the training program and funding option that suits you best