Automatisation de la gestion des prospects du formulaire de site web vers Google Sheets et Slack
Ceci est unLead Generationworkflow d'automatisation du domainecontenant 5 nœuds.Utilise principalement des nœuds comme Code, Slack, Webhook, GoogleSheets. Automatisation de la gestion des prospects du formulaire du site vers Google Sheets et Slack
- •Token Bot Slack ou URL Webhook
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Informations d'identification Google Sheets API
Nœuds utilisés (5)
Catégorie
{
"meta": {
"instanceId": "2000c64071c20843606b95c63795bb0797c41036047055a6586498e855b96efc",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "4cdc8f9c-6197-437d-92c3-b12100a790d9",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
-208,
128
],
"parameters": {
"jsCode": "const items = $input.all();\n\nconst updatedItems = items.map((item) => {\n const { name, email, businessName, message, timeline, budget } =\n item.json.body;\n return {\n name,\n email,\n businessName,\n \"project intent/need\": message,\n timeline,\n budget,\n };\n});\n\nreturn updatedItems;\n"
},
"typeVersion": 2
},
{
"id": "b64a3c66-72a0-4661-84c5-27eab0af3105",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
0,
128
],
"parameters": {
"columns": {
"value": {
"full name": "={{ $json.name }}",
"Budget Range": "={{ $json.budget }}",
"Business name": "={{ $json.businessName }}",
"Email Address": "={{ $json.email }}",
"Project Timeline": "={{ $json.timeline }}",
"Project Intent/Needs": "={{ $json['project intent/need'] }}"
},
"schema": [
{
"id": "full name",
"type": "string",
"display": true,
"required": false,
"displayName": "full name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Email Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Project Intent/Needs",
"type": "string",
"display": true,
"required": false,
"displayName": "Project Intent/Needs",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Project Timeline",
"type": "string",
"display": true,
"required": false,
"displayName": "Project Timeline",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Budget Range",
"type": "string",
"display": true,
"required": false,
"displayName": "Budget Range",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Business name",
"type": "string",
"display": true,
"required": false,
"displayName": "Business name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Preferred Communication Channel",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Preferred Communication Channel",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "How they heard about DAEX AI",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "How they heard about DAEX AI",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone Number",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Phone Number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OBxt6TX3edgxiSYnsULCuSM5OL7GYlA6W3DjNYBEpfo/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1OBxt6TX3edgxiSYnsULCuSM5OL7GYlA6W3DjNYBEpfo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OBxt6TX3edgxiSYnsULCuSM5OL7GYlA6W3DjNYBEpfo/edit?usp=drivesdk",
"cachedResultName": "client intake form"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "b0RUCwZZREhRN85o",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "d1adffe8-b7fd-46e7-aa37-ef0d910dda0d",
"name": "Déclencheur Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-416,
128
],
"webhookId": "34e9fb3f-f6bd-4a44-bb58-6fe58ffe4a78",
"parameters": {
"path": "34e9fb3f-f6bd-4a44-bb58-6fe58ffe4a78",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "4dbd211d-9db5-4567-b092-0111e9512e03",
"name": "Envoyer un message",
"type": "n8n-nodes-base.slack",
"message": "*New Website Lead Alert!* :zap:\n\nA new project inquiry has been received and logged to the Google Sheet.\n\n*Details:*\n- *Name:* {{ $('Code').item.json.name }}\n- *Email:* {{ $('Code').item.json.email }}\n- *Business Name:* {{ $('Code').item.json.businessName || 'N/A' }}\n- *Project Intent/Need:* {{ $('Code').item.json['project intent/need'] }}\n- *Timeline:* {{ $('Code').item.json.timeline || 'Not specified' }}\n- *Budget:* {{ $('Code').item.json.budget || 'Not specified' }}\n\n:clipboard: *Google Sheet Link:* https://docs.google.com/spreadsheets/d/1OBxt6TX3edgxiSYnsULCuSM5OL7GYlA6W3DjNYBEpfo/edit#gid=0\n:alarm_clock: *Received At:* {{ new Date().toLocaleString() }}\n\n:point_right: *Action:* Please review the details in the Google Sheet and follow up with the lead as soon as possible!",
"position": [
208,
128
],
"webhookId": "cd1a4d51-2ac3-4ebf-85ae-b08ef08e830f",
"parameters": {
"text": "=*New Website Lead Alert!* :zap:\\n\\nA new project inquiry has been received and logged to the Google Sheet.\\n\\n*Details:*\\n- *Name:* {{ $('Code').item.json.name }}\\n- *Email:* {{ $('Code').item.json.email }}\\n- *Business Name:* {{ $('Code').item.json.businessName || 'N/A' }}\\n- *Project Intent/Need:* {{ $('Code').item.json['project intent/need'] }}\\n- *Timeline:* {{ $('Code').item.json.timeline || 'Not specified' }}\\n- *Budget:* {{ $('Code').item.json.budget || 'Not specified' }}\\n\\n:clipboard: *Google Sheet Link:* https://docs.google.com/spreadsheets/d/1OBxt6TX3edgxiSYnsULCuSM5OL7GYlA6W3DjNYBEpfo/edit#gid=0\\n:alarm_clock: *Received At:* {{ new Date().toLocaleString() }}\\n\\n:point_right: *Action:* Please review the details in the Google Sheet and follow up with the lead as soon as possible!\" }, {",
"user": {
"__rl": true,
"mode": "list",
"value": "U08UNT9F5E2",
"cachedResultName": "daevo_workforce"
},
"select": "user",
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "rCOUwK3276xqTfQi",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "6696d004-c56f-4e9c-8f8e-9d5355561eb0",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-976,
-368
],
"parameters": {
"color": 7,
"width": 1056,
"height": 896,
"content": "Website Contact Form to Google Sheet & Slack Notification\n\nThis document provides a complete guide to setting up and configuring the n8n workflow that captures website contact form submissions, logs them to a Google Sheet, and sends real-time notifications to Slack.\n\n### Workflow Overview\n\nThis workflow automates lead management by:\n\n1. **Capturing Submissions:** A webhook or form trigger receives data from your website's contact form.\n\n2. **Transforming Data:** A Code node processes the incoming data into a clean, standardized format.\n\n3. **Logging to Google Sheet:** The processed data is appended as a new row in a designated Google Sheet, acting as your lead database.\n\n4. **Notifying Team on Slack:** A detailed alert message is sent to a specified Slack channel, ensuring immediate team awareness and prompt follow-up.\n\n### Step-by-Step Setup Guide\n\nFollow these steps to set up and activate your n8n workflow:\n\n#### 1. Import the Workflow\n\n* Copy the entire JSON content of your n8n workflow from the Canvas.\n\n* In your n8n instance, go to \"Workflows\" (left sidebar).\n\n* Click the \"New\" button (or \"+\" icon) and select \"Import from JSON.\"\n\n* Paste the copied JSON and click \"Import.\"\n\n#### 2. Configure Credentials\n\nBefore activating the workflow, you need to set up the necessary credentials for Google Sheets and Slack.\n\n* **Google Sheets Account:**\n\n 1. In n8n, go to \"Credentials\" (left sidebar).\n\n 2. Click \"New Credential\" and search for \"Google Sheets API.\"\n\n 3. Choose \"OAuth2\" authentication.\n\n 4. Follow the on-screen prompts to connect your Google Account and grant access to Google Sheets.\n\n 5. Once created, note down its ID (e.g., `b0RUCwZZREhRN85o`).\n\n* **Slack Account:**\n\n 1. In n8n, go to \"Credentials\" (left sidebar).\n\n 2. Click \"New Credential\" and search for \"Slack API.\"\n\n 3. Choose \"OAuth2\" authentication.\n\n 4. You will likely need to create a Slack App in your workspace (`api.slack.com/apps`).\n\n 5. Configure \"Bot Token Scopes\" (e.g., `chat:write`, `channels:read`).\n\n 6. Install the app to your workspace.\n\n 7. Follow the n8n authentication steps to connect your Slack workspace.\n\n 8. Once created, note down its ID (e.g., `rCOUwK3276xqTfQi`).\n\n#### 3. Prepare Your Google Sheet\n\nYou need a Google Sheet to store your form submissions.\n\n* **Create a New Google Sheet:** Go to Google Sheets and create a new spreadsheet.\n\n* **Name the Sheet:** Ensure the first sheet tab is named `Sheet1`.\n\n* **Add Column Headers:** In the first row of `Sheet1`, add the following column headers exactly as listed below:\n\n * `Full Name`\n\n * `Email Address`\n\n * `Business Name`\n\n * `Project Intent/Needs`\n\n * `Project Timeline`\n\n * `Budget Range`\n\n * `Received At` (This column will automatically record the submission timestamp)\n\n#### 4. Configure Each Node in n8n\n\nNow, go back to your imported workflow in n8n and configure each node:\n\n* **Webhook1 (Webhook Trigger):**\n\n * This node receives data from your website form.\n\n * **Path:** `34e9fb3f-f6bd-4a44-bb58-6fe58ffe4a78` (This is unique to your workflow; do not change it unless you intend to generate a new webhook URL).\n\n * After activating the workflow, you will get a \"Webhook URL\" from this node. This URL is what you'll use in your website's contact form submission settings (e.g., as the action URL for your HTML form, or in your form builder's webhook integration).\n\n* **Code (Code Node):**\n\n * This node transforms the incoming webhook data into a standardized JSON format.\n\n * No configuration is typically needed here unless your incoming form fields differ significantly from `name`, `email`, `businessName`, `message`, `timeline`, `budget`.\n\n * The code maps `item.json.body` fields to a cleaner output:\n\n ```\n const items = $input.all();\n const updatedItems = items.map((item) => {\n const { name, email, businessName, message, timeline, budget } = item.json.body;\n return {\n name,\n email,\n businessName,\n \"project intent/need\": message, // Renames 'message'\n timeline,\n budget,\n };\n });\n return updatedItems;\n \n ```\n\n* **Google Sheets1 (Google Sheets Node):**\n\n * **Operation:** `Append`\n\n * **Credentials:** Select your \"Google Sheets Account\" credential (e.g., `b0RUCwZZREhRN85o`).\n\n * **Spreadsheet ID:** Replace `1OBxt6TX3edgxiSYnsULCuSM5OL7GYlA6W3DjNYBEpfo` with *your actual Google Sheet ID*. You can find this in the URL of your Google Sheet.\n\n * **Sheet Name:** `Sheet1` (or your chosen sheet name).\n\n * **Columns Mapping:** Ensure the mapping is correct. It should look like this:\n\n * `full name`: `={{ $json.name }}`\n\n * `Email Address`: `={{ $json.email }}`\n\n * `Project Intent/Needs`: `={{ $json['project intent/need'] }}`\n\n * `Project Timeline`: `={{ $json.timeline }}`\n\n * `Budget Range`: `={{ $json.budget }}`\n\n * `Business name`: `={{ $json.businessName }}`\n\n * `Received At`: `={{ new Date().toLocaleString() }}` (Manually add this mapping if not present, using the expression)\n\n* **Send a message (Slack Node):**\n\n * **Operation:** `Send a message`\n\n * **Credentials:** Select your \"Slack Account\" credential (e.g., `rCOUwK3276xqTfQi`).\n\n * **Channel ID:** Replace `YOUR_SLACK_CHANNEL_ID` with the actual ID of the Slack channel where you want the alerts to appear (e.g., `C0123456789`). You can get this by right-clicking the channel in Slack and selecting \"Copy link\" - the ID is the last part of the URL.\n\n * **Message:** This is the detailed alert message:\n\n ```\n *New Website Lead Alert!* :zap:\n \n A new project inquiry has been received and logged to the Google Sheet.\n \n *Details:*\n - *Name:* {{ $('Code').item.json.name }}\n - *Email:* {{ $('Code').item.json.email }}\n - *Business Name:* {{ $('Code').item.json.businessName || 'N/A' }}\n - *Project Intent/Need:* {{ $('Code').item.json['project intent/need'] }}\n - *Timeline:* {{ $('Code').item.json.timeline || 'Not specified' }}\n - *Budget:* {{ $('Code').item.json.budget || 'Not specified' }}\n \n :clipboard: *Google Sheet Link:* [https://docs.google.com/spreadsheets/d/1OBxt6TX3edgxiSYnsULCuSM5OL7GYlA6W3DjNYBEpfo/edit#gid=0](https://docs.google.com/spreadsheets/d/1OBxt6TX3edgxiSYnsULCuSM5OL7GYlA6W3DjNYBEpfo/edit#gid=0)\n :alarm_clock: *Received At:* {{ new Date().toLocaleString() }}\n \n :point_right: *Action:* Please review the details in the Google Sheet and follow up with the lead as soon as possible!\n \n ```\n\n#### 5. Activate the Workflow\n\n* Once all credentials and node parameters are configured, click the \"Activate\" toggle in the top right corner of the n8n workflow editor.\n\n#### 6. Test the Workflow\n\n* Copy the \"Production Webhook URL\" from the \"Webhook1\" node.\n\n* Use a tool like Postman, Insomnia, or a simple HTML form on a test page to send a `POST` request to this URL with a JSON body containing your test data (e.g., `{\"name\": \"Test User\", \"email\": \"test@example.com\", \"businessName\": \"Test Co\", \"message\": \"I need automation!\", \"timeline\": \"ASAP\", \"budget\": \"$1000-$2000\"}`).\n\n* Alternatively, if you're integrating with an existing website form, submit a test entry through your website.\n\n* Verify that a new row appears in your Google Sheet and a message is posted in your designated Slack channel.\n\nThis comprehensive guide should help you and others set up this high-ROI automation efficiently"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"4cdc8f9c-6197-437d-92c3-b12100a790d9": {
"main": [
[
{
"node": "b64a3c66-72a0-4661-84c5-27eab0af3105",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "4cdc8f9c-6197-437d-92c3-b12100a790d9",
"type": "main",
"index": 0
}
]
]
},
"b64a3c66-72a0-4661-84c5-27eab0af3105": {
"main": [
[
{
"node": "4dbd211d-9db5-4567-b092-0111e9512e03",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Débutant - Génération de leads
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
David Olusola
@dae221I help ambitious businesses eliminate operational bottlenecks and scale faster with AI automation. My clients typically see 40-60% efficiency gains within 90 days. Currently accepting 3 new projects this quarter - david@daexai.com
Partager ce workflow