This workflow corresponds to n8n.io template #16152 — we link there as the canonical source.
This workflow follows the Agent → OpenAI Chat 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 →
{
"id": "wT7quK4APGtMtNnJ",
"name": "AI council multi-agent decision system with chairman synthesis",
"tags": [],
"nodes": [
{
"id": "ff250dd4-97c9-481f-b729-74675ad7785a",
"name": "Start Council Session",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-64,
1616
],
"parameters": {},
"typeVersion": 1
},
{
"id": "a2be2166-2027-410e-ac27-4c3d51e5f3d5",
"name": "Prepare Proposal",
"type": "n8n-nodes-base.set",
"position": [
160,
1616
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "proposal",
"name": "proposal",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Enter the proposal or decision to be evaluated by the council__>"
},
{
"id": "context",
"name": "context",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Optional: Additional context, constraints, or background information__>"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1013016d-157a-4a51-abf1-bfe30f1eef90",
"name": "Strategic Thinker Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
688,
912
],
"parameters": {
"text": "={{ $json.proposal }}",
"options": {
"systemMessage": "You are the Strategic Thinker on an executive council. Your role is to analyze proposals from a long-term strategic perspective, identifying market opportunities, competitive advantages, growth potential, and alignment with organizational vision. Evaluate the proposal thoroughly and provide your structured assessment including key opportunities, risks, and your recommendation (approve/reject/modify) with confidence level."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "7f055f29-698f-45e0-bd80-7dd9e6f1bab3",
"name": "OpenAI GPT-5",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
896,
1920
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-5-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "1fc3804b-a470-4721-afcb-708caf5eceb7",
"name": "Strategist Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
824,
1136
],
"parameters": {
"jsonSchemaExample": {
"risks": [
"risk1",
"risk2"
],
"confidence": 0.85,
"perspective": "Strategic perspective on the proposal",
"recommendation": "approve/reject/modify",
"keyOpportunities": [
"opportunity1",
"opportunity2"
]
}
},
"typeVersion": 1.3
},
{
"id": "4df2c74d-34e1-464a-abe5-e0d3ff4f4124",
"name": "Aggregate Agent Perspectives",
"type": "n8n-nodes-base.aggregate",
"position": [
1040,
1016
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "agentPerspectives"
},
"typeVersion": 1
},
{
"id": "0e66d3d9-7821-48a0-adc9-6ff9d37425a6",
"name": "Contrarian Thinker Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
688,
1312
],
"parameters": {
"text": "={{ $json.proposal }}",
"options": {
"systemMessage": "You are the Contrarian Thinker on an executive council. Your role is to challenge assumptions, identify blind spots, present alternative viewpoints, and stress-test proposals. Play devil's advocate constructively. Provide critical analysis including challenges, alternative approaches, and your recommendation (approve/reject/modify) with confidence level."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "0909fbf0-baad-4d39-8b14-ee08cf4406b7",
"name": "Contrarian Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
760,
1536
],
"parameters": {
"jsonSchemaExample": {
"challenges": [
"challenge1",
"challenge2"
],
"confidence": 0.75,
"perspective": "Critical analysis and alternative viewpoints",
"recommendation": "approve/reject/modify",
"alternativeApproaches": [
"approach1",
"approach2"
]
}
},
"typeVersion": 1.3
},
{
"id": "8c4c4c31-4df7-4187-b275-fca29685ad0c",
"name": "Ethics & Compliance Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
688,
1712
],
"parameters": {
"text": "={{ $json.proposal }}",
"options": {
"systemMessage": "You are the Ethics & Compliance Officer on an executive council. Your role is to ensure proposals align with ethical standards, regulatory requirements, data privacy laws, and organizational values. Identify potential ethical concerns, compliance issues, and provide your recommendation (approve/reject/modify) with confidence level."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "5d50e4ed-f93d-476b-875d-6eeb4fb22b69",
"name": "Ethics Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
760,
1936
],
"parameters": {
"jsonSchemaExample": {
"confidence": 0.9,
"perspective": "Ethical and compliance assessment",
"recommendation": "approve/reject/modify",
"ethicalConcerns": [
"concern1",
"concern2"
],
"complianceIssues": [
"issue1",
"issue2"
]
}
},
"typeVersion": 1.3
},
{
"id": "9909bcda-176d-4188-b49e-4ea4fa4d9417",
"name": "Execution & Operations Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
688,
2080
],
"parameters": {
"text": "={{ $json.proposal }}",
"options": {
"systemMessage": "You are the Execution & Operations Lead on an executive council. Your role is to assess operational feasibility, resource requirements, implementation complexity, and create realistic execution plans. Provide implementation steps, resource needs, timeline assessment, and your recommendation (approve/reject/modify) with confidence level."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "1ada29c8-a64d-411c-a06a-a5b566dfe457",
"name": "Execution Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
848,
2320
],
"parameters": {
"jsonSchemaExample": {
"timeline": "estimated timeline",
"confidence": 0.8,
"perspective": "Operational feasibility and execution plan",
"recommendation": "approve/reject/modify",
"implementationSteps": [
"step1",
"step2"
],
"resourceRequirements": [
"resource1",
"resource2"
]
}
},
"typeVersion": 1.3
},
{
"id": "3a580429-ac0c-480b-8399-68a8825300b2",
"name": "Prepare Chairman Input",
"type": "n8n-nodes-base.set",
"position": [
1264,
1016
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "originalProposal",
"name": "originalProposal",
"type": "string",
"value": "={{ $(\"Prepare Proposal\").item.json.proposal }}"
},
{
"id": "context",
"name": "context",
"type": "string",
"value": "={{ $(\"Prepare Proposal\").item.json.context }}"
},
{
"id": "agentPerspectives",
"name": "agentPerspectives",
"type": "array",
"value": "={{ $json.agentPerspectives }}"
},
{
"id": "councilInput",
"name": "councilInput",
"type": "string",
"value": "=Original Proposal: {{ $(\"Prepare Proposal\").item.json.proposal }}\n\nContext: {{ $(\"Prepare Proposal\").item.json.context }}\n\nCouncil Member Perspectives:\n{{ $json.agentPerspectives.map((p, i) => `\nAgent ${i + 1} Analysis:\n${JSON.stringify(p.output, null, 2)}`).join(\"\\n\") }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f0a6de2e-8e3e-488f-8713-125e1a7c9be8",
"name": "Chairman Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1488,
1016
],
"parameters": {
"text": "={{ $json.councilInput }}",
"options": {
"systemMessage": "You are the Chairman of an executive council. You have received perspectives from 4 specialized agents: Strategic Thinker, Contrarian Thinker, Ethics & Compliance Officer, and Execution & Operations Lead. Your role is to:\n\n1. Synthesize all perspectives into a coherent executive summary\n2. Identify areas of consensus and divergent views\n3. Calculate voting breakdown based on agent recommendations\n4. Make a final decision (approve/reject/modify) with clear rationale\n5. Define concrete action items\n\nBe decisive but fair. Weight agent confidence levels and the strength of their arguments. Resolve conflicts by finding balanced solutions."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "067892a6-1b2e-4095-a093-7b9134a67fe2",
"name": "Chairman Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1560,
1240
],
"parameters": {
"jsonSchemaExample": {
"rationale": "Detailed reasoning for the final decision",
"actionItems": [
"action1",
"action2"
],
"finalDecision": "approve/reject/modify",
"consensusAreas": [
"area1",
"area2"
],
"divergentViews": [
"view1",
"view2"
],
"votingBreakdown": {
"modify": 0,
"reject": 0,
"approve": 0
},
"executiveSummary": "Summary of council deliberations"
}
},
"typeVersion": 1.3
},
{
"id": "270f73c3-d8fc-4876-aa46-b8f5faa87639",
"name": "Format Council Decision",
"type": "n8n-nodes-base.set",
"position": [
1840,
1016
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "proposal",
"name": "proposal",
"type": "string",
"value": "={{ $(\"Prepare Proposal\").item.json.proposal }}"
},
{
"id": "decision",
"name": "decision",
"type": "string",
"value": "={{ $json.output.finalDecision }}"
},
{
"id": "summary",
"name": "summary",
"type": "string",
"value": "={{ $json.output.executiveSummary }}"
},
{
"id": "votingResults",
"name": "votingResults",
"type": "object",
"value": "={{ $json.output.votingBreakdown }}"
},
{
"id": "actionItems",
"name": "actionItems",
"type": "array",
"value": "={{ $json.output.actionItems }}"
},
{
"id": "fullReport",
"name": "fullReport",
"type": "string",
"value": "=== EXECUTIVE COUNCIL DECISION ===\n\nProposal: {{ $(\"Prepare Proposal\").item.json.proposal }}\n\nFinal Decision: {{ $json.output.finalDecision.toUpperCase() }}\n\nExecutive Summary:\n{{ $json.output.executiveSummary }}\n\nVoting Breakdown:\n- Approve: {{ $json.output.votingBreakdown.approve }}\n- Reject: {{ $json.output.votingBreakdown.reject }}\n- Modify: {{ $json.output.votingBreakdown.modify }}\n\nConsensus Areas:\n{{ $json.output.consensusAreas.map(a => `- ${a}`).join(\"\\n\") }}\n\nDivergent Views:\n{{ $json.output.divergentViews.map(v => `- ${v}`).join(\"\\n\") }}\n\nAction Items:\n{{ $json.output.actionItems.map((item, i) => `${i + 1}. ${item}`).join(\"\\n\") }}\n\nRationale:\n{{ $json.output.rationale }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9e0d4a03-2f1c-45c3-ba47-2cf9caef9865",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
2048,
880
],
"parameters": {
"color": 5,
"width": 400,
"height": 544,
"content": "## Prerequisites\n- n8n instance (v1.30+)\n- OpenAI API key (GPT-4o or GPT-4.5 recommended)\n- Basic familiarity with n8n agent and output parser nodes\n## Use Cases\n- Strategic proposal review before board approval\n- Product feature evaluation from multiple stakeholder lenses\n- Risk and ethics screening for AI/policy decisions\n## Customisation\n- Swap agents for domain-specific roles (Legal, Financial, Technical)\n- Replace OpenAI with any LangChain-compatible model\n## Benefits\n- Parallel multi-agent reasoning cuts deliberation time significantly\n- Chairman synthesis prevents conflicting outputs from reaching the user"
},
"typeVersion": 1
},
{
"id": "1767b964-8564-4e94-b823-254921272b82",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
128,
880
],
"parameters": {
"width": 352,
"height": 352,
"content": "## Setup Steps\n\n1. Import the workflow into your n8n instance.\n2. Add OpenAI credentials under **Credentials \u2192 OpenAI API** and link to all agent nodes and the Chairman node.\n3. Set your preferred model (GPT-4o recommended) in each Chat Model node.\n4. Configure the **Start Council Session** trigger (manual or webhook) to accept your proposal text.\n5. Adjust agent system prompts in each specialist node to match your domain or organisational context.\n6. Test with a sample proposal and verify all four output parsers return structured JSON.\n"
},
"typeVersion": 1
},
{
"id": "45402a12-ea1c-4612-b9ef-a1f7518dc210",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-288,
912
],
"parameters": {
"width": 400,
"height": 384,
"content": "\n## How It Works\n\nThis workflow simulates a structured AI advisory council where four specialist agents,Strategic Thinker, Contrarian Thinker, Ethics & Compliance, and Execution & Operations, independently evaluate a submitted proposal in parallel. Each agent reasons from its unique perspective using OpenAI GPT-4/GPT-5 via chat memory chains and structured output parsers. Their outputs are aggregated, then a Chairman Agent synthesises all perspectives into a coherent, balanced council decision. The final output is formatted for downstream use or human review. Designed for decision-makers, product leads, and strategy teams who need multi-angle AI deliberation before committing to a plan, this template replaces ad-hoc prompting with a governed, repeatable reasoning council \u2014 ensuring no perspective is overlooked."
},
"typeVersion": 1
},
{
"id": "17667661-9481-4323-b047-5c23a4a60aab",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
768
],
"parameters": {
"color": 7,
"height": 720,
"content": "## Aggregate Agent Perspectives\n**What** \u2014 Collects all four parsed outputs into one payload.\n**Why** \u2014 Prepares a unified context for the Chairman."
},
"typeVersion": 1
},
{
"id": "ede0bc12-31ec-4622-b765-8712667ecd85",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
576,
768
],
"parameters": {
"color": 7,
"width": 432,
"height": 1680,
"content": "## Four Specialist Agents (Parallel)\n**What** \u2014 Strategic, Contrarian, Ethics, and Execution agents analyse independently.\n**Why** \u2014 Captures diverse reasoning angles simultaneously, reducing bias."
},
"typeVersion": 1
},
{
"id": "01a90c13-30a3-4a0d-836a-bfa2fa6fcffb",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
1456
],
"parameters": {
"color": 7,
"width": 560,
"height": 592,
"content": "## Prepare Proposal\n**What** \u2014 Formats the input for parallel agent distribution.\n**Why** \u2014 Ensures each agent receives a consistent, structured prompt."
},
"typeVersion": 1
},
{
"id": "ab7d5e4d-b5df-4098-b7d5-f0f89798c5bb",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1264,
768
],
"parameters": {
"color": 7,
"width": 736,
"height": 928,
"content": "## Chairman Agent + Format Decision\n**What** \u2014 Synthesises perspectives and formats the final council ruling.\n**Why** \u2014 Delivers a clear, actionable decision from the deliberation."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"binaryMode": "separate",
"executionOrder": "v1"
},
"versionId": "4c382a3e-bb25-42c4-8a28-ad5751616ae5",
"connections": {
"OpenAI GPT-5": {
"ai_languageModel": [
[
{
"node": "Strategic Thinker Agent",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Contrarian Thinker Agent",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Ethics & Compliance Agent",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Execution & Operations Agent",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Chairman Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Chairman Agent": {
"main": [
[
{
"node": "Format Council Decision",
"type": "main",
"index": 0
}
]
]
},
"Prepare Proposal": {
"main": [
[
{
"node": "Strategic Thinker Agent",
"type": "main",
"index": 0
},
{
"node": "Contrarian Thinker Agent",
"type": "main",
"index": 0
},
{
"node": "Ethics & Compliance Agent",
"type": "main",
"index": 0
},
{
"node": "Execution & Operations Agent",
"type": "main",
"index": 0
}
]
]
},
"Ethics Output Parser": {
"ai_outputParser": [
[
{
"node": "Ethics & Compliance Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Start Council Session": {
"main": [
[
{
"node": "Prepare Proposal",
"type": "main",
"index": 0
}
]
]
},
"Chairman Output Parser": {
"ai_outputParser": [
[
{
"node": "Chairman Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Prepare Chairman Input": {
"main": [
[
{
"node": "Chairman Agent",
"type": "main",
"index": 0
}
]
]
},
"Execution Output Parser": {
"ai_outputParser": [
[
{
"node": "Execution & Operations Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Strategic Thinker Agent": {
"main": [
[
{
"node": "Aggregate Agent Perspectives",
"type": "main",
"index": 0
}
]
]
},
"Contrarian Output Parser": {
"ai_outputParser": [
[
{
"node": "Contrarian Thinker Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Strategist Output Parser": {
"ai_outputParser": [
[
{
"node": "Strategic Thinker Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Aggregate Agent Perspectives": {
"main": [
[
{
"node": "Prepare Chairman Input",
"type": "main",
"index": 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.
openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow runs a manual “AI council” that evaluates a proposal with four OpenAI-powered specialist agents, aggregates their structured perspectives, and has a chairman agent synthesize a final decision with voting, rationale, and action items. Starts when you manually…
Source: https://n8n.io/workflows/16152/ — 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.
🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.
Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.
RAG CHATBOT Main. Uses telegram, telegramTrigger, lmChatOpenAi, n8n-nodes-mcp. Event-driven trigger; 87 nodes.
The best content automation template in the market is now even better—with “deep research” on time-sensitive topics\! Unlike most n8n content automation templates that are mainly for “demo purposes,”
Digital marketers, content creators, social media managers, and businesses who want to use AI marketing automation for YouTube Shorts without spending hours on production. This AI workflow helps anyon