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

Wait Code Create Scheduled
View
Bubble Data Access
View
Telegram Automate Triggered
View
Filter Slack Send Scheduled
View
Clickup Respondtowebhook Create Webhook
View
Form Stickynote Send Triggered
View
Telegram Splitout Create Triggered
View
Create
View
AI T-Shirt Redesign Workflow from any Mockup Image
View
Manual Keap Automate Triggered
View