AutomationFlowsAI & RAG › Monitor and Optimize Carbon Emissions for Esg Reporting with Gpt-4o, Slack…

Monitor and Optimize Carbon Emissions for Esg Reporting with Gpt-4o, Slack…

Original n8n title: Monitor and Optimize Carbon Emissions for Esg Reporting with Gpt-4o, Slack and Sheets

ByCheng Siong Chin @cschin on n8n.io

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, ESG teams, and operations leads, it eliminates the manual effort of tracking…

Cron / scheduled trigger★★★★★ complexityAI-powered37 nodesAgentOpenAI ChatOutput Parser StructuredAgent ToolTool CodeTool CalculatorPostgres ToolGoogle Sheets Tool
AI & RAG Trigger: Cron / scheduled Nodes: 37 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #14464 — 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 →

Download .json
{
  "id": "zAFpZbgV9bgNbjwR",
  "name": "AI carbon supervisor agent for ESG monitoring and strategy execution",
  "tags": [],
  "nodes": [
    {
      "id": "31b22291-3f1c-4a99-b1da-91eb3bbf0de9",
      "name": "Scheduled Carbon Data Collection",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        224,
        928
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 6
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "96ef6655-cd22-421b-b5ba-77d532cfa981",
      "name": "Carbon Supervisor Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1424,
        896
      ],
      "parameters": {
        "text": "={{ $json.emissions_data || $json.body || $json }}",
        "options": {
          "systemMessage": "You are the Carbon Sustainability Supervisor Agent. Your role is to orchestrate carbon monitoring, optimization, policy enforcement, and ESG reporting across multi-cloud and enterprise environments. Analyze incoming emissions data, delegate tasks to specialized sub-agents (monitoring, optimization, policy enforcement, ESG reporting), and coordinate carbon reduction strategies. Determine which sub-agents to invoke based on the data type and required actions."
        },
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "60088dda-3b7d-421a-96a7-e63ebffb0da9",
      "name": "Supervisor Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        800,
        1312
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.2
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "43cc6763-43ce-4c92-b741-b24e22601f4d",
      "name": "Supervisor Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2224,
        1312
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"action\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"monitor\", \"optimize\", \"enforce_policy\", \"generate_report\"]\n\t\t},\n\t\t\"priority\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"critical\", \"high\", \"medium\", \"low\"]\n\t\t},\n\t\t\"carbon_metrics\": {\n\t\t\t\"type\": \"object\"\n\t\t},\n\t\t\"recommendations\": {\n\t\t\t\"type\": \"array\"\n\t\t},\n\t\t\"policy_violations\": {\n\t\t\t\"type\": \"array\"\n\t\t},\n\t\t\"requires_approval\": {\n\t\t\t\"type\": \"boolean\"\n\t\t}\n\t}\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "fe53a095-e330-4add-ae2c-2dc51d175728",
      "name": "Carbon Monitoring Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        928,
        1312
      ],
      "parameters": {
        "text": "={{ $fromAI('monitoring_task', 'The carbon monitoring task to perform') }}",
        "options": {
          "systemMessage": "You are the Carbon Monitoring Agent. Collect emissions data from cloud providers, validate data quality, identify anomalies in carbon metrics, calculate carbon KPIs (total emissions, emissions per service, carbon intensity), and flag data quality issues. Use available tools to query databases and APIs for historical context."
        },
        "toolDescription": "Collects and validates emissions data across cloud infrastructure (AWS, Azure, GCP), enterprise operations, and digital workloads. Validates data quality, identifies anomalies, and tracks carbon KPIs."
      },
      "typeVersion": 3
    },
    {
      "id": "279db0e0-83e6-41f0-bd24-7cf96d269b0e",
      "name": "Monitoring Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        560,
        1520
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.1
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "3a8c3018-d572-4615-831a-da70d6211a51",
      "name": "Carbon Optimization Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1344,
        1312
      ],
      "parameters": {
        "text": "={{ $fromAI('optimization_task', 'The carbon optimization task to perform') }}",
        "options": {
          "systemMessage": "You are the Carbon Optimization Agent. Analyze energy consumption patterns, identify high-carbon workloads, recommend low-carbon alternatives (region migration, instance rightsizing, renewable energy sources), calculate potential carbon savings, and prioritize optimization opportunities by impact and cost-efficiency."
        },
        "toolDescription": "Analyzes energy consumption patterns and recommends automated cost-efficient and low-carbon alternatives. Identifies optimization opportunities across cloud resources and enterprise operations."
      },
      "typeVersion": 3
    },
    {
      "id": "7bc751bc-e85d-4f10-bd61-93a9bf09dbf4",
      "name": "Optimization Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1248,
        1520
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.3
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "edaddbbc-9e15-422b-904c-10135a1c5c53",
      "name": "Policy Enforcement Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1648,
        1312
      ],
      "parameters": {
        "text": "={{ $fromAI('policy_task', 'The policy enforcement task to perform') }}",
        "options": {
          "systemMessage": "You are the Policy Enforcement Agent. Check emissions data against green policies and carbon reduction targets, identify policy violations, assess severity levels, recommend corrective actions, and determine if violations require immediate escalation or approval workflows."
        },
        "toolDescription": "Enforces green policies, detects policy violations, and ensures compliance with carbon reduction targets and sustainability standards."
      },
      "typeVersion": 3
    },
    {
      "id": "50dcd6ed-4c83-4ef7-a434-16f22fa19f94",
      "name": "Policy Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1664,
        1520
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.1
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0a7703a4-f2ec-4f95-a48f-441bb6d52b67",
      "name": "ESG Reporting Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1936,
        1312
      ],
      "parameters": {
        "text": "={{ $fromAI('reporting_task', 'The ESG reporting task to perform') }}",
        "options": {
          "systemMessage": "You are the ESG Reporting Agent. Generate comprehensive ESG reports including carbon metrics, sustainability KPIs, reduction achievements, policy compliance status, and trend analysis. Format reports for stakeholder consumption and regulatory compliance."
        },
        "toolDescription": "Generates ESG-ready sustainability reports, carbon reduction insights, and compliance documentation for stakeholders."
      },
      "typeVersion": 3
    },
    {
      "id": "db093b39-5b0a-4835-a18d-40f49b153acb",
      "name": "ESG Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2016,
        1520
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.2
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "3887d823-c201-439e-8606-5eac551eddb2",
      "name": "Carbon Calculations Tool",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        816,
        1520
      ],
      "parameters": {
        "jsCode": "// Carbon calculation functions\nconst emissions = $fromAI('emissions_value', 'Emissions value in kg CO2e', 'number');\nconst energy = $fromAI('energy_kwh', 'Energy consumption in kWh', 'number', 0);\nconst operation = $fromAI('operation', 'Calculation type: footprint, intensity, efficiency, savings', 'string');\n\nconst CARBON_INTENSITY_GRID = 0.475; // kg CO2e per kWh (global average)\nconst RENEWABLE_INTENSITY = 0.05; // kg CO2e per kWh\n\nlet result;\nif (operation === 'footprint') {\n  result = energy * CARBON_INTENSITY_GRID;\n} else if (operation === 'intensity') {\n  result = emissions / Math.max(energy, 1);\n} else if (operation === 'efficiency') {\n  result = 100 - ((emissions / (energy * CARBON_INTENSITY_GRID)) * 100);\n} else if (operation === 'savings') {\n  result = energy * (CARBON_INTENSITY_GRID - RENEWABLE_INTENSITY);\n} else {\n  result = emissions;\n}\n\nreturn { result: result.toFixed(2), unit: 'kg CO2e', operation };",
        "description": "Performs carbon footprint calculations, emissions validation, energy efficiency scoring, and carbon intensity computations using custom formulas."
      },
      "typeVersion": 1.3
    },
    {
      "id": "e330021c-9d84-4438-9812-e0b0f2b44090",
      "name": "KPI Calculator",
      "type": "@n8n/n8n-nodes-langchain.toolCalculator",
      "position": [
        1312,
        1728
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7c87493c-3893-4036-8171-2f7ed140dd73",
      "name": "Carbon Database Tool",
      "type": "n8n-nodes-base.postgresTool",
      "position": [
        1056,
        1520
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "descriptionType": "manual",
        "toolDescription": "Query and update carbon emissions data, KPI metrics, historical trends, and policy configurations in the PostgreSQL database."
      },
      "typeVersion": 2.6
    },
    {
      "id": "8c507355-4586-4a1b-9133-e8b41aecd457",
      "name": "Policy Sheets Tool",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1808,
        1520
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "descriptionType": "manual",
        "toolDescription": "Read carbon reduction policies, approved strategies, and sustainability targets from Google Sheets."
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d3e7ab6c-96b7-42d8-98c2-e3b62ce8927d",
      "name": "Approval Workflow Tool",
      "type": "n8n-nodes-base.slackHitlTool",
      "position": [
        1376,
        1520
      ],
      "parameters": {
        "user": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "message": "={{ $fromAI('approval_message', 'The approval request message') }}",
        "options": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "6de1bc0d-fb58-4160-9fb4-9b3261192297",
      "name": "Route by Action Type",
      "type": "n8n-nodes-base.switch",
      "position": [
        2560,
        1072
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.action }}",
                    "rightValue": "monitor"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.action }}",
                    "rightValue": "optimize"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.action }}",
                    "rightValue": "enforce_policy"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.action }}",
                    "rightValue": "generate_report"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.4
    },
    {
      "id": "861fb4fb-d1e1-48ed-bd32-750d756fd63b",
      "name": "Store Carbon Metrics",
      "type": "n8n-nodes-base.postgres",
      "position": [
        3456,
        992
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "name",
          "value": "carbon_metrics"
        },
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "columns": {
          "value": {
            "action": "={{ $json.action }}",
            "priority": "={{ $json.priority }}",
            "timestamp": "={{ $now }}",
            "carbon_metrics": "={{ JSON.stringify($json.carbon_metrics) }}",
            "recommendations": "={{ JSON.stringify($json.recommendations) }}",
            "policy_violations": "={{ JSON.stringify($json.policy_violations) }}",
            "requires_approval": "={{ $json.requires_approval }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {}
      },
      "typeVersion": 2.6
    },
    {
      "id": "a1b01743-1381-44d2-87be-5f9ad1834b31",
      "name": "Prepare Optimization Data",
      "type": "n8n-nodes-base.set",
      "position": [
        2768,
        1376
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "optimization_summary",
              "type": "string",
              "value": "={{ $json.output.recommendations }}"
            },
            {
              "id": "id-2",
              "name": "carbon_savings",
              "type": "number",
              "value": "={{ $json.output.carbon_metrics.potential_savings }}"
            },
            {
              "id": "id-3",
              "name": "priority",
              "type": "string",
              "value": "={{ $json.output.priority }}"
            },
            {
              "id": "id-4",
              "name": "requires_approval",
              "type": "boolean",
              "value": "={{ $json.output.requires_approval }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4e262fcc-a75b-4bb0-987d-e8e56b5cf240",
      "name": "Send Policy Alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        3456,
        1568
      ],
      "parameters": {
        "text": "=\ud83d\udea8 *Carbon Policy Violation Detected*\n\n*Priority:* {{ $json.output.priority }}\n*Violations:* {{ $json.output.policy_violations.length }}\n\n{{ $json.output.policy_violations.map(v => `\u2022 ${v.policy}: ${v.description}`).join('\\n') }}\n\n*Recommended Actions:*\n{{ $json.output.recommendations.map(r => `\u2022 ${r}`).join('\\n') }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__policy_alerts_channel__>"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "bffb3126-519a-4fa3-b98d-6df566e30cc7",
      "name": "Update ESG Report",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3232,
        1760
      ],
      "parameters": {
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "03ec1027-aeca-407f-a07a-9995024232fc",
      "name": "Check Approval Required",
      "type": "n8n-nodes-base.if",
      "position": [
        3008,
        1280
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "boolean",
                "operation": "true"
              },
              "leftValue": "={{ $json.requires_approval }}"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "97e87f59-f00f-4e63-81a5-702cc8230cc9",
      "name": "Request Strategy Approval",
      "type": "n8n-nodes-base.slack",
      "position": [
        3232,
        1184
      ],
      "parameters": {
        "select": "channel",
        "message": "=\ud83c\udf31 *Carbon Reduction Strategy Approval Required*\n\n*Priority:* {{ $json.priority }}\n*Estimated Carbon Savings:* {{ $json.carbon_savings }} kg CO2e\n\n*Optimization Recommendations:*\n{{ $json.optimization_summary.map(r => `\u2022 ${r}`).join('\\n') }}\n\nPlease approve or reject this strategy.",
        "options": {},
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__approval_channel__>"
        },
        "operation": "sendAndWait",
        "authentication": "oAuth2",
        "approvalOptions": {
          "values": {
            "approvalType": "double",
            "disapproveLabel": "Reject"
          }
        }
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "2b7cfd43-d42a-4db5-9267-887ef15af4d5",
      "name": "Log Approved Strategy",
      "type": "n8n-nodes-base.postgres",
      "position": [
        3456,
        1184
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "name",
          "value": "approved_strategies"
        },
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "columns": {
          "value": {
            "status": "approved",
            "priority": "={{ $json.priority }}",
            "strategy": "={{ JSON.stringify($json.optimization_summary) }}",
            "timestamp": "={{ $now }}",
            "approved_by": "={{ $json.user }}",
            "carbon_savings": "={{ $json.carbon_savings }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {}
      },
      "typeVersion": 2.6
    },
    {
      "id": "cff86851-e84b-465a-a3bd-2d494c4c88dc",
      "name": "Auto-Execute Strategy",
      "type": "n8n-nodes-base.postgres",
      "position": [
        3456,
        1376
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "name",
          "value": "approved_strategies"
        },
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "columns": {
          "value": {
            "status": "auto_executed",
            "priority": "={{ $json.priority }}",
            "strategy": "={{ JSON.stringify($json.optimization_summary) }}",
            "timestamp": "={{ $now }}",
            "carbon_savings": "={{ $json.carbon_savings }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {}
      },
      "typeVersion": 2.6
    },
    {
      "id": "5bf1187d-eee0-4b9b-9adf-89e15ba61ecd",
      "name": "Send ESG Report Email",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        3456,
        1760
      ],
      "parameters": {
        "html": "=Dear Stakeholder,<br><br>Please find the latest ESG sustainability report below:<br><br><strong>Total Emissions:</strong> {{ $json.carbon_metrics.total_emissions }} kg CO2e<br><strong>Carbon Intensity:</strong> {{ $json.carbon_metrics.carbon_intensity }}<br><strong>Policy Compliance Rate:</strong> {{ $json.carbon_metrics.compliance_rate }}%<br><br><strong>Key Sustainability Insights:</strong><br>{{ $json.recommendations.map(r => `\u2022 ${r}`).join('<br>') }}<br><br>The full report has been updated in the ESG tracking sheet.<br><br>Best regards,<br>Carbon Monitoring System",
        "options": {},
        "subject": "=ESG Sustainability Report - {{ $now.toFormat('yyyy-MM-dd') }}",
        "toEmail": "<__PLACEHOLDER_VALUE__stakeholder_email__>",
        "fromEmail": "<__PLACEHOLDER_VALUE__sender_email__>"
      },
      "typeVersion": 2.1
    },
    {
      "id": "2e82947a-9625-4068-b99b-33e91fcfbd10",
      "name": "Consolidate All Actions",
      "type": "n8n-nodes-base.merge",
      "position": [
        3680,
        1328
      ],
      "parameters": {
        "numberInputs": 5
      },
      "typeVersion": 3.2
    },
    {
      "id": "3c2315d9-9d91-4b70-aba6-cc09ef0e4719",
      "name": "Send Summary Notification",
      "type": "n8n-nodes-base.slack",
      "position": [
        3904,
        1376
      ],
      "parameters": {
        "text": "=\u2705 *Carbon Monitoring Workflow Complete*\n\n*Action:* {{ $json.action || 'Multiple actions' }}\n*Priority:* {{ $json.priority || 'N/A' }}\n*Status:* Successfully processed\n\nAll carbon monitoring, optimization, policy enforcement, and reporting tasks have been completed.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__summary_channel__>"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "70b04d9d-6545-44ea-89e0-61ba7ad808a8",
      "name": "Update KPI Dashboard",
      "type": "n8n-nodes-base.postgres",
      "position": [
        4128,
        1376
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "name",
          "value": "kpi_dashboard"
        },
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "columns": {
          "value": {
            "status": "=completed",
            "timestamp": "={{ $now }}",
            "total_actions": "={{ $json.action ? 1 : 0 }}",
            "workflow_run_id": "={{ $execution.id }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {}
      },
      "typeVersion": 2.6
    },
    {
      "id": "8d18ca9f-5f7e-46de-b187-d240c96db1e5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        448
      ],
      "parameters": {
        "width": 688,
        "height": 256,
        "content": "## How It Works\nThis 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, ESG teams, and operations leads, it eliminates the manual effort of tracking emissions, evaluating reduction strategies, and producing compliance reports. Data enters via scheduled pulls and real-time webhooks, then merges into a unified feed processed by a Carbon Supervisor Agent. Sub-agents handle monitoring, optimisation, policy enforcement, and ESG reporting. Approved strategies are auto-executed or routed for human sign-off. Outputs are consolidated and pushed to Slack, Google Sheets, and email, keeping all stakeholders informed. The workflow closes the loop from raw sensor data to actionable ESG dashboards with minimal human intervention.\n "
      },
      "typeVersion": 1
    },
    {
      "id": "3c5c4eb6-607d-40b8-8678-5d0615b94a2c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        432
      ],
      "parameters": {
        "width": 448,
        "height": 272,
        "content": "## Setup Steps\n1. Connect scheduled trigger and webhook nodes to your emissions data sources.\n2. Add credentials for Slack (bot token), Gmail (OAuth2), and Google Sheets (service account).\n3. Configure the Carbon Supervisor Agent with your preferred LLM (OpenAI or compatible).\n4. Set approval thresholds in the Check Approval Required node.\n5. Map Google Sheets document ID for ESG report and KPI dashboard nodes."
      },
      "typeVersion": 1
    },
    {
      "id": "d22ded0d-d30d-4088-9eb3-0e575ada773e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1472,
        352
      ],
      "parameters": {
        "color": 6,
        "width": 528,
        "height": 352,
        "content": "## Prerequisites\n- OpenAI or compatible LLM API key\n- Slack bot token\n- Gmail OAuth2 credentials\n- Google Sheets service account\n## Use Cases\n- Corporate sustainability teams automating monthly ESG reporting\n## Customisation\n- Swap LLM models per agent for cost or accuracy trade-offs\n## Benefits\n- Eliminates manual emissions data aggregation and report generation"
      },
      "typeVersion": 1
    },
    {
      "id": "4b6b8014-c0cf-48a5-870d-1409d0c01f58",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        1232
      ],
      "parameters": {
        "color": 7,
        "width": 2160,
        "height": 656,
        "content": "## Strategy & Policy Evaluation\n**What:** Optimisation and Policy Enforcement Agents propose and validate actions.\n**Why:** Keeps reduction strategies compliant before execution."
      },
      "typeVersion": 1
    },
    {
      "id": "e8b6c838-f9cc-4e69-95db-73b019d74a6a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        784
      ],
      "parameters": {
        "color": 7,
        "width": 1936,
        "height": 416,
        "content": "## Supervisor Orchestration\n**What:** Carbon Supervisor Agent delegates tasks across four specialised sub-agents.\n**Why:** Parallel processing improves speed and separates concerns cleanly."
      },
      "typeVersion": 1
    },
    {
      "id": "25a3e0ee-960d-4d6a-892d-a58d28afeaa7",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2480,
        896
      ],
      "parameters": {
        "color": 7,
        "width": 880,
        "height": 1024,
        "content": "\n## Approval Routing\n**What:** Routes strategies requiring sign-off to Slack; auto-executes low-risk ones.\n**Why:** Balances automation with governance oversight."
      },
      "typeVersion": 1
    },
    {
      "id": "9895286e-18cf-4fac-bdc5-21c96872ba5a",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3424,
        880
      ],
      "parameters": {
        "color": 7,
        "width": 880,
        "height": 1168,
        "content": "## Reporting & Notification\n**What:** Updates ESG report, sends email summary, refreshes KPI dashboard.\n**Why:** Closes the feedback loop for stakeholders in real time."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "64ae5cdb-b203-4f53-b9de-bad50671ffe2",
  "connections": {
    "ESG Model": {
      "ai_languageModel": [
        [
          {
            "node": "ESG Reporting Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Policy Model": {
      "ai_languageModel": [
        [
          {
            "node": "Policy Enforcement Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "KPI Calculator": {
      "ai_tool": [
        [
          {
            "node": "Carbon Monitoring Agent",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "Approval Workflow Tool",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Monitoring Model": {
      "ai_languageModel": [
        [
          {
            "node": "Carbon Monitoring Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Supervisor Model": {
      "ai_languageModel": [
        [
          {
            "node": "Carbon Supervisor Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Send Policy Alert": {
      "main": [
        [
          {
            "node": "Consolidate All Actions",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Update ESG Report": {
      "main": [
        [
          {
            "node": "Send ESG Report Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Optimization Model": {
      "ai_languageModel": [
        [
          {
            "node": "Carbon Optimization Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Policy Sheets Tool": {
      "ai_tool": [
        [
          {
            "node": "Policy Enforcement Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "ESG Reporting Agent": {
      "ai_tool": [
        [
          {
            "node": "Carbon Supervisor Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Carbon Database Tool": {
      "ai_tool": [
        [
          {
            "node": "Carbon Monitoring Agent",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "Carbon Optimization Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Route by Action Type": {
      "main": [
        [
          {
            "node": "Store Carbon Metrics",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Prepare Optimization Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Policy Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update ESG Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Carbon Metrics": {
      "main": [
        [
          {
            "node": "Consolidate All Actions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Auto-Execute Strategy": {
      "main": [
        [
          {
            "node": "Consolidate All Actions",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Log Approved Strategy": {
      "main": [
        [
          {
            "node": "Consolidate All Actions",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Send ESG Report Email": {
      "main": [
        [
          {
            "node": "Consolidate All Actions",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "Approval Workflow Tool": {
      "ai_tool": [
        [
          {
            "node": "Carbon Optimization Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Carbon Monitoring Agent": {
      "ai_tool": [
        [
          {
            "node": "Carbon Supervisor Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Carbon Supervisor Agent": {
      "main": [
        [
          {
            "node": "Route by Action Type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Approval Required": {
      "main": [
        [
          {
            "node": "Request Strategy Approval",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Auto-Execute Strategy",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Consolidate All Actions": {
      "main": [
        [
          {
            "node": "Send Summary Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Carbon Calculations Tool": {
      "ai_tool": [
        [
          {
            "node": "Carbon Monitoring Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Policy Enforcement Agent": {
      "ai_tool": [
        [
          {
            "node": "Carbon Supervisor Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Supervisor Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Carbon Supervisor Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Carbon Optimization Agent": {
      "ai_tool": [
        [
          {
            "node": "Carbon Supervisor Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Optimization Data": {
      "main": [
        [
          {
            "node": "Check Approval Required",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Request Strategy Approval": {
      "main": [
        [
          {
            "node": "Log Approved Strategy",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Summary Notification": {
      "main": [
        [
          {
            "node": "Update KPI Dashboard",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scheduled Carbon Data Collection": {
      "main": [
        [
          {
            "node": "Carbon Supervisor Agent",
            "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.

Pro

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

About this workflow

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, ESG teams, and operations leads, it eliminates the manual effort of tracking…

Source: https://n8n.io/workflows/14464/ — 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

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

Form Trigger, Agent, OpenAI Chat +11
AI & RAG

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

Agent, OpenAI Chat, Output Parser Structured +10
AI & RAG

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

Agent, OpenAI Chat, Output Parser Structured +12
AI & RAG

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

Agent, OpenAI Chat, Output Parser Structured +10
AI & RAG

This workflow automates semiconductor board-level reliability monitoring using AI agents. It targets reliability engineers, manufacturing teams, and quality analysts. The system collects capacity, his

Google Sheets, Agent, OpenAI Chat +10