Workflow: Code Form Automation

Workflow Details

Download Workflow
{
    "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.20000000000000017763568394002504646778106689453125
        },
        {
            "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.100000000000000088817841970012523233890533447265625
        },
        {
            "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\u2019s 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.399999999999999911182158029987476766109466552734375
        },
        {
            "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.399999999999999911182158029987476766109466552734375
        }
    ],
    "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
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Schedule Removeduplicates Create Webhook
View
GitHub Stickynote Update Triggered
View
Scrape Web Data with Bright Data, Google Gemini and MCP Automated AI Agent
View
AI Phone Agent with RetellAI
View
Automated Research Report Generation with OpenAI, Wikipedia, Google Search, and Gmail/Telegram
View
Build a Chatbot, Voice Agent and Phone Agent with Voiceflow, Google Calendar and RAG
View
Manual GoogleDrive Automate Triggered
View
Auth0 User Login
View
Airtable markdown to html
View
Send Typeforms leads via Whatsapp (Twilio)
View