Workflow: Manual N8N Automation

Workflow Details

Download Workflow
{
    "id": "zlHbtHIcCZ9enKwg",
    "meta": {
        "instanceId": "406f1bca875c48c0fa12bf65a32e67f001617a6df6d6fd6dd72bff9d20014812"
    },
    "name": "v1 helper - Find params with affected expressions",
    "tags": [],
    "nodes": [
        {
            "id": "b3dd44ca-960f-4689-9545-30a05dc0441e",
            "name": "When clicking \"Execute Workflow\"",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                580,
                320
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "96db239d-05b6-4e1d-b101-e66c2a9708f6",
            "name": "n8n",
            "type": "n8n-nodes-base.n8n",
            "position": [
                800,
                320
            ],
            "parameters": {
                "filters": {
                    "activeWorkflows": true
                }
            },
            "credentials": {
                "n8nApi": {
                    "id": "hcJ2iZYYgs54eCaT",
                    "name": "n8n account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "b2286f6b-ba37-433c-b22a-95032bc25b6e",
            "name": "Find params with affected expressions",
            "type": "n8n-nodes-base.code",
            "position": [
                1040,
                320
            ],
            "parameters": {
                "jsCode": "const AFFECTED_EXTENSIONS = ['beginningOf', 'endOfMonth', 'minus', 'plus'];\n\nconst isExpression = (value) => typeof value === 'string' && value.startsWith('={{');\n\nconst containsAny = (str, substrings) => {\n  for (const substring of substrings) {\n    if (str.includes(substring)) return true;\n  }\n  \n  return false;\n}\n\nconst isAffected = (value) => isExpression(value) && containsAny(value, AFFECTED_EXTENSIONS);\n\nfunction findParamsByTest(target, test) {\n  const parameterNames = [];\n\n  function search(obj) {\n    if (typeof obj === 'object') {\n      for (const key in obj) {\n        const value = obj[key];\n\n        if (test(value)) {\n          parameterNames.push(key);\n        } else if (typeof value === 'object') {\n          search(value);\n        }\n      }\n    }\n  }\n\n  search(target);\n\n  return parameterNames;\n}\n\nreturn $input.all().reduce((allLocations, { json: workflow }) => {\n  const perWorkflow = workflow.nodes.reduce((allLocationsPerWorkflow, node) => {\n    const perNode = findParamsByTest(node.parameters, isAffected).map(\n      (parameterName) => {\n\t\treturn {\n\t\t\tworkflowName: workflow.name,\n\t\t\tnodeName: node.name,\n\t\t\tparameterName,\n        };\n      },\n    );\n\n    return [...allLocationsPerWorkflow, ...perNode];\n  }, []);\n\n  return [...allLocations, ...perWorkflow];\n}, []);"
            },
            "typeVersion": 1
        },
        {
            "id": "ee189fa0-cf89-4b8d-8351-ed9598f18502",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                600,
                92
            ],
            "parameters": {
                "width": 548.6551724137931387303979136049747467041015625,
                "height": 191.080459770114970297072432003915309906005859375,
                "content": "## v1 Helper\n\n\u2139\ufe0f This workflow is to be run **after upgrading to n8n v1**.\n\nThis workflow returns all locations where a node in an active workflow contains a parameter using an **expression extension affected by [v1 changes](https:\/\/github.com\/n8n-io\/n8n\/pull\/6435)**. For every location, please check that the workflow still behaves as intended."
            },
            "typeVersion": 1
        }
    ],
    "active": false,
    "pinData": [],
    "settings": [],
    "versionId": "da694734-30ae-46b1-8e29-877c95b670ab",
    "connections": {
        "n8n": {
            "main": [
                [
                    {
                        "node": "Find params with affected expressions",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "When clicking \"Execute Workflow\"": {
            "main": [
                [
                    {
                        "node": "n8n",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

HubSpot Automate Triggered
View
Stickynote Send Triggered
View
Wait Splitout Automation Webhook
View
google drive to instagram, tiktok and youtube
View
Baserow markdown to html
View
Process
View
Automate Etsy Data Mining with Bright Data Scrape & Google Gemini
View
Get messages with a certain label, remove the label, and add a new one
View
Namesilo Bulk Domain Availability [Template]
View
Noop Slack Send Webhook
View