This workflow corresponds to n8n.io template #13158 — we link there as the canonical source.
This workflow follows the Agent → Agenttool 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": "MFqOj_JwKXSMi9VgcSF4q",
"name": "AI-Powered Programme Monitoring and Governance Reporting Automation",
"tags": [],
"nodes": [
{
"id": "d88b3568-0b03-4065-981c-3b42e753a01a",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
192
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.3
},
{
"id": "fa42be9f-a8b5-4f64-b5cb-6152969deb57",
"name": "Workflow Configuration",
"type": "n8n-nodes-base.set",
"position": [
224,
192
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "programmeApiUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Programme Management System API URL__>"
},
{
"id": "id-2",
"name": "criticalAlertEmail",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Email address for critical alerts__>"
},
{
"id": "id-3",
"name": "standardReportEmail",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Email address for standard reports__>"
},
{
"id": "id-4",
"name": "slackChannelId",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Slack channel ID for critical alerts__>"
},
{
"id": "id-5",
"name": "budgetThresholdPercent",
"type": "number",
"value": 85
},
{
"id": "id-6",
"name": "milestoneDelayDays",
"type": "number",
"value": 7
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "920a4d44-5fcf-448a-b2e0-08da9128d079",
"name": "Fetch Programme Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
448,
192
],
"parameters": {
"url": "={{ $('Workflow Configuration').first().json.programmeApiUrl }}",
"options": {},
"authentication": "predefinedCredentialType"
},
"typeVersion": 4.3
},
{
"id": "4148a13c-9825-41a8-93d2-6ac2f0f08fcc",
"name": "Programme Monitoring Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
672,
192
],
"parameters": {
"text": "=Programme Data: {{ JSON.stringify($json) }}",
"options": {
"systemMessage": "You are a Programme Monitoring Agent specialized in validating government programme performance.\n\nYour task is to:\n1. Analyze programme data including budget allocation, expenditure, milestones, and performance indicators\n2. Validate budget compliance: compare actual expenditure vs allocated budget, identify variances\n3. Assess milestone progress: check completion status, identify delays, calculate days behind schedule\n4. Evaluate performance indicators (KPIs): compare actual vs target values, identify underperformance\n5. Calculate risk scores for budget overruns, milestone delays, and KPI underperformance\n6. Identify critical issues requiring immediate attention\n7. Return structured validation results with detailed findings\n\nYou MUST NOT alter or modify programme execution - only analyze and report.\n\nConsider:\n- Budget thresholds from workflow configuration\n- Milestone delay tolerances\n- Historical performance trends\n- Dependencies between milestones\n- Impact of delays on downstream activities"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "9c9314f5-35de-4b52-8a3f-73c665dea57f",
"name": "OpenAI Model - Monitoring",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
624,
416
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "93bfa246-65b0-4539-bd6a-ebb815a30ec9",
"name": "Monitoring Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
808,
416
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"programmeName\": {\n \"type\": \"string\",\n \"description\": \"Name of the programme\"\n },\n \"budgetStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"allocated\": {\"type\": \"number\"},\n \"spent\": {\"type\": \"number\"},\n \"remaining\": {\"type\": \"number\"},\n \"percentageUsed\": {\"type\": \"number\"},\n \"variance\": {\"type\": \"number\"},\n \"riskLevel\": {\"type\": \"string\", \"enum\": [\"Low\", \"Medium\", \"High\", \"Critical\"]}\n }\n },\n \"milestoneStatus\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"milestoneName\": {\"type\": \"string\"},\n \"status\": {\"type\": \"string\", \"enum\": [\"On Track\", \"At Risk\", \"Delayed\", \"Completed\"]},\n \"daysDelayed\": {\"type\": \"number\"},\n \"impact\": {\"type\": \"string\"}\n }\n }\n },\n \"performanceIndicators\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"kpiName\": {\"type\": \"string\"},\n \"target\": {\"type\": \"number\"},\n \"actual\": {\"type\": \"number\"},\n \"variance\": {\"type\": \"number\"},\n \"status\": {\"type\": \"string\"}\n }\n }\n },\n \"overallRiskScore\": {\n \"type\": \"number\",\n \"description\": \"Overall risk score from 0-100\"\n },\n \"criticalIssues\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"recommendations\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n }\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "99d3bd27-47c0-458c-af7f-c8ed7a143bfe",
"name": "Exception Escalation Tool",
"type": "@n8n/n8n-nodes-langchain.agentTool",
"position": [
1152,
416
],
"parameters": {
"text": "={{ $fromAI(\"validationData\", \"Programme validation data from monitoring agent\", \"json\") }}",
"options": {
"systemMessage": "You are an Exception Escalation Specialist for government programmes.\n\nYour task is to:\n1. Analyze programme validation data to identify exceptions requiring escalation\n2. Classify exceptions by severity: Critical, High, Medium, Low\n3. Determine escalation path: Ministerial, Parliamentary, Executive, Operational\n4. Assess urgency and required response timeframe\n5. Identify stakeholders who need to be notified\n6. Provide escalation recommendations with clear rationale\n7. Return structured exception analysis\n\nCriteria for escalation:\n- Critical: Budget overrun >20%, milestone delay >30 days, KPI variance >40%\n- High: Budget overrun 10-20%, milestone delay 15-30 days, KPI variance 25-40%\n- Medium: Budget overrun 5-10%, milestone delay 7-15 days, KPI variance 10-25%\n- Low: Budget overrun <5%, milestone delay <7 days, KPI variance <10%\n\nYou MUST NOT recommend changes to programme execution - only escalation actions."
},
"hasOutputParser": true,
"toolDescription": "Analyzes programme validation data to identify exceptions requiring escalation and determines appropriate escalation paths"
},
"typeVersion": 3
},
{
"id": "6fcdef58-f1ea-4396-bc07-e9bdaeaa301b",
"name": "OpenAI Model - Exception Tool",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1168,
624
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "f9b8b578-7ab0-46c3-a1ae-686d02176726",
"name": "Exception Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1312,
624
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"exceptions\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"exceptionType\": {\"type\": \"string\"},\n \"severity\": {\"type\": \"string\", \"enum\": [\"Critical\", \"High\", \"Medium\", \"Low\"]},\n \"description\": {\"type\": \"string\"},\n \"escalationPath\": {\"type\": \"string\", \"enum\": [\"Ministerial\", \"Parliamentary\", \"Executive\", \"Operational\"]},\n \"urgency\": {\"type\": \"string\"},\n \"stakeholders\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}},\n \"recommendedAction\": {\"type\": \"string\"}\n }\n }\n },\n \"requiresImmediateAction\": {\"type\": \"boolean\"}\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "f35d336e-2422-4990-9476-19a179af908a",
"name": "Briefing Preparation Tool",
"type": "@n8n/n8n-nodes-langchain.agentTool",
"position": [
1440,
416
],
"parameters": {
"text": "={{ $fromAI(\"programmeData\", \"Programme validation and exception data for briefing preparation\", \"json\") }}",
"options": {
"systemMessage": "You are a Parliamentary and Ministerial Briefing Specialist.\n\nYour task is to:\n1. Prepare comprehensive briefings for parliamentary questions and ministerial meetings\n2. Summarize programme status in clear, non-technical language\n3. Highlight key achievements, challenges, and risks\n4. Provide context and background information\n5. Prepare Q&A sections for anticipated questions\n6. Include relevant statistics and performance metrics\n7. Ensure briefings are politically neutral and factual\n8. Return structured briefing documents\n\nBriefing structure:\n- Executive Summary (2-3 paragraphs)\n- Programme Overview\n- Current Status and Progress\n- Key Issues and Risks\n- Financial Position\n- Milestone Status\n- Performance Against Targets\n- Anticipated Questions and Suggested Responses\n- Recommendations (observation only, no execution changes)\n\nTone: Professional, clear, concise, politically neutral"
},
"hasOutputParser": true,
"toolDescription": "Prepares parliamentary and ministerial briefings based on programme monitoring data and exception analysis"
},
"typeVersion": 3
},
{
"id": "5db6bf17-c29b-443b-8362-196b04f5f132",
"name": "OpenAI Model - Briefing Tool",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1440,
624
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "0d631823-71d3-4c86-b288-52515a541e01",
"name": "Briefing Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1584,
624
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"briefingType\": {\"type\": \"string\", \"enum\": [\"Parliamentary\", \"Ministerial\", \"Executive\"]},\n \"executiveSummary\": {\"type\": \"string\"},\n \"programmeOverview\": {\"type\": \"string\"},\n \"currentStatus\": {\"type\": \"string\"},\n \"keyIssues\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}},\n \"financialPosition\": {\"type\": \"string\"},\n \"milestoneProgress\": {\"type\": \"string\"},\n \"performanceSummary\": {\"type\": \"string\"},\n \"anticipatedQuestions\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"question\": {\"type\": \"string\"},\n \"suggestedResponse\": {\"type\": \"string\"}\n }\n }\n },\n \"recommendations\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "7ef1f38c-6c30-47c0-ad78-36c6c4371b28",
"name": "Governance Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1304,
192
],
"parameters": {
"text": "=Programme Validation Results: {{ JSON.stringify($json.output) }}",
"options": {
"systemMessage": "You are a Governance Agent coordinating programme reporting, exception escalation, and briefing preparation.\n\nYour task is to:\n1. Review programme validation results from the Programme Monitoring Agent\n2. Determine if exceptions require escalation by calling the Exception Escalation Tool\n3. Prepare briefings for parliamentary or ministerial use by calling the Briefing Preparation Tool\n4. Coordinate reporting activities without altering programme execution\n5. Assess overall governance risk and compliance status\n6. Return structured governance report with severity classification\n\nWorkflow:\n1. Analyze validation results to identify issues\n2. If critical issues exist, call Exception Escalation Tool with validation data\n3. Call Briefing Preparation Tool to prepare appropriate briefings\n4. Synthesize all information into governance report\n5. Classify severity: Critical (requires immediate ministerial attention), High (requires executive review), Medium (standard reporting), Low (routine monitoring)\n\nYou MUST NOT recommend changes to programme execution - only reporting and escalation actions."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "46aa047f-b81b-4d4c-bef1-383e0e525b1a",
"name": "OpenAI Model - Governance",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1024,
416
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "5cbee1bc-8720-41fa-96d1-50ee9b3d4a08",
"name": "Governance Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1728,
416
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"governanceReport\": {\n \"type\": \"object\",\n \"properties\": {\n \"reportDate\": {\"type\": \"string\"},\n \"programmeName\": {\"type\": \"string\"},\n \"overallStatus\": {\"type\": \"string\"},\n \"severity\": {\"type\": \"string\", \"enum\": [\"Critical\", \"High\", \"Medium\", \"Low\"]},\n \"validationSummary\": {\"type\": \"string\"},\n \"exceptionsSummary\": {\"type\": \"string\"},\n \"briefingPrepared\": {\"type\": \"boolean\"},\n \"briefingType\": {\"type\": \"string\"},\n \"actionRequired\": {\"type\": \"string\"},\n \"stakeholdersToNotify\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}},\n \"nextSteps\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}\n }\n }\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "9fd2bdd3-5499-41b1-af32-c041a90f6137",
"name": "Route by Severity",
"type": "n8n-nodes-base.switch",
"position": [
1952,
352
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Critical",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.governanceReport.severity }}",
"rightValue": "Critical"
}
]
},
"renameOutput": true
},
{
"outputKey": "Standard",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.governanceReport.severity }}",
"rightValue": "High"
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra",
"renameFallbackOutput": "Default"
}
},
"typeVersion": 3.4
},
{
"id": "f2252c0b-5ec6-46f1-89af-126be028cb27",
"name": "Email - Critical Alert",
"type": "n8n-nodes-base.emailSend",
"position": [
2176,
368
],
"parameters": {
"html": "=<html>\n<body>\n<h2 style=\"color: #d32f2f;\">CRITICAL PROGRAMME ALERT</h2>\n<p><strong>Programme:</strong> {{ $json.output.governanceReport.programmeName }}</p>\n<p><strong>Severity:</strong> {{ $json.output.governanceReport.severity }}</p>\n<p><strong>Report Date:</strong> {{ $json.output.governanceReport.reportDate }}</p>\n<p><strong>Overall Status:</strong> {{ $json.output.governanceReport.overallStatus }}</p>\n\n<h3>Validation Summary</h3>\n<p>{{ $json.output.governanceReport.validationSummary }}</p>\n\n<h3>Exceptions Summary</h3>\n<p>{{ $json.output.governanceReport.exceptionsSummary }}</p>\n\n<h3>Action Required</h3>\n<p>{{ $json.output.governanceReport.actionRequired }}</p>\n\n<h3>Stakeholders to Notify</h3>\n<ul>\n{{ $json.output.governanceReport.stakeholdersToNotify.map(s => `<li>${s}</li>`).join(\"\") }}\n</ul>\n\n<h3>Next Steps</h3>\n<ul>\n{{ $json.output.governanceReport.nextSteps.map(step => `<li>${step}</li>`).join(\"\") }}\n</ul>\n\n<p style=\"color: #666; font-size: 12px; margin-top: 30px;\">This is an automated alert from the Programme Monitoring and Governance System.</p>\n</body>\n</html>",
"options": {},
"subject": "=CRITICAL ALERT: {{ $json.output.governanceReport.programmeName }} - {{ $json.output.governanceReport.severity }} Severity",
"toEmail": "={{ $('Workflow Configuration').first().json.criticalAlertEmail }}",
"fromEmail": "<__PLACEHOLDER_VALUE__Sender email address__>"
},
"typeVersion": 2.1
},
{
"id": "642cd396-829d-47ec-b223-91a45a033cac",
"name": "Slack - Critical Alert",
"type": "n8n-nodes-base.slack",
"position": [
2176,
560
],
"parameters": {
"text": "=\ud83d\udea8 *CRITICAL PROGRAMME ALERT*\n\n*Programme:* {{ $json.output.governanceReport.programmeName }}\n*Severity:* {{ $json.output.governanceReport.severity }}\n*Status:* {{ $json.output.governanceReport.overallStatus }}\n\n*Validation Summary:*\n{{ $json.output.governanceReport.validationSummary }}\n\n*Exceptions:*\n{{ $json.output.governanceReport.exceptionsSummary }}\n\n*Action Required:*\n{{ $json.output.governanceReport.actionRequired }}\n\n*Stakeholders to Notify:*\n{{ $json.output.governanceReport.stakeholdersToNotify.join(\", \") }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Workflow Configuration').first().json.slackChannelId }}"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "972c5f2d-700d-4aa1-94f8-fb543ac74819",
"name": "Email - Standard Report",
"type": "n8n-nodes-base.emailSend",
"position": [
2400,
176
],
"parameters": {
"html": "=<html>\n<body>\n<h2>Programme Governance Report</h2>\n<p><strong>Programme:</strong> {{ $json.output.governanceReport.programmeName }}</p>\n<p><strong>Report Date:</strong> {{ $json.reportDate }}</p>\n<p><strong>Overall Status:</strong> {{ $json.output.governanceReport.overallStatus }}</p>\n<p><strong>Severity:</strong> {{ $json.output.governanceReport.severity }}</p>\n\n<h3>Validation Summary</h3>\n<p>{{ $json.output.governanceReport.validationSummary }}</p>\n\n<h3>Exceptions Summary</h3>\n<p>{{ $json.output.governanceReport.exceptionsSummary }}</p>\n\n<h3>Briefing Status</h3>\n<p><strong>Briefing Prepared:</strong> {{ $json.output.governanceReport.briefingPrepared ? \"Yes\" : \"No\" }}</p>\n<p><strong>Briefing Type:</strong> {{ $json.output.governanceReport.briefingType }}</p>\n\n<h3>Action Required</h3>\n<p>{{ $json.output.governanceReport.actionRequired }}</p>\n\n<h3>Next Steps</h3>\n<ul>\n{{ $json.output.governanceReport.nextSteps.map(step => `<li>${step}</li>`).join(\"\") }}\n</ul>\n\n<p style=\"color: #666; font-size: 12px; margin-top: 30px;\">This is an automated report from the Programme Monitoring and Governance System.</p>\n</body>\n</html>",
"options": {},
"subject": "={{ $json.reportTitle }}",
"toEmail": "={{ $('Workflow Configuration').first().json.standardReportEmail }}",
"fromEmail": "<__PLACEHOLDER_VALUE__Sender email address__>"
},
"typeVersion": 2.1
},
{
"id": "1d532205-1a9d-4b0e-b985-50d86570d9bd",
"name": "Format Report Data",
"type": "n8n-nodes-base.set",
"position": [
2176,
176
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "reportTitle",
"type": "string",
"value": "=Programme Governance Report - {{ $json.output.governanceReport.programmeName }}"
},
{
"id": "id-2",
"name": "reportDate",
"type": "string",
"value": "={{ $now.toFormat(\"yyyy-MM-dd HH:mm\") }}"
},
{
"id": "id-3",
"name": "formattedReport",
"type": "string",
"value": "=Programme: {{ $json.output.governanceReport.programmeName }}\nStatus: {{ $json.output.governanceReport.overallStatus }}\nSeverity: {{ $json.output.governanceReport.severity }}\n\nValidation Summary:\n{{ $json.output.governanceReport.validationSummary }}\n\nExceptions Summary:\n{{ $json.output.governanceReport.exceptionsSummary }}\n\nAction Required:\n{{ $json.output.governanceReport.actionRequired }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "2f5f0ef0-364f-4526-9272-a7f088011caa",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1872,
32
],
"parameters": {
"color": 7,
"width": 720,
"height": 832,
"content": "## Severity-Based Multi-Channel Delivery\n**What:** Routes governance outputs through severity classification to appropriate delivery channels with formatted reports and critical alerts\n**Why:** Ensures urgent issues receive immediate executive attention while routine updates follow standard reporting protocols without alert fatigue"
},
"typeVersion": 1
},
{
"id": "893436e4-3d37-4626-aa14-38721bfc7771",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
944,
64
],
"parameters": {
"color": 7,
"width": 912,
"height": 784,
"content": "## Multi-Tool Governance Orchestration\n**What:** Coordinates governance agent with parallel specialized tools for exception escalation, briefing preparation, and governance reporting\n**Why:** Ensures comprehensive response by deploying specialized AI models for distinct governance functions requiring different analytical approaches"
},
"typeVersion": 1
},
{
"id": "feee74a5-36eb-4423-850b-7066c3b4acf0",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
64
],
"parameters": {
"color": 7,
"width": 960,
"height": 720,
"content": "## AI-Driven Performance Assessment\n**What:** Processes programme data through monitoring agent with specialized output parsing for performance trend analysis\n**Why:** Leverages AI to detect early warning indicators and performance degradation patterns that manual reviews miss"
},
"typeVersion": 1
},
{
"id": "124ce598-6f2b-4cb4-862a-4c5179bbb08c",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1200,
-352
],
"parameters": {
"color": 6,
"width": 416,
"height": 352,
"content": "## Prerequisites\nOpenAI API credentials for multiple AI agents and specialized tools\n## Use Cases\nPMOs monitoring multi-project portfolios, consulting firms tracking client engagement health\n## Customization\nAdjust monitoring frequency for programme urgency levels\n## Benefits\nReduces programme review overhead by 75%, eliminates manual status compilation"
},
"typeVersion": 1
},
{
"id": "0cf62e3d-060b-4d08-9b0b-ecb9a00fe123",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
-304
],
"parameters": {
"width": 496,
"height": 304,
"content": "## Setup Steps\n1. Configure Schedule Trigger with programme review frequency\n2. Connect Workflow Configuration node with programme parameters\n3. Set up Fetch Programme Data node with project management API credentials\n4. Configure Programme Monitoring Agent with OpenAI API credentials\n5. Set up monitoring processing \n6. Connect Governance Agent with OpenAI API credentials for orchestration\n7. Configure parallel specialized tools with respective OpenAI models\n8. Set up tool-specific parsers "
},
"typeVersion": 1
},
{
"id": "76f79d62-111a-4e70-994e-9956fe895032",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
-320
],
"parameters": {
"width": 640,
"height": 352,
"content": "## How It Works\nThis workflow automates programme performance monitoring and governance oversight through intelligent AI-driven analysis and multi-tool orchestration. Designed for programme managers, portfolio management offices, and executive leadership teams, it solves the critical challenge of tracking programme health while coordinating interventions across escalation, exception handling, and briefing preparation workflows. The system operates on scheduled intervals, fetching programme data and processing it through dual AI agents for performance monitoring and governance assessment. It orchestrates parallel specialized tools for exception escalation, briefing preparation, and governance reporting, each with dedicated AI models and output parsers. The workflow intelligently routes findings based on severity classification, delivering critical alerts through multiple channels including email and Slack while generating formatted standard reports. By maintaining comprehensive documentation and coordinating multi-faceted governance responses, it ensures programme stakeholders receive timely, actionable intelligence while creating complete audit trails for portfolio reviews."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "ff2a9026-6064-44c4-b28b-67a7a1d4a12e",
"connections": {
"Governance Agent": {
"main": [
[
{
"node": "Route by Severity",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Workflow Configuration",
"type": "main",
"index": 0
}
]
]
},
"Route by Severity": {
"main": [
[
{
"node": "Email - Critical Alert",
"type": "main",
"index": 0
},
{
"node": "Slack - Critical Alert",
"type": "main",
"index": 0
}
],
[
{
"node": "Format Report Data",
"type": "main",
"index": 0
}
]
]
},
"Format Report Data": {
"main": [
[
{
"node": "Email - Standard Report",
"type": "main",
"index": 0
}
]
]
},
"Fetch Programme Data": {
"main": [
[
{
"node": "Programme Monitoring Agent",
"type": "main",
"index": 0
}
]
]
},
"Briefing Output Parser": {
"ai_outputParser": [
[
{
"node": "Briefing Preparation Tool",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Workflow Configuration": {
"main": [
[
{
"node": "Fetch Programme Data",
"type": "main",
"index": 0
}
]
]
},
"Exception Output Parser": {
"ai_outputParser": [
[
{
"node": "Exception Escalation Tool",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Governance Output Parser": {
"ai_outputParser": [
[
{
"node": "Governance Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Monitoring Output Parser": {
"ai_outputParser": [
[
{
"node": "Programme Monitoring Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Briefing Preparation Tool": {
"ai_tool": [
[
{
"node": "Governance Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Exception Escalation Tool": {
"ai_tool": [
[
{
"node": "Governance Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"OpenAI Model - Governance": {
"ai_languageModel": [
[
{
"node": "Governance Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Model - Monitoring": {
"ai_languageModel": [
[
{
"node": "Programme Monitoring Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Programme Monitoring Agent": {
"main": [
[
{
"node": "Governance Agent",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Model - Briefing Tool": {
"ai_languageModel": [
[
{
"node": "Briefing Preparation Tool",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Model - Exception Tool": {
"ai_languageModel": [
[
{
"node": "Exception Escalation Tool",
"type": "ai_languageModel",
"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.
openAiApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates programme performance monitoring and governance oversight through intelligent AI-driven analysis and multi-tool orchestration. Designed for programme managers, portfolio management offices, and executive leadership teams, it solves the critical challenge…
Source: https://n8n.io/workflows/13158/ — 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.
This workflow automates end-to-end sustainability lifecycle management for corporate sustainability teams, ESG governance officers, and circular economy programme leads. It addresses the challenge of
This workflow automates end-to-end carbon emissions monitoring, strategy optimisation, and ESG reporting using a multi-agent AI supervisor architecture in n8n. Designed for sustainability managers, ES
This workflow automates end-to-end ESG (Environmental, Social, and Governance) sustainability reporting for enterprise sustainability teams, compliance officers, and green governance leads. It solves
This workflow automates end-to-end carbon emissions monitoring, strategy optimisation, and ESG reporting using a multi-agent AI supervisor architecture in n8n. Designed for sustainability managers, ES
This workflow automates end-to-end carbon emissions monitoring, strategy optimisation, and ESG reporting using a multi-agent AI supervisor architecture in n8n. Designed for sustainability managers, ES