DOC
Accueil/ Projets/ MJY Task Platform/ Guide d'intégration : Agent IA avec n8n pour l'import de tâches

Guide d'intégration : Agent IA avec n8n pour l'import de tâches

Ce document explique comment configurer votre workflow n8n pour qu'il s'interface avec la fonction d'importation de l'application MJY Holding Platform.

Architecture de l'appel

sequenceDiagram
    participant Navigateur as Client Web (ImportTemplateModal)
    participant Serveur as Serveur Node.js (ou Netlify Function)
    participant n8n as Workflow n8n (Webhook + Agent IA)

    Navigateur->>Serveur: POST /api/import-n8n { text }
    Note over Serveur: Récupère N8N_WEBHOOK_URL
    Serveur->>n8n: POST [n8n_webhook] { text }
    Note over n8n: L'Agent IA analyse le texte brut<br/>et génère le tableau Markdown
    n8n-->>Serveur: 200 OK { markdown: "[Tableau MD]" }
    Serveur-->>Navigateur: 200 OK { markdown: "[Tableau MD]" }
    Note over Navigateur: Remplace le textarea par le Markdown

1. Configuration de l'environnement

Assurez-vous de définir les variables suivantes dans votre fichier .env :

# URL publique ou locale du webhook de n8n
N8N_WEBHOOK_URL=https://votre-instance-n8n.com/webhook/import-tasks

# Optionnel : Jeton secret pour authentifier les appels de la plateforme vers n8n
N8N_BEARER_TOKEN=votre-jeton-secret-n8n

(En local, vous pouvez utiliser une adresse ngrok ou locale comme http://localhost:5678/webhook-test/import-tasks)


2. Configuration du Workflow dans n8n

Votre workflow n8n doit être composé de 3 éléments clés :

  1. Webhook Trigger : Point d'entrée HTTP sécurisé.
  2. AI Agent / LLM Node : Traitement par le modèle IA.
  3. Respond to Webhook : Formatage du retour JSON.

Étape A : Webhook Node (Déclencheur)

  • Method : POST
  • Response Mode : When Last Node Finishes (pour attendre la réponse de l'IA)
  • Payload format : JSON
  • Le corps de la requête reçu contient les détails de la liste ainsi que de l'utilisateur connecté :
    {
      "text": "Julien doit réparer le vélo de route pour lundi prochain en priorité haute. Sofia doit commander des cadres de rechange d'ici le 31 juillet.",
      "user": {
        "id": "e44c207d-dc41-455b-b9f1-a1e626e8284d",
        "name": "Julien",
        "role": "manager",
        "email": "julien@engwe-france.fr"
      }
    }
    

Option : Authentification dynamique avec Supabase dans n8n

Plutôt qu'une clé d'API fixe, vous pouvez utiliser les informations de l'utilisateur transmises pour valider son identité directement auprès de votre base de données Supabase depuis n8n :

  1. Node Supabase : Ajoutez un nœud Supabase dans votre workflow n8n juste après le Webhook.
  2. Configuration :
    • Resource : Row
    • Operation : Get Many
    • Table : member
    • Filters : Ajoutez une condition id égale à {{ $json.body.user.id }}.
  3. Vérification (If Node) :
    • Vérifiez si le nœud Supabase renvoie bien un membre enregistré avec un rôle autorisé.
    • Si le membre est valide, continuez vers l'Agent IA. Sinon, redirigez vers un nœud Respond to Webhook renvoyant un statut 403 Forbidden ou un message d'erreur.

Étape B : AI Agent / LLM Node (L'Intelligence)

Configurez un agent IA (ex: avec le modèle Claude de d'Anthropic ou GPT-4o d'OpenAI) avec les instructions système suivantes :

Prompt Système Recommandé

Tu es un assistant IA expert en gestion de projets. Ton rôle est d'analyser un texte brut (notes, e-mails, checklists) et de le transformer uniquement en un tableau Markdown formaté selon les colonnes du template de l'application.

Tu dois renvoyer STRICTEMENT et UNIQUEMENT le tableau Markdown, sans texte d'introduction ni de conclusion.

Colonnes attendues (respecte l'ordre exact et l'orthographe des en-têtes) : Tâche | Notes | Assigné à | Responsable | Priorité | Pilier | Échéance

Règles de formatage des champs :

  1. Tâche (Obligatoire) : L'action claire et concise à mener (ex: "Commander des cadres").
  2. Notes (Optionnel) : Informations ou contexte complémentaire.
  3. Assigné à (Optionnel) : Le prénom du collaborateur chargé de faire la tâche (ex: "Sofia").
  4. Responsable (Optionnel) : Le manager qui valide (ex: "My Tam").
  5. Priorité (Optionnel) : Doit être l'un de ces mots : bloquant, haute ou normale (défaut).
  6. Pilier (Optionnel) : Catégorie de la tâche parmi la liste interne suivante :
    • Atelier / Montage
    • Stock / Logistique
    • Exploitation boutique
    • Sécurité / Conformité
    • Expérience client
    • Achats / Matériel
    • Entretien du lieu
  7. Échéance (Optionnel) : Date de fin au format ISO AAAA-MM-JJ (ex: 2026-07-31).

Exemple de format attendu en sortie :

Tâche Notes Assigné à Responsable Priorité Pilier Échéance
Commander des cadres Sofia normale Achats / Matériel 2026-07-31
Réparer le vélo de route Julien haute Atelier / Montage 2026-07-20

Étape C : Respond to Webhook Node (Réponse)

  • Respond With : JSON

  • Response Body (mode expression, pour renvoyer un objet JSON valide même si le Markdown contient des retours à la ligne ou des |) :

    ={{ { "markdown": $json.output } }}
    

    (Où $json.output contient la réponse Markdown de l'Agent IA)

    ⚠️ N'écrivez pas { "markdown": "={{ $json.output }}" } : injecter le Markdown dans une chaîne JSON casse le JSON dès que la sortie contient un guillemet ou un saut de ligne (ce qui est le cas d'un tableau). Utilisez la forme expression ci-dessus qui construit l'objet.


3. Modèle de Workflow Prêt à l'Importation (n8n_workflow_template.json)

Pour vous faire gagner du temps, nous avons généré un fichier de configuration complet contenant ce workflow prêt à l'emploi.

Vous le trouverez ici : n8n_workflow_template.json.

Instructions d'importation dans n8n :

  1. Ouvrez votre instance n8n et créez un nouveau workflow vide.
  2. Copiez l'intégralité du contenu du fichier n8n_workflow_template.json.
  3. Collez-le directement avec un raccourci clavier (Ctrl+V ou Cmd+V) sur l'interface graphique de n8n.
  4. Les 7 nœuds apparaîtront automatiquement connectés (Webhook → Supabase → If → Agent IA → Réponse, avec la branche 403).
  5. Il vous suffit ensuite de :
    • Configurer vos credentials pour le nœud Supabase — Vérifier membre (URL et Clé API du projet Supabase).
    • Configurer vos credentials pour le nœud OpenAI Chat Model (Clé API OpenAI).
    • Sauvegarder et activer le workflow.

Note technique : l'Agent IA et le modèle utilisent les nœuds LangChain de n8n (@n8n/n8n-nodes-langchain.agent et @n8n/n8n-nodes-langchain.lmChatOpenAi). Ils sont disponibles nativement dans n8n ≥ 1.19. Pour utiliser Claude (Anthropic) plutôt qu'OpenAI, remplacez le nœud OpenAI Chat Model par Anthropic Chat Model — la connexion ai_languageModel vers l'Agent IA reste identique.