Vue d'ensemble
Ce workflow capture automatiquement chaque nouveau lead soumis via votre formulaire web, enregistre les données dans une feuille Google Sheets ou un CRM, et envoie un email de confirmation au prospect ainsi qu'une notification interne à votre équipe.
Déclencheur : Webhook (soumission du formulaire) Sortie : Lead enregistré dans Google Sheets + email de confirmation + notification Slack
Gain de temps : 30 à 60 minutes par jour pour les solopreneurs recevant 5 à 20 leads quotidiens.
Prérequis
- Instance n8n (cloud ou self-hosted)
- Compte Google avec accès à Google Sheets
- Compte email configuré (Gmail, SMTP, ou Resend)
- Optionnel : compte Slack pour les notifications internes
- Formulaire web avec support webhook (Typeform, Tally, ou formulaire HTML personnalisé)
Le workflow
{
"meta": {
"instanceId": "vault-template"
},
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "lead-capture",
"responseMode": "responseNode",
"options": {}
},
"name": "Réception du formulaire",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300],
"webhookId": "lead-capture-webhook"
},
{
"parameters": {
"jsCode": "const body = $input.first().json.body || $input.first().json;\nconst nom = body.nom || body.name || '';\nconst email = body.email || '';\nconst message = body.message || body.sujet || '';\nconst source = body.source || 'formulaire-web';\nconst timestamp = new Date().toISOString();\n\nreturn [{\n json: {\n nom,\n email,\n message,\n source,\n timestamp,\n statut: 'nouveau'\n }\n}];"
},
"name": "Normaliser les données",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [450, 300]
},
{
"parameters": {
"operation": "append",
"documentId": { "__rl": true, "value": "[ID_GOOGLE_SHEET]", "mode": "id" },
"sheetName": { "__rl": true, "value": "Leads", "mode": "name" },
"columns": {
"mappingMode": "defineBelow",
"value": {
"Nom": "={{ $json.nom }}",
"Email": "={{ $json.email }}",
"Message": "={{ $json.message }}",
"Source": "={{ $json.source }}",
"Date": "={{ $json.timestamp }}",
"Statut": "={{ $json.statut }}"
}
}
},
"name": "Enregistrer dans Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4,
"position": [650, 200]
},
{
"parameters": {
"fromEmail": "[VOTRE_EMAIL]",
"toEmail": "={{ $json.email }}",
"subject": "Merci pour votre message, {{ $json.nom }} !",
"emailType": "html",
"message": "<p>Bonjour {{ $json.nom }},</p><p>Merci d'avoir pris contact avec nous. Nous avons bien reçu votre message et vous répondrons dans les 24 heures.</p><p>À très bientôt,<br>[VOTRE_NOM]</p>"
},
"name": "Email de confirmation au lead",
"type": "n8n-nodes-base.emailSend",
"typeVersion": 2,
"position": [650, 350]
},
{
"parameters": {
"channel": "#leads",
"text": "🎯 Nouveau lead : *{{ $json.nom }}* ({{ $json.email }})\n> {{ $json.message }}\n*Source :* {{ $json.source }}",
"otherOptions": {}
},
"name": "Notification Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 2,
"position": [650, 500]
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={ \"success\": true, \"message\": \"Lead enregistré\" }"
},
"name": "Réponse webhook",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [850, 300]
}
],
"connections": {
"Réception du formulaire": {
"main": [
[{ "node": "Normaliser les données", "type": "main", "index": 0 }]
]
},
"Normaliser les données": {
"main": [
[
{ "node": "Enregistrer dans Google Sheets", "type": "main", "index": 0 },
{ "node": "Email de confirmation au lead", "type": "main", "index": 0 },
{ "node": "Notification Slack", "type": "main", "index": 0 }
]
]
},
"Enregistrer dans Google Sheets": {
"main": [
[{ "node": "Réponse webhook", "type": "main", "index": 0 }]
]
}
}
}
Configuration étape par étape
1. Importer le workflow
Dans n8n, allez dans Workflows > Import from File et importez le JSON ci-dessus. Le workflow apparaît avec tous les noeuds pré-configurés.
2. Configurer le webhook
Cliquez sur le noeud Réception du formulaire et copiez l'URL webhook générée. Elle ressemble à :
https://votre-instance.n8n.cloud/webhook/lead-capture
Collez cette URL dans la configuration de votre formulaire (champ "webhook URL" ou "action URL").
3. Configurer Google Sheets
Dans le noeud Enregistrer dans Google Sheets :
- Connectez vos credentials Google (OAuth2)
- Remplacez
[ID_GOOGLE_SHEET]par l'identifiant de votre feuille (visible dans l'URL Google Sheets) - Créez un onglet nommé "Leads" avec les colonnes :
Nom,Email,Message,Source,Date,Statut
4. Configurer l'email de confirmation
Dans le noeud Email de confirmation au lead :
- Remplacez
[VOTRE_EMAIL]par votre adresse expéditeur - Remplacez
[VOTRE_NOM]dans le corps du message - Connectez vos credentials email (Gmail ou SMTP)
5. Configurer Slack (optionnel)
Dans le noeud Notification Slack :
- Connectez vos credentials Slack (OAuth2)
- Modifiez le nom du channel (
#leadspar défaut) - Si vous n'utilisez pas Slack, supprimez ce noeud
6. Activer le workflow
Cliquez sur le bouton Active en haut à droite. Le webhook est maintenant prêt à recevoir des leads.
Personnalisation
- Changer la destination : remplacez Google Sheets par Notion (noeud Notion), Airtable, ou HubSpot pour centraliser vos leads dans votre outil préféré
- Ajouter un filtre anti-spam : insérez un noeud IF après "Normaliser les données" pour ignorer les emails avec des domaines jetables (mailinator.com, etc.)
- Enrichissement automatique : ajoutez un noeud HTTP Request vers Clearbit ou Hunter.io entre la normalisation et l'enregistrement pour enrichir les données du prospect
- Segmentation par source : modifiez le noeud Code pour détecter automatiquement la source (LinkedIn, site web, publicité) et appliquer des tags différents dans votre CRM
- Email personnalisé : utilisez un noeud Switch pour envoyer des emails de confirmation différents selon le produit ou service demandé