Automatisation Google Sheets avec n8n : gestion de formulaires dynamiques
- Ce workflow n8n a pour objectif de simplifier la gestion des formulaires en ligne, en intégrant des champs déroulants dynamiques qui s'adaptent aux réponses des utilisateurs. Dans un contexte où la collecte de données précises est cruciale, ce type d'automatisation est particulièrement utile pour les entreprises qui souhaitent optimiser leurs processus de saisie d'informations. Par exemple, une entreprise peut utiliser ce workflow pour gérer des inscriptions à des événements, des enquêtes ou des demandes de services, tout en garantissant que les utilisateurs ne voient que les options pertinentes en fonction de leurs choix précédents.
- Le workflow débute avec un déclencheur de type 'On form submission', qui active le processus dès qu'un utilisateur soumet un formulaire. Ensuite, il utilise le nœud 'Google Sheets Trigger' pour récupérer les données soumises et les stocker dans une feuille de calcul Google Sheets. À partir de là, plusieurs nœuds 'Sticky Note' sont utilisés pour afficher des messages ou des informations contextuelles, tandis que le nœud 'Write JSON' permet de structurer les données avant leur traitement. Le workflow se termine par un nœud 'Execute Workflow' qui peut déclencher d'autres processus automatisés en fonction des données collectées.
- Les bénéfices de cette automatisation sont multiples : elle réduit les erreurs de saisie, améliore l'expérience utilisateur et permet un suivi efficace des réponses. En intégrant ce workflow, les entreprises peuvent gagner du temps et augmenter leur efficacité opérationnelle tout en offrant une meilleure expérience à leurs clients.
Workflow n8n Google Sheets, formulaires : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Google Sheets, formulaires : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"id": "RKbQHfblpcvMGZ4w",
"meta": {
"instanceId": "d47f3738b860eed937a1b18d7345fa2c65cf4b4957554e29477cb064a7039870"
},
"name": "Form with Dynamic Dropdown Field",
"tags": [],
"nodes": [
{
"id": "aa627a35-9bea-4c07-b7e7-26f048564443",
"name": "n8n | get wf",
"type": "n8n-nodes-base.n8n",
"position": [
540,
-180
],
"parameters": {
"operation": "get",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"requestOptions": {}
},
"credentials": {
"n8nApi": {
"id": "us0k8UE7R2MZPFBK",
"name": "n8n account"
}
},
"typeVersion": 1
},
{
"id": "902a8e45-f4b4-469c-96a6-80002de5f6dc",
"name": "n8n | update",
"type": "n8n-nodes-base.n8n",
"position": [
1060,
-180
],
"parameters": {
"operation": "update",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"requestOptions": {},
"workflowObject": "={{ JSON.stringify($json) }}"
},
"credentials": {
"n8nApi": {
"id": "us0k8UE7R2MZPFBK",
"name": "n8n account"
}
},
"typeVersion": 1
},
{
"id": "3e9e5c16-0080-4cba-8a8a-8f24f7266fcb",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
40,
-620
],
"webhookId": "3e975d29-df26-49fb-8dcf-abe8fe8bc4e6",
"parameters": {
"options": {},
"formTitle": "Example Title",
"formFields": {
"values": [
{
"fieldLabel": "Example text field"
},
{
"fieldType": "dropdown",
"fieldLabel": "Example dropdown",
"fieldOptions": {
"values": [
{
"option": "test publieke ruimtes"
},
{
"option": "Demonstraties"
},
{
"option": "Demonstraties"
},
{
"option": "Juridisch medewerker IE-recht Streetlife"
},
{
"option": "Bamboe"
},
{
"option": "Klaar?"
},
{
"option": "Dannu?"
}
]
}
}
]
}
},
"typeVersion": 2.2
},
{
"id": "0b874994-c123-44f8-b0f5-0b365b57d945",
"name": "Google Sheets Trigger",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
-460,
-180
],
"parameters": {
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1F73a7uuzLAq916w2JFndumv0JhnCAvOTN-Cn_OOP3uA/edit#gid=0",
"cachedResultName": "Blad1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1F73a7uuzLAq916w2JFndumv0JhnCAvOTN-Cn_OOP3uA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1F73a7uuzLAq916w2JFndumv0JhnCAvOTN-Cn_OOP3uA/edit?usp=drivesdk",
"cachedResultName": "obsidian-n8n"
},
"includeInOutput": "both"
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"id": "FV58wiwivBMosfix",
"name": "Google Sheets Trigger account"
}
},
"typeVersion": 1
},
{
"id": "4c9bfed8-a758-40b9-9c74-53bedc1d1aa3",
"name": "Execute Workflow",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
240,
-620
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
}
},
"typeVersion": 1.1
},
{
"id": "6e9d4a5a-9583-4b61-aea1-dd4892230e7c",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-520,
-660
],
"parameters": {
"width": 960,
"height": 240,
"content": "## Form setup\n\n- Customize your form fields. \n- The dropdown field will auto-update with values from your data source. \n- Other form fields can be added as needed (limited to one dropdown field).\n- Connect to your workflow that processes the submitted form data.\n\n### Form requires production mode for testing"
},
"typeVersion": 1
},
{
"id": "41c364f4-5b1f-42fd-841b-a6f99b585804",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-520,
-400
],
"parameters": {
"width": 440,
"height": 400,
"content": "## Data source setup\n\n- Connect to your Google Sheet containing dropdown values\n- Node can be replaced with any other data source (API, database)\n- Set timing trigger"
},
"typeVersion": 1
},
{
"id": "cda8f803-1773-4df7-90b9-4d8cd0469cd8",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
-400
],
"parameters": {
"width": 260,
"height": 400,
"content": "## Data formatting\n\n- Extracts needed data from source\n- Renames field to 'value' (do not change this name)"
},
"typeVersion": 1
},
{
"id": "e9594ad1-3bb8-4da6-95b3-cb610a17c1bb",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
-400
],
"parameters": {
"height": 400,
"content": "## Nested properties\n\n- Transforms the data to the desired format"
},
"typeVersion": 1
},
{
"id": "806a2502-5c6c-435c-a20e-8ca0eee92822",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
-400
],
"parameters": {
"height": 400,
"content": "## Get Workflow \n\n- Gets the current workflow data"
},
"typeVersion": 1
},
{
"id": "385c3e64-9893-4e3f-b789-abbf079fa8b1",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
740,
-400
],
"parameters": {
"height": 400,
"content": "## Add Dropdown Values \n- Replaces the nested parameters of the Dropdown Form Field with the nested properties sourced from the data."
},
"typeVersion": 1
},
{
"id": "f43324fc-6790-445b-a72b-ae4afb051101",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1000,
-400
],
"parameters": {
"height": 400,
"content": "## Update Form \n\n- Replaces the current workflow’s JSON with the updated JSON containing the new Dropdown values."
},
"typeVersion": 1
},
{
"id": "317694bd-590f-4eb4-a53f-f4d5d2d1ab16",
"name": "Write JSON",
"type": "n8n-nodes-base.code",
"position": [
280,
-180
],
"parameters": {
"jsCode": "const inputArray = items.map(item => item.json);\n\nconst output = [\n {\n nodes: [\n {\n parameters: {\n formFields: {\n values: [\n {\n fieldOptions: {\n values: inputArray.map(entry => ({ option: entry.value }))\n }\n }\n ]\n }\n }\n }\n ]\n }\n];\n\n// Return the transformed output\nreturn output.map(item => ({ json: item }));"
},
"typeVersion": 2
},
{
"id": "08b3c0b3-3df3-40d9-80ce-bd7c763fdbdb",
"name": "Replace values",
"type": "n8n-nodes-base.set",
"position": [
820,
-180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "38ef2b43-b903-4e96-b098-9da2d8c1c153",
"name": "={{ \n (() => {\n const nodeIndex = $json.nodes.findIndex(\n node => node.parameters?.formFields?.values.some(\n value => value.fieldType === 'dropdown' && value.fieldOptions?.values\n )\n );\n\n if (nodeIndex === -1) return 'No matching node found';\n\n const valueIndex = $json.nodes[nodeIndex].parameters.formFields.values.findIndex(\n value => value.fieldType === 'dropdown' && value.fieldOptions?.values\n );\n\n if (valueIndex === -1) return `nodes[${nodeIndex}].parameters.formFields.values - No matching dropdown value found`;\n\n return `nodes[${nodeIndex}].parameters.formFields.values[${valueIndex}].fieldOptions.values`;\n })()\n}}",
"type": "array",
"value": "={{ $('Write JSON').item.json.nodes[0].parameters.formFields.values[0].fieldOptions.values }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "07635565-f8ea-4fac-b93c-069fbe065ce8",
"name": "Get all values",
"type": "n8n-nodes-base.googleSheets",
"position": [
-240,
-180
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1F73a7uuzLAq916w2JFndumv0JhnCAvOTN-Cn_OOP3uA/edit#gid=0",
"cachedResultName": "Blad1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1F73a7uuzLAq916w2JFndumv0JhnCAvOTN-Cn_OOP3uA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1F73a7uuzLAq916w2JFndumv0JhnCAvOTN-Cn_OOP3uA/edit?usp=drivesdk",
"cachedResultName": "obsidian-n8n"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "3Pu0wlfxgNYzVqY6",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "9ce7bf73-211a-4f5b-b39d-81a2d513a3ef",
"name": "Format to 'values'",
"type": "n8n-nodes-base.set",
"position": [
20,
-180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e18aa12e-f277-4257-ba27-9262cc7b866a",
"name": "value",
"type": "string",
"value": "={{ $json.title }}"
}
]
}
},
"typeVersion": 3.4
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "d69a3011-97a6-44e9-9b7e-c8e9a248964a",
"connections": {
"Write JSON": {
"main": [
[
{
"node": "n8n | get wf",
"type": "main",
"index": 0
}
]
]
},
"n8n | get wf": {
"main": [
[
{
"node": "Replace values",
"type": "main",
"index": 0
}
]
]
},
"Get all values": {
"main": [
[
{
"node": "Format to 'values'",
"type": "main",
"index": 0
}
]
]
},
"Replace values": {
"main": [
[
{
"node": "n8n | update",
"type": "main",
"index": 0
}
]
]
},
"Format to 'values'": {
"main": [
[
{
"node": "Write JSON",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Execute Workflow",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets Trigger": {
"main": [
[
{
"node": "Get all values",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Google Sheets, formulaires : pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises de toutes tailles qui utilisent Google Sheets pour gérer des données collectées via des formulaires en ligne. Il est particulièrement adapté aux équipes marketing, aux responsables d'événements et aux professionnels de la collecte de données, qu'ils soient novices ou expérimentés en automatisation.
Workflow n8n Google Sheets, formulaires : problème résolu
Ce workflow résout le problème de la gestion manuelle des données issues de formulaires en ligne, qui peut être source d'erreurs et de pertes de temps. En automatisant le processus, les utilisateurs évitent les saisies répétitives et les incohérences de données. Ils obtiennent ainsi un système fluide et efficace pour collecter et traiter les informations, ce qui leur permet de se concentrer sur des tâches à plus forte valeur ajoutée.
Workflow n8n Google Sheets, formulaires : étapes du workflow
Étape 1 : Le workflow est déclenché par la soumission d'un formulaire.
- Étape 1 : Les données soumises sont récupérées grâce au nœud 'Google Sheets Trigger'.
- Étape 2 : Les informations sont traitées et formatées à l'aide des nœuds 'Write JSON' et 'Replace values'.
- Étape 3 : Des messages contextuels sont affichés via plusieurs nœuds 'Sticky Note'.
- Étape 4 : Le workflow peut ensuite exécuter d'autres processus automatisés selon les besoins.
Workflow n8n Google Sheets, formulaires : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier les paramètres du nœud 'Google Sheets Trigger' pour indiquer le nom de la feuille et l'identifiant du document Google Sheets. Il est également possible d'ajuster les messages affichés dans les nœuds 'Sticky Note' pour qu'ils correspondent à votre branding. Si vous souhaitez intégrer d'autres outils, vous pouvez ajouter des nœuds supplémentaires comme des notifications par email ou des intégrations avec des CRM. Assurez-vous de sécuriser le flux en vérifiant les permissions d'accès aux données dans Google Sheets.