Dwenola
Chapitre 4 : Automatiser avec n8n

Créer son premier workflow n8n pas à pas (tutoriel complet)

Par Billy Rousseau9 min de lectureLeçon 5 · Chapitre 4

Votre premier workflow n8n en 30 minutes

Créer un workflow n8n, c'est comme construire un circuit de dominos numériques : vous placez les pièces, vous les connectez et vous les laissez tomber automatiquement. Ce tutoriel vous guide pas à pas pour construire un workflow concret et utile : un système qui reçoit les demandes de contact de votre site, les qualifie automatiquement avec l'IA et envoie une réponse personnalisée. En 30 minutes, vous aurez un workflow fonctionnel.

Ce workflow est celui que nous configurons le plus souvent chez Dwenola pour nos clients. Il fait gagner en moyenne 45 minutes par jour à un dirigeant de PME qui reçoit entre 5 et 20 demandes de contact quotidiennes.

Ce que nous allons construire

Le workflow complet

  1. Un formulaire de contact est soumis sur votre site
  2. n8n reçoit les données du formulaire
  3. Claude analyse le message et détermine le type de demande (devis, support, partenariat, spam)
  4. Si ce n'est pas du spam, Claude génère une réponse personnalisée
  5. L'email de réponse est envoyé automatiquement au prospect
  6. Les informations du contact sont ajoutées dans un Google Sheet
  7. Une notification est envoyée sur votre email ou Slack

Les prérequis

  • Un compte n8n (cloud ou auto-hébergé, voir la leçon précédente)
  • Une clé API Anthropic (Claude) ou OpenAI (ChatGPT)
  • Un compte Gmail ou un serveur SMTP
  • Un Google Sheet vierge

Étape 1 : Créer le déclencheur (Webhook)

Le webhook est le point d'entrée de votre workflow. C'est une URL que votre site appelle chaque fois qu'un formulaire est soumis.

Configuration

  1. Dans n8n, cliquez sur "+" pour ajouter un nouveau workflow
  2. Nommez-le "Réponse automatique formulaire de contact"
  3. Cliquez sur "+" pour ajouter un noeud
  4. Recherchez "Webhook" et sélectionnez-le
  5. Configurez :
    • HTTP Method : POST
    • Path : formulaire-contact
    • Authentication : None (pour le moment)

n8n génère une URL du type :

https://votre-instance.n8n.cloud/webhook/formulaire-contact

C'est cette URL que votre site web appellera. Copiez-la.

Connecter votre formulaire web

Sur votre site, modifiez le formulaire de contact pour qu'il envoie les données à cette URL. Voici un exemple en JavaScript :

fetch('https://votre-instance.n8n.cloud/webhook/formulaire-contact', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    nom: 'Jean Dupont',
    email: 'jean@exemple.com',
    telephone: '06 12 34 56 78',
    message: 'Bonjour, je cherche une agence pour refaire mon site internet.'
  })
});

Tester le déclencheur

  1. Cliquez sur "Listen for test event" dans le noeud Webhook
  2. Envoyez un test depuis votre formulaire (ou utilisez un outil comme Postman)
  3. Les données devraient apparaître dans n8n

Étape 2 : Classifier la demande avec l'IA

Avant de répondre, nous voulons savoir si c'est une vraie demande ou du spam, et de quel type de demande il s'agit.

Configuration du noeud IA

  1. Ajoutez un noeud "AI Agent" ou "OpenAI" (ou "Anthropic" si vous utilisez Claude)
  2. Sélectionnez votre credential (clé API)
  3. Configurez :
    • Model : claude-sonnet-4-20250514 (ou gpt-4o)
    • System Prompt :
Tu es un assistant de qualification de leads pour une agence web.
Analyse le message ci-dessous et retourne un JSON avec :
- "type": "devis" | "support" | "partenariat" | "information" | "spam"
- "priorite": "haute" | "moyenne" | "basse"
- "resume": résumé en une phrase du besoin
- "langue": "fr" | "en" | "autre"

Réponds UNIQUEMENT avec le JSON, rien d'autre.
  • User Message : {{ $json.message }}

Le résultat sera un JSON structuré que les noeuds suivants utiliseront pour prendre des décisions.

Étape 3 : Filtrer le spam

Ajoutez un noeud "If" (condition) pour séparer les vrais messages du spam.

Configuration

  1. Ajoutez un noeud "If"
  2. Condition : {{ $json.type }} is not equal to spam
  3. La branche "true" continue le workflow
  4. La branche "false" s'arrête (ou enregistre le spam dans un log)

Étape 4 : Générer la réponse personnalisée

Pour les messages légitimes, Claude génère une réponse personnalisée basée sur le contenu de la demande.

Configuration du noeud IA

  1. Ajoutez un nouveau noeud "Anthropic" (ou "OpenAI")
  2. Configurez :
    • Model : claude-sonnet-4-20250514
    • System Prompt :
Tu es l'assistant de réponse de [Nom de votre entreprise],
[description courte de votre activité] à [ville].

Rédige un email de réponse au message du prospect.
L'email doit :
- Accuser réception de sa demande
- Montrer que nous avons compris son besoin spécifique
- Proposer une prochaine étape concrète (appel de 15 min, visite, devis)
- Être chaleureux mais professionnel
- Faire 80-120 mots maximum
- Se terminer par la signature : [Votre nom], [Votre titre]

Ne commence pas par "Cher/Chère". Utilise le prénom si disponible.
Ne mentionne pas que cet email est généré par une IA.
  • User Message :
Prospect : {{ $('Webhook').item.json.nom }}
Email : {{ $('Webhook').item.json.email }}
Message : {{ $('Webhook').item.json.message }}
Type de demande : {{ $('If').item.json.type }}
Résumé : {{ $('If').item.json.resume }}

Étape 5 : Envoyer l'email de réponse

Configuration du noeud Gmail (ou SMTP)

  1. Ajoutez un noeud "Gmail" (ou "Send Email" pour SMTP)
  2. Sélectionnez votre credential Gmail
  3. Configurez :
    • To : {{ $('Webhook').item.json.email }}
    • Subject : Re: Votre demande - [Nom de votre entreprise]
    • Email Type : Text
    • Message : {{ $json.message }} (la réponse générée par Claude)
    • Reply To : votre adresse email professionnelle

Étape 6 : Enregistrer dans Google Sheets

Conservez une trace de chaque demande dans un tableur pour le suivi.

Préparation du Google Sheet

Créez un Google Sheet avec ces colonnes :

  • A : Date
  • B : Nom
  • C : Email
  • D : Téléphone
  • E : Message
  • F : Type
  • G : Priorité
  • H : Résumé
  • I : Statut

Configuration du noeud

  1. Ajoutez un noeud "Google Sheets"
  2. Action : Append Row (ajouter une ligne)
  3. Sélectionnez votre Google Sheet
  4. Mappez les colonnes :
    • Date : {{ $now.format('dd/MM/yyyy HH:mm') }}
    • Nom : {{ $('Webhook').item.json.nom }}
    • Email : {{ $('Webhook').item.json.email }}
    • Téléphone : {{ $('Webhook').item.json.telephone }}
    • Message : {{ $('Webhook').item.json.message }}
    • Type : {{ $('If').item.json.type }}
    • Priorité : {{ $('If').item.json.priorite }}
    • Résumé : {{ $('If').item.json.resume }}
    • Statut : Nouveau

Étape 7 : Envoyer une notification

Recevez une alerte quand une demande prioritaire arrive.

Configuration

  1. Ajoutez un noeud "If" après Google Sheets
  2. Condition : priorité equals haute
  3. Sur la branche "true", ajoutez un noeud "Gmail" (ou Slack)
  4. Envoyez-vous un email :
    • Subject : URGENT : Nouvelle demande de {{ $('Webhook').item.json.nom }}
    • Message : Le résumé de la demande avec le lien vers votre Google Sheet

Étape 8 : Activer le workflow

  1. Vérifiez que tous les noeuds sont connectés dans le bon ordre
  2. Cliquez sur "Save" pour sauvegarder
  3. Basculez le switch "Active" en haut à droite
  4. Le workflow est maintenant en production

Le schéma final du workflow

Webhook
  |
  v
Claude (Classification)
  |
  v
If (Spam ?)
  |         \
  | Non      | Oui
  v           v
Claude      (Stop)
(Réponse)
  |
  v
Gmail (Envoi réponse)
  |
  v
Google Sheets (Enregistrement)
  |
  v
If (Priorité haute ?)
  |         \
  | Oui      | Non
  v           v
Gmail       (Fin)
(Notification)

Tester en conditions réelles

Le test complet

  1. Remplissez votre formulaire de contact avec un message réaliste
  2. Vérifiez que l'email de réponse arrive dans la boîte du prospect (utilisez une de vos adresses secondaires)
  3. Vérifiez que la ligne est ajoutée dans votre Google Sheet
  4. Vérifiez que vous recevez la notification si la priorité est haute

Les problèmes courants

Problème Cause probable Solution
Le webhook ne reçoit rien URL incorrecte ou workflow inactif Vérifiez l'URL et activez le workflow
L'IA ne répond pas Clé API invalide ou crédit épuisé Vérifiez votre credential et votre solde
L'email n'est pas envoyé Credential Gmail expiré Reconnectez votre compte Gmail
Les données manquent dans le Sheet Mauvais mapping des colonnes Vérifiez les noms de colonnes

Aller plus loin

Ce workflow de base peut être enrichi :

  • Ajouter un délai de 2 minutes avant l'envoi (pour paraître plus naturel)
  • Connecter un CRM (HubSpot, Pipedrive) au lieu de Google Sheets
  • Ajouter une branche spécifique pour les demandes de devis qui calcule un montant estimatif
  • Créer un workflow de relance automatique si le prospect ne répond pas sous 48h

La prochaine leçon présente 5 automatisations prêtes à l'emploi pour les PME, que vous pouvez reproduire avec la méthode apprise ici.

Ce workflow coûte combien à faire tourner ?

Avec Claude Haiku via l'API, chaque classification + réponse coûte environ 0,01 euro (1 centime). Pour 20 demandes par jour, soit 600 par mois, le coût IA est d'environ 6 euros par mois. Ajoutez le coût de n8n (gratuit en auto-hébergé, 24 euros en cloud) et vous avez un système complet pour moins de 30 euros par mois.

Puis-je adapter ce workflow pour un formulaire de devis ?

Oui. La structure est identique, seuls le prompt et les données changent. Au lieu de qualifier le type de demande, l'IA peut estimer un montant en fonction des critères du formulaire et générer un pré-devis PDF. Nous le faisons régulièrement pour nos clients chez Dwenola.

Le prospect sait-il que la réponse est générée par l'IA ?

Non, sauf si vous le mentionnez. Le prompt est configuré pour produire un email naturel et personnalisé. En pratique, les prospects ne font pas la différence. L'important est que la réponse arrive rapidement et qu'elle soit pertinente. Le suivi humain prend le relais dès que la conversation avance.

Vous voulez automatiser sans vous prendre la tête ? On identifie vos tâches répétitives gratuitement en 30 minutes. On en discute ?

Résumer l'article avec