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 →
{
"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.
slackApi
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Vocfy-Agents. Uses agent, lmChatGoogleGemini, httpRequest, httpRequestTool. Webhook trigger; 28 nodes.
YouTube2Post - Video to Article Generator. Uses executeCommand, httpRequest, itemLists, errorTrigger. Webhook trigger; 15 nodes.
[Tool] HITL Gate - ACTION NAME. Uses slack, httpRequest. Webhook trigger; 8 nodes.
Clara Agent Pipeline. Uses readWriteFile, executeCommand, slack. Scheduled trigger; 8 nodes.
RAG CHATBOT Main. Uses telegram, telegramTrigger, lmChatOpenAi, n8n-nodes-mcp. Event-driven trigger; 87 nodes.