AutomationFlowsAI & RAG › Multi-agent Pipeline Orchestrator

Multi-agent Pipeline Orchestrator

Multi-Agent Pipeline Orchestrator. Uses httpRequest, executeCommand, slack, readWriteFile. Webhook trigger; 11 nodes.

Webhook trigger★★★★☆ complexity11 nodesHTTP RequestExecute CommandSlackRead Write File
AI & RAG Trigger: Webhook Nodes: 11 Complexity: ★★★★☆ Added:

This workflow follows the Executecommand → 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": "Multi-Agent Pipeline Orchestrator",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "multi-agent",
        "options": {
          "responseMode": "responseNode"
        }
      },
      "id": "webhook-trigger",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        220,
        300
      ]
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "={{ $json.body }}",
        "options": {}
      },
      "id": "parse-payload",
      "name": "Parse Payload",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        420,
        300
      ]
    },
    {
      "parameters": {
        "rules": {
          "rules": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.payload.stage }}",
                    "rightValue": "01_planning",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "planning_complete"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.payload.stage }}",
                    "rightValue": "02_validation",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "validation_complete"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.payload.stage }}",
                    "rightValue": "03_development",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "development_complete"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.payload.stage }}",
                    "rightValue": "04_review",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "review_complete"
            }
          ]
        },
        "options": {}
      },
      "id": "stage-router",
      "name": "Route by Stage",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [
        620,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "x-goog-api-key",
              "value": "={{ $env.GEMINI_API_KEY }}"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"contents\": [\n    {\n      \"role\": \"user\",\n      \"parts\": [\n        {\n          \"text\": \"You are a BMAD-METHOD story validator. Analyze this story plan and validate it.\\n\\nStory Plan:\\n{{ JSON.stringify($json.plan) }}\\n\\nValidation Criteria:\\n1. Clear and specific acceptance criteria\\n2. Technical requirements are achievable\\n3. Complexity estimate is reasonable\\n4. Dependencies are identified\\n5. Story follows INVEST principles\\n\\nRespond with JSON:\\n{\\n  \\\"validated\\\": true or false,\\n  \\\"overall_score\\\": 1-10,\\n  \\\"summary\\\": \\\"Overall validation summary\\\",\\n  \\\"recommendations\\\": [\\\"...\\\"]\\n}\"\n        }\n      ]\n    }\n  ],\n  \"generationConfig\": {\n    \"responseMimeType\": \"application/json\"\n  }\n}",
        "options": {
          "timeout": 120000
        }
      },
      "id": "gemini-validate",
      "name": "Gemini Validate Story",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        880,
        140
      ]
    },
    {
      "parameters": {
        "command": "={{ `cd ${$json.project_root} && python3 scripts/call-gemini.py validate` }}"
      },
      "id": "run-gemini-validation",
      "name": "Run Gemini Validation Script",
      "type": "n8n-nodes-base.executeCommand",
      "typeVersion": 1,
      "position": [
        880,
        140
      ],
      "notes": "Alternative: Run local Python script"
    },
    {
      "parameters": {
        "command": "={{ `cd ${$json.project_root} && claude -p \"Implement the story defined in bmad/01_plan.json. Write the implementation and create bmad/03_implementation.json when complete.\" --allowedTools Write,Edit,Bash` }}"
      },
      "id": "trigger-claude-code",
      "name": "Trigger Claude Code",
      "type": "n8n-nodes-base.executeCommand",
      "typeVersion": 1,
      "position": [
        880,
        300
      ]
    },
    {
      "parameters": {
        "command": "={{ `cd ${$json.project_root} && codex exec --full-auto \"Review the code implementation. Analyze bmad/03_implementation.json and the code changes. Write a review to bmad/04_review.json\"` }}"
      },
      "id": "trigger-codex-review",
      "name": "Trigger Codex Review",
      "type": "n8n-nodes-base.executeCommand",
      "typeVersion": 1,
      "position": [
        880,
        460
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { \"status\": \"ok\", \"message\": \"Pipeline stage processed\", \"next_stage\": $json.payload.next_stage } }}"
      },
      "id": "respond-webhook",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        1280,
        300
      ]
    },
    {
      "parameters": {
        "content": "=**Pipeline Complete!**\n\nProject: {{ $json.project_root }}\nFinal Status: {{ $json.payload.status }}\n\nReview: Check `bmad/04_review.json` for results.",
        "options": {}
      },
      "id": "notify-complete",
      "name": "Notify Pipeline Complete",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        880,
        620
      ],
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "leftValue": "={{ $json.validated }}",
              "rightValue": true,
              "operator": {
                "type": "boolean",
                "operation": "true"
              }
            }
          ],
          "combinator": "and"
        }
      },
      "id": "check-validation",
      "name": "Validation Passed?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        1080,
        140
      ]
    },
    {
      "parameters": {
        "fileSelector": "={{ $json.project_root }}/bmad/01_plan.json"
      },
      "id": "read-plan",
      "name": "Read Plan File",
      "type": "n8n-nodes-base.readWriteFile",
      "typeVersion": 1,
      "position": [
        700,
        140
      ]
    }
  ],
  "connections": {
    "Webhook Trigger": {
      "main": [
        [
          {
            "node": "Parse Payload",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Payload": {
      "main": [
        [
          {
            "node": "Route by Stage",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Stage": {
      "main": [
        [
          {
            "node": "Read Plan File",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Trigger Claude Code",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Trigger Codex Review",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify Pipeline Complete",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Plan File": {
      "main": [
        [
          {
            "node": "Gemini Validate Story",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini Validate Story": {
      "main": [
        [
          {
            "node": "Check Validation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Validation": {
      "main": [
        [
          {
            "node": "Trigger Claude Code",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger Claude Code": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger Codex Review": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Pipeline Complete": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true,
    "saveExecutionProgress": true
  },
  "staticData": null,
  "versionId": "1.0.0",
  "triggerCount": 0
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

Multi-Agent Pipeline Orchestrator. Uses httpRequest, executeCommand, slack, readWriteFile. Webhook trigger; 11 nodes.

Source: https://github.com/DrBalls/multi-agent-orchestrator/blob/ac0c37d1e5cf6cf4067b60d80ccc3f9e6db072c9/n8n-workflows/multi-agent-pipeline.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Vocfy-Agents. Uses agent, lmChatGoogleGemini, httpRequest, httpRequestTool. Webhook trigger; 28 nodes.

Agent, Google Gemini Chat, HTTP Request +3
AI & RAG

YouTube2Post - Video to Article Generator. Uses executeCommand, httpRequest, itemLists, errorTrigger. Webhook trigger; 15 nodes.

Execute Command, HTTP Request, Item Lists +1
AI & RAG

[Tool] HITL Gate - ACTION NAME. Uses slack, httpRequest. Webhook trigger; 8 nodes.

Slack, HTTP Request
AI & RAG

Clara Agent Pipeline. Uses readWriteFile, executeCommand, slack. Scheduled trigger; 8 nodes.

Read Write File, Execute Command, Slack
AI & RAG

RAG CHATBOT Main. Uses telegram, telegramTrigger, lmChatOpenAi, n8n-nodes-mcp. Event-driven trigger; 87 nodes.

Telegram, Telegram Trigger, OpenAI Chat +8