{
  "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
          }
        ]
      ]
    }
  }
}