AutomationFlowsWeb Scraping › Workflow Control

Workflow Control

50_541_WORKFLOW_CONTROL. Uses executeWorkflowTrigger, httpRequest. Event-driven trigger; 26 nodes.

Event trigger★★★★☆ complexity26 nodesExecute Workflow TriggerHTTP Request
Web Scraping Trigger: Event Nodes: 26 Complexity: ★★★★☆ Added:

This workflow follows the Execute Workflow Trigger → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "50_541_WORKFLOW_CONTROL",
  "nodes": [
    {
      "id": "70a-trigger",
      "name": "When Called by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "typeVersion": 1,
      "position": [
        250,
        300
      ],
      "parameters": {}
    },
    {
      "id": "70a-route",
      "name": "Route Action",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [
        470,
        300
      ],
      "parameters": {
        "rules": {
          "rules": [
            {
              "outputKey": "LIST",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": ""
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.intent }}",
                    "rightValue": "LIST_WORKFLOWS",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              }
            },
            {
              "outputKey": "ACTIVATE",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": ""
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.intent }}",
                    "rightValue": "ACTIVATE_WORKFLOW",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              }
            },
            {
              "outputKey": "DEACTIVATE",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": ""
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.intent }}",
                    "rightValue": "DEACTIVATE_WORKFLOW",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              }
            },
            {
              "outputKey": "TRIGGER",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": ""
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.intent }}",
                    "rightValue": "TRIGGER_WORKFLOW",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              }
            },
            {
              "outputKey": "SCHEDULE",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": ""
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.intent }}",
                    "rightValue": "UPDATE_SCHEDULE",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              }
            },
            {
              "outputKey": "CONFIRM",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": ""
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.isConfirmation }}",
                    "rightValue": true,
                    "operator": {
                      "type": "boolean",
                      "operation": "equal"
                    }
                  }
                ]
              }
            }
          ]
        },
        "options": {
          "fallbackOutput": "extra"
        }
      }
    },
    {
      "id": "70a-list-fetch",
      "name": "Fetch All Workflows",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        720,
        80
      ],
      "parameters": {
        "method": "GET",
        "url": "http://10.0.1.29:5678/api/v1/workflows",
        "authentication": "none",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-N8N-API-KEY",
              "value": "={{ $env.N8N_API_KEY }}"
            }
          ]
        },
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "limit",
              "value": "100"
            }
          ]
        },
        "options": {
          "timeout": 8000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-list-format",
      "name": "Format Workflow List",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        960,
        80
      ],
      "parameters": {
        "jsCode": "const chatId = $('When Called by Another Workflow').first().json.chatId;\nconst data = $input.first().json;\nconst workflows = data?.data ?? data?.workflows ?? [];\n\nif (workflows.length === 0) {\n  return [{ json: { chatId, response: '\u274c Keine Workflows gefunden.' } }];\n}\n\nconst active = workflows.filter(w => w.active);\nconst inactive = workflows.filter(w => !w.active);\n\nconst formatLine = w => {\n  const status = w.active ? '\u2705' : '\u23f8';\n  return `${status} \\`${w.name}\\``;\n};\n\nlet response = `*n8n Workflows (${workflows.length})*\\n\\n`;\nresponse += `*Aktiv (${active.length}):*\\n`;\nresponse += active.map(formatLine).join('\\n') || '_keine_';\nresponse += `\\n\\n*Pausiert (${inactive.length}):*\\n`;\nresponse += inactive.map(formatLine).join('\\n') || '_keine_';\nresponse += `\\n\\n_Befehle: \"aktiviere [Name]\" | \"deaktiviere [Name]\" | \"starte [Name]\"_`;\n\n// Truncate if too long\nif (response.length > 4000) {\n  response = response.substring(0, 3900) + '\\n\\n_[Liste gek\u00fcrzt]_';\n}\n\nreturn [{ json: { chatId, response } }];"
      }
    },
    {
      "id": "70a-find-for-activate",
      "name": "Find Workflow (Activate)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        720,
        200
      ],
      "parameters": {
        "method": "GET",
        "url": "http://10.0.1.29:5678/api/v1/workflows",
        "authentication": "none",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-N8N-API-KEY",
              "value": "={{ $env.N8N_API_KEY }}"
            }
          ]
        },
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "limit",
              "value": "100"
            }
          ]
        },
        "options": {
          "timeout": 8000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-activate",
      "name": "Activate Workflow",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        960,
        200
      ],
      "parameters": {
        "jsCode": "const input = $('When Called by Another Workflow').first().json;\nconst chatId = input.chatId;\nconst searchName = (input.workflow_name ?? input.workflowName ?? '').toLowerCase();\nconst searchId = input.workflow_id ?? input.workflowId ?? null;\n\nconst data = $input.first().json;\nconst workflows = data?.data ?? data?.workflows ?? [];\n\n// Find by ID or fuzzy name match\nlet target = null;\nif (searchId) {\n  target = workflows.find(w => w.id === searchId || String(w.id) === String(searchId));\n}\nif (!target && searchName) {\n  target = workflows.find(w => w.name.toLowerCase().includes(searchName));\n}\n\nif (!target) {\n  return [{ json: { chatId, response: `\u274c Workflow \\`${input.workflow_name ?? searchId}\\` nicht gefunden.\\n\\nTippe *workflows* um alle anzuzeigen.`, skipActivate: true } }];\n}\n\nreturn [{ json: { chatId, workflowId: target.id, workflowName: target.name, alreadyActive: target.active, skipActivate: false } }];"
      }
    },
    {
      "id": "70a-activate-check",
      "name": "Already Active?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1200,
        200
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "check-skip",
              "leftValue": "={{ $json.skipActivate }}",
              "rightValue": true,
              "operator": {
                "type": "boolean",
                "operation": "equal"
              }
            }
          ],
          "combinator": "and"
        }
      }
    },
    {
      "id": "70a-activate-api",
      "name": "Call Activate API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1440,
        240
      ],
      "parameters": {
        "method": "POST",
        "url": "=http://10.0.1.29:5678/api/v1/workflows/{{ $json.workflowId }}/activate",
        "authentication": "none",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-N8N-API-KEY",
              "value": "={{ $env.N8N_API_KEY }}"
            }
          ]
        },
        "options": {
          "timeout": 8000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-activate-response",
      "name": "Activate Response",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1680,
        240
      ],
      "parameters": {
        "jsCode": "const prev = $('Activate Workflow').first().json;\nconst chatId = prev.chatId;\nconst result = $input.first().json;\nconst name = prev.workflowName;\n\nif (result.error || result.message?.includes('error')) {\n  return [{ json: { chatId, response: `\u274c Fehler beim Aktivieren von \\`${name}\\`: ${result.message ?? 'Unbekannter Fehler'}` } }];\n}\n\nreturn [{ json: { chatId, response: `\u2705 Workflow \\`${name}\\` wurde *aktiviert*.` } }];"
      }
    },
    {
      "id": "70a-deactivate-confirm",
      "name": "Send Deactivate Confirmation",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        720,
        340
      ],
      "parameters": {
        "method": "POST",
        "url": "=https://api.telegram.org/bot{{ $env.TELEGRAM_BOT_TOKEN }}/sendMessage",
        "authentication": "none",
        "sendBody": true,
        "specifyBody": "string",
        "body": "={{ JSON.stringify({ chat_id: $json.chatId, text: '\u26a0\ufe0f *Best\u00e4tigung erforderlich*\\n\\nSoll ich Workflow `' + ($json.workflow_name ?? $json.workflowName ?? '?') + '` wirklich *deaktivieren*?', parse_mode: 'Markdown', reply_markup: { inline_keyboard: [[{ text: '\u2705 Ja, deaktivieren', callback_data: 'confirm_deactivate:' + ($json.workflow_name ?? '') }, { text: '\u274c Abbrechen', callback_data: 'cancel' }]] } }) }}",
        "options": {
          "timeout": 8000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-deactivate-pending",
      "name": "Deactivate Pending Response",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        960,
        340
      ],
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "a1",
              "name": "chatId",
              "value": "={{ $('When Called by Another Workflow').first().json.chatId }}",
              "type": "string"
            },
            {
              "id": "a2",
              "name": "response",
              "value": "",
              "type": "string"
            }
          ]
        }
      }
    },
    {
      "id": "70a-find-for-trigger",
      "name": "Find Workflow (Trigger)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        720,
        460
      ],
      "parameters": {
        "method": "GET",
        "url": "http://10.0.1.29:5678/api/v1/workflows",
        "authentication": "none",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-N8N-API-KEY",
              "value": "={{ $env.N8N_API_KEY }}"
            }
          ]
        },
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "limit",
              "value": "100"
            }
          ]
        },
        "options": {
          "timeout": 8000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-trigger-workflow",
      "name": "Execute Workflow Now",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        960,
        460
      ],
      "parameters": {
        "jsCode": "// This code node finds the workflow and prepares the trigger\nconst input = $('When Called by Another Workflow').first().json;\nconst chatId = input.chatId;\nconst searchName = (input.workflow_name ?? '').toLowerCase();\nconst searchId = input.workflow_id ?? null;\n\nconst data = $input.first().json;\nconst workflows = data?.data ?? data?.workflows ?? [];\n\nlet target = null;\nif (searchId) {\n  target = workflows.find(w => String(w.id) === String(searchId));\n}\nif (!target && searchName) {\n  target = workflows.find(w => w.name.toLowerCase().includes(searchName));\n}\n\nif (!target) {\n  return [{ json: { chatId, response: `\u274c Workflow \\`${input.workflow_name ?? searchId}\\` nicht gefunden.`, skipTrigger: true } }];\n}\n\nif (!target.active) {\n  return [{ json: { chatId, response: `\u26a0\ufe0f Workflow \\`${target.name}\\` ist *deaktiviert* und kann nicht ausgef\u00fchrt werden.\\n\\nTippe *aktiviere ${target.name}* um ihn zu aktivieren.`, skipTrigger: true } }];\n}\n\nreturn [{ json: { chatId, workflowId: target.id, workflowName: target.name, skipTrigger: false } }];"
      }
    },
    {
      "id": "70a-trigger-check",
      "name": "Skip Trigger?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1200,
        460
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "t-skip",
              "leftValue": "={{ $json.skipTrigger }}",
              "rightValue": true,
              "operator": {
                "type": "boolean",
                "operation": "equal"
              }
            }
          ],
          "combinator": "and"
        }
      }
    },
    {
      "id": "70a-trigger-api",
      "name": "Call Run API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1440,
        500
      ],
      "parameters": {
        "method": "POST",
        "url": "=http://10.0.1.29:5678/api/v1/workflows/{{ $json.workflowId }}/run",
        "authentication": "none",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-N8N-API-KEY",
              "value": "={{ $env.N8N_API_KEY }}"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "string",
        "body": "{}",
        "options": {
          "timeout": 10000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-trigger-response",
      "name": "Trigger Response",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1680,
        500
      ],
      "parameters": {
        "jsCode": "const prev = $('Execute Workflow Now').first().json;\nconst chatId = prev.chatId;\nconst result = $input.first().json;\nconst name = prev.workflowName;\n\nif (result.error) {\n  return [{ json: { chatId, response: `\u274c Fehler beim Starten von \\`${name}\\`: ${result.message ?? 'Unbekannter Fehler'}` } }];\n}\n\nconst execId = result.executionId ?? result.id ?? '';\nreturn [{ json: { chatId, response: `\ud83d\ude80 Workflow \\`${name}\\` wurde *gestartet*.${execId ? '\\nExecution ID: ' + execId : ''}` } }];"
      }
    },
    {
      "id": "70a-schedule-confirm",
      "name": "Send Schedule Confirmation",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        720,
        580
      ],
      "parameters": {
        "method": "POST",
        "url": "=https://api.telegram.org/bot{{ $env.TELEGRAM_BOT_TOKEN }}/sendMessage",
        "authentication": "none",
        "sendBody": true,
        "specifyBody": "string",
        "body": "={{ JSON.stringify({ chat_id: $json.chatId, text: '\u23f0 *Schedule-\u00c4nderung best\u00e4tigen*\\n\\nWorkflow: `' + ($json.workflow_name ?? '?') + '`\\nNeuer Zeitplan: ' + ($json.cron_human ?? $json.cron_expression ?? '?') + '\\n\\nFortfahren?', parse_mode: 'Markdown', reply_markup: { inline_keyboard: [[{ text: '\u2705 Ja, Zeitplan \u00e4ndern', callback_data: 'confirm_schedule:' + ($json.workflow_name ?? '') + ':' + ($json.cron_expression ?? '') }, { text: '\u274c Abbrechen', callback_data: 'cancel' }]] } }) }}",
        "options": {
          "timeout": 8000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-schedule-pending",
      "name": "Schedule Pending Response",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        960,
        580
      ],
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "b1",
              "name": "chatId",
              "value": "={{ $('When Called by Another Workflow').first().json.chatId }}",
              "type": "string"
            },
            {
              "id": "b2",
              "name": "response",
              "value": "",
              "type": "string"
            }
          ]
        }
      }
    },
    {
      "id": "70a-confirm-handler",
      "name": "Handle Confirmation",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        720,
        700
      ],
      "parameters": {
        "jsCode": "const input = $('When Called by Another Workflow').first().json;\nconst chatId = input.chatId;\nconst callbackData = input.callbackData ?? '';\n\nif (callbackData === 'cancel') {\n  return [{ json: { chatId, response: '\u274c Abgebrochen.', confirmAction: null } }];\n}\n\nif (callbackData.startsWith('confirm_deactivate:')) {\n  const workflowName = callbackData.replace('confirm_deactivate:', '');\n  return [{ json: { chatId, response: null, confirmAction: 'deactivate', workflowName } }];\n}\n\nif (callbackData.startsWith('confirm_schedule:')) {\n  const parts = callbackData.replace('confirm_schedule:', '').split(':');\n  const workflowName = parts[0];\n  const cronExpression = parts.slice(1).join(':');\n  return [{ json: { chatId, response: null, confirmAction: 'schedule', workflowName, cronExpression } }];\n}\n\nreturn [{ json: { chatId, response: '\u2753 Unbekannte Aktion.', confirmAction: null } }];"
      }
    },
    {
      "id": "70a-confirm-route",
      "name": "Route Confirmed Action",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [
        960,
        700
      ],
      "parameters": {
        "rules": {
          "rules": [
            {
              "outputKey": "DEACTIVATE",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": ""
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.confirmAction }}",
                    "rightValue": "deactivate",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              }
            },
            {
              "outputKey": "SCHEDULE",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": ""
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.confirmAction }}",
                    "rightValue": "schedule",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              }
            }
          ]
        },
        "options": {
          "fallbackOutput": "extra"
        }
      }
    },
    {
      "id": "70a-deactivate-find",
      "name": "Find & Deactivate",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1200,
        660
      ],
      "parameters": {
        "method": "GET",
        "url": "http://10.0.1.29:5678/api/v1/workflows",
        "authentication": "none",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-N8N-API-KEY",
              "value": "={{ $env.N8N_API_KEY }}"
            }
          ]
        },
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "limit",
              "value": "100"
            }
          ]
        },
        "options": {
          "timeout": 8000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-deactivate-exec",
      "name": "Execute Deactivate",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1440,
        660
      ],
      "parameters": {
        "jsCode": "const confirmed = $('Handle Confirmation').first().json;\nconst chatId = confirmed.chatId;\nconst searchName = confirmed.workflowName.toLowerCase();\n\nconst data = $input.first().json;\nconst workflows = data?.data ?? data?.workflows ?? [];\nconst target = workflows.find(w => w.name.toLowerCase().includes(searchName));\n\nif (!target) {\n  return [{ json: { chatId, response: `\u274c Workflow \\`${confirmed.workflowName}\\` nicht gefunden.`, workflowId: null } }];\n}\n\nreturn [{ json: { chatId, workflowId: target.id, workflowName: target.name } }];"
      }
    },
    {
      "id": "70a-deactivate-api",
      "name": "Call Deactivate API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1680,
        660
      ],
      "parameters": {
        "method": "POST",
        "url": "=http://10.0.1.29:5678/api/v1/workflows/{{ $json.workflowId }}/deactivate",
        "authentication": "none",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-N8N-API-KEY",
              "value": "={{ $env.N8N_API_KEY }}"
            }
          ]
        },
        "options": {
          "timeout": 8000
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "id": "70a-deactivate-resp",
      "name": "Deactivate Final Response",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1920,
        660
      ],
      "parameters": {
        "jsCode": "const prev = $('Execute Deactivate').first().json;\nconst chatId = prev.chatId;\nconst name = prev.workflowName;\nconst result = $input.first().json;\n\nif (result.error) {\n  return [{ json: { chatId, response: `\u274c Fehler: ${result.message ?? 'Deaktivierung fehlgeschlagen'}` } }];\n}\n\nreturn [{ json: { chatId, response: `\u23f8 Workflow \\`${name}\\` wurde *deaktiviert*.` } }];"
      }
    },
    {
      "id": "70a-cancel-resp",
      "name": "Cancel Response",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1200,
        780
      ],
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "c1",
              "name": "chatId",
              "value": "={{ $json.chatId }}",
              "type": "string"
            },
            {
              "id": "c2",
              "name": "response",
              "value": "={{ $json.response }}",
              "type": "string"
            }
          ]
        }
      }
    },
    {
      "id": "70a-merge-all",
      "name": "Merge All Responses",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        2160,
        420
      ],
      "parameters": {
        "mode": "passThrough",
        "output": "input1"
      }
    }
  ],
  "connections": {
    "When Called by Another Workflow": {
      "main": [
        [
          {
            "node": "Route Action",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route Action": {
      "main": [
        [
          {
            "node": "Fetch All Workflows",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Find Workflow (Activate)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Deactivate Confirmation",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Find Workflow (Trigger)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Schedule Confirmation",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Handle Confirmation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch All Workflows": {
      "main": [
        [
          {
            "node": "Format Workflow List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Workflow List": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Workflow (Activate)": {
      "main": [
        [
          {
            "node": "Activate Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Activate Workflow": {
      "main": [
        [
          {
            "node": "Already Active?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Already Active?": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "Call Activate API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call Activate API": {
      "main": [
        [
          {
            "node": "Activate Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Activate Response": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Send Deactivate Confirmation": {
      "main": [
        [
          {
            "node": "Deactivate Pending Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Deactivate Pending Response": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Find Workflow (Trigger)": {
      "main": [
        [
          {
            "node": "Execute Workflow Now",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Workflow Now": {
      "main": [
        [
          {
            "node": "Skip Trigger?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Skip Trigger?": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 4
          }
        ],
        [
          {
            "node": "Call Run API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call Run API": {
      "main": [
        [
          {
            "node": "Trigger Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger Response": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 5
          }
        ]
      ]
    },
    "Send Schedule Confirmation": {
      "main": [
        [
          {
            "node": "Schedule Pending Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Pending Response": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 6
          }
        ]
      ]
    },
    "Handle Confirmation": {
      "main": [
        [
          {
            "node": "Route Confirmed Action",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route Confirmed Action": {
      "main": [
        [
          {
            "node": "Find & Deactivate",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 7
          }
        ],
        [
          {
            "node": "Cancel Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find & Deactivate": {
      "main": [
        [
          {
            "node": "Execute Deactivate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Deactivate": {
      "main": [
        [
          {
            "node": "Call Deactivate API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call Deactivate API": {
      "main": [
        [
          {
            "node": "Deactivate Final Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Deactivate Final Response": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 8
          }
        ]
      ]
    },
    "Cancel Response": {
      "main": [
        [
          {
            "node": "Merge All Responses",
            "type": "main",
            "index": 9
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "saveDataErrorExecution": "all",
    "saveDataSuccessExecution": "none"
  },
  "staticData": null,
  "tags": [
    "telegram",
    "workflow-control"
  ],
  "meta": {
    "description": "541 \u2014 Sub-Workflow: n8n Workflow-Steuerung (Activate, Deactivate, Trigger, Schedule) via Telegram"
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

50_541_WORKFLOW_CONTROL. Uses executeWorkflowTrigger, httpRequest. Event-driven trigger; 26 nodes.

Source: https://github.com/timo-goetz-ai/apki-core-platform/blob/main/automations/n8n-workflows/telegram/50_541_WORKFLOW_CONTROL.json — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

02_LLM_Pipeline v1.0. Uses executeWorkflowTrigger, httpRequest, seaTable. Event-driven trigger; 65 nodes.

Execute Workflow Trigger, HTTP Request, Sea Table
Web Scraping

This template is a powerful, reusable utility for managing stateful, long-running processes. It allows a main workflow to be paused indefinitely at "checkpoints" and then be resumed by external, async

HTTP Request, Execute Workflow Trigger
Web Scraping

Upload files from any source to your account Kommo or AmoCRM with a simple and reusable workflow. It can split a large file into small ones and upload chunks. Works for Kommo and amoCRM There are 3 re

HTTP Request, Execute Workflow Trigger, Stop And Error
Web Scraping

Remixed Backup your workflows to GitHub from Solomon's work. Check out his templates.

HTTP Request, GitHub, Execute Workflow Trigger +1
Web Scraping

Remixed Backup your workflows to GitHub from Solomon's work. Check out his templates.

Execute Workflow Trigger, HTTP Request, GitHub