This workflow corresponds to n8n.io template #14433 — 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": "7UEXzZjwXcj4vylR",
"name": "AI-powered sustainability lifecycle orchestration with circular economy tracking",
"tags": [],
"nodes": [
{
"id": "fecf6f5d-8193-46b6-8a9f-aa878f2c66ee",
"name": "Monitor Lifecycle Data",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
208,
432
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 6
}
]
}
},
"typeVersion": 1.3
},
{
"id": "b5f3021f-7096-44a3-a03d-fc48c5524108",
"name": "Receive Sustainability Data",
"type": "n8n-nodes-base.webhook",
"position": [
480,
592
],
"parameters": {
"path": "sustainability-data",
"options": {},
"httpMethod": "POST",
"responseMode": "lastNode"
},
"typeVersion": 2.1
},
{
"id": "f8ca4b4d-b90e-4480-a34e-f90330beb7fc",
"name": "Initiative Submission Form",
"type": "n8n-nodes-base.formTrigger",
"position": [
480,
784
],
"parameters": {
"options": {
"appendAttribution": false
},
"formTitle": "Sustainability Initiative Submission",
"formFields": {
"values": [
{
"fieldLabel": "Initiative Type"
},
{
"fieldType": "textarea",
"fieldLabel": "Description"
},
{
"fieldLabel": "Product/Material"
},
{
"fieldType": "number",
"fieldLabel": "Estimated Impact (kg waste reduced)"
}
]
},
"formDescription": "Submit recycling proposals, refurbishment requests, or reuse opportunities"
},
"typeVersion": 2.5
},
{
"id": "221aaa67-ac96-4e6c-addd-bb9d25aec0ea",
"name": "Combine Input Sources",
"type": "n8n-nodes-base.merge",
"position": [
704,
528
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "5cc83b4c-9887-46c7-9c77-d89050142322",
"name": "Sustainability Orchestrator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1424,
544
],
"parameters": {
"text": "={{ $json.body ? JSON.stringify($json.body) : JSON.stringify($json) }}",
"options": {
"systemMessage": "You are the Sustainability Orchestrator Agent coordinating circular economy and sustainability governance workflows. Analyze incoming data to determine the appropriate action: delegate to Circular Economy Agent for lifecycle analysis and recycling opportunities, delegate to Sustainability Governance Agent for approvals and compliance validation, or delegate to Documentation Agent for ESG reporting. Return structured output with: action (analyze/approve/document), priority (critical/high/medium/low), delegateTo (circular_economy/governance/documentation), and summary."
},
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "25895454-9d58-45c1-8367-0bb3527edf67",
"name": "Orchestrator Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
896,
704
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "gpt-4o"
},
"options": {
"temperature": 0.2
},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "962bb75c-56c0-4279-a73d-82ee577c5bb3",
"name": "Orchestrator Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2448,
976
],
"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\": [\"analyze\", \"approve\", \"document\"]\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\"delegateTo\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"circular_economy\", \"governance\", \"documentation\"]\n\t\t},\n\t\t\"summary\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"required\": [\"action\", \"priority\", \"delegateTo\", \"summary\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "f4de3c3c-0185-43f2-8f0a-fa6e9bc54415",
"name": "Shared Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
1056,
736
],
"parameters": {
"contextWindowLength": 10
},
"typeVersion": 1.3
},
{
"id": "d81876ea-a53c-4da3-a989-6c6bb975d220",
"name": "Circular Economy Agent",
"type": "@n8n/n8n-nodes-langchain.agentTool",
"position": [
1264,
976
],
"parameters": {
"text": "={{ $fromAI('task', 'The product lifecycle data or sustainability initiative to analyze') }}",
"options": {
"systemMessage": "You are the Circular Economy Agent specializing in product lifecycle analysis, recycling optimization, and material reuse strategies. Analyze product data to identify: 1) End-of-life recycling opportunities, 2) Material reuse potential, 3) Refurbishment feasibility, 4) Waste reduction metrics (calculate percentages using the calculator tool), 5) Circular economy strategy recommendations. Return structured output with: productId, lifecycleStage, recyclingRate, reuseOpportunities (array), wasteReductionPotential (kg), recommendedStrategy, and complianceStatus."
},
"hasOutputParser": true,
"toolDescription": "Analyzes product lifecycle data, monitors recycling rates, identifies material reuse opportunities, calculates waste reduction metrics, and recommends circular economy strategies"
},
"typeVersion": 3
},
{
"id": "72a01d01-1d6e-4f28-b496-0188448ce899",
"name": "Circular Economy Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1216,
1344
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "gpt-4o"
},
"options": {
"temperature": 0.2
},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "4453c434-0850-4852-9f60-5da6082d8bee",
"name": "Circular Economy Output",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1424,
1264
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"productId\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"lifecycleStage\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"recyclingRate\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"reuseOpportunities\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"wasteReductionPotential\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"recommendedStrategy\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"complianceStatus\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"required\": [\"productId\", \"lifecycleStage\", \"recyclingRate\", \"reuseOpportunities\", \"wasteReductionPotential\", \"recommendedStrategy\", \"complianceStatus\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "dce7653d-6d0b-41d9-82b9-ad8ae288ae22",
"name": "Metrics Calculator",
"type": "@n8n/n8n-nodes-langchain.toolCalculator",
"position": [
1296,
1184
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b8437a88-10cd-47b7-8c6f-119577f809d0",
"name": "Sustainability Governance Agent",
"type": "@n8n/n8n-nodes-langchain.agentTool",
"position": [
1696,
976
],
"parameters": {
"text": "={{ $fromAI('task', 'The sustainability initiative or circular economy proposal to evaluate for approval and compliance') }}",
"options": {
"systemMessage": "You are the Sustainability Governance Agent responsible for automating approval workflows and validating compliance. For each initiative: 1) Assess compliance with ESG standards and sustainability regulations, 2) Determine approval requirements (auto-approve low-risk, request human approval for high-risk using the approval tool), 3) Validate environmental impact claims, 4) Check regulatory compliance, 5) Recommend governance actions. Return structured output with: initiativeId, complianceScore (0-100), approvalStatus (approved/pending/rejected), riskLevel (low/medium/high/critical), regulatoryCompliance (boolean), requiredActions (array), and approvalRationale."
},
"hasOutputParser": true,
"toolDescription": "Automates approvals for reuse, refurbishment, and recycling initiatives; validates sustainability compliance against ESG standards; manages governance workflows and approval processes"
},
"typeVersion": 3
},
{
"id": "652afae9-71e1-484d-ac4c-b449dcc27278",
"name": "Governance Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1568,
1184
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "gpt-4o"
},
"options": {
"temperature": 0.1
},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "69fae70c-3b6d-4d6e-a071-22acc0b92e2b",
"name": "Governance Output",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1984,
1184
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"initiativeId\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"complianceScore\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"approvalStatus\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"approved\", \"pending\", \"rejected\"]\n\t\t},\n\t\t\"riskLevel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"low\", \"medium\", \"high\", \"critical\"]\n\t\t},\n\t\t\"regulatoryCompliance\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"requiredActions\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"approvalRationale\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"required\": [\"initiativeId\", \"complianceScore\", \"approvalStatus\", \"riskLevel\", \"regulatoryCompliance\", \"requiredActions\", \"approvalRationale\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "0d7c20e2-889f-42a6-8008-a768c45bfaf5",
"name": "Approval Request Tool",
"type": "n8n-nodes-base.slackHitlTool",
"position": [
1696,
1184
],
"parameters": {
"user": {
"__rl": true,
"mode": "list",
"value": ""
},
"message": "={{ $fromAI('approval_message', 'The approval request message to send to stakeholders') }}",
"options": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "8be09aa0-210b-4bdf-acf0-e151388b5d76",
"name": "Documentation Agent",
"type": "@n8n/n8n-nodes-langchain.agentTool",
"position": [
2160,
976
],
"parameters": {
"text": "={{ $fromAI('task', 'The sustainability data, analysis results, or approval outcomes to document') }}",
"options": {
"systemMessage": "You are the Documentation Agent specializing in ESG-aligned sustainability reporting. Generate comprehensive documentation including: 1) Executive summaries of circular economy initiatives, 2) Waste reduction metrics and impact analysis, 3) Compliance validation reports, 4) Stakeholder communications, 5) ESG performance documentation. Use the Google Docs tool to create formatted documents. Return structured output with: documentTitle, documentType (report/summary/communication), keyMetrics (object), recommendations (array), complianceStatus, and stakeholderMessage."
},
"hasOutputParser": true,
"toolDescription": "Generates ESG-aligned sustainability documentation, circular economy reports, compliance summaries, and stakeholder communications based on analysis and approval results"
},
"typeVersion": 3
},
{
"id": "b0edc08b-4846-47f2-b0eb-2680f54b2245",
"name": "Documentation Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2176,
1184
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "gpt-4o"
},
"options": {
"temperature": 0.3
},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "f9e0f15b-06d1-4e81-bbb9-05fc462af05b",
"name": "Documentation Output",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2416,
1184
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"documentTitle\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"documentType\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"report\", \"summary\", \"communication\"]\n\t\t},\n\t\t\"keyMetrics\": {\n\t\t\t\"type\": \"object\"\n\t\t},\n\t\t\"recommendations\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"complianceStatus\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"stakeholderMessage\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"required\": [\"documentTitle\", \"documentType\", \"keyMetrics\", \"recommendations\", \"complianceStatus\", \"stakeholderMessage\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "709cee3e-7c62-4521-8275-35eae2b2c73e",
"name": "Create ESG Document",
"type": "n8n-nodes-base.googleDocsTool",
"position": [
2288,
1184
],
"parameters": {
"title": "={{ $fromAI('document_title', 'The title for the ESG sustainability document') }}",
"folderId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__google_drive_folder_id__>"
},
"descriptionType": "manual",
"toolDescription": "Sends approval notification to Slack channel"
},
"typeVersion": 2
},
{
"id": "a97fc1f2-4038-44d9-b89d-2d82544a599a",
"name": "Route by Action",
"type": "n8n-nodes-base.switch",
"position": [
2608,
528
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.action }}",
"rightValue": "analyze"
}
]
}
},
{
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.action }}",
"rightValue": "approve"
}
]
}
},
{
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.action }}",
"rightValue": "document"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.4
},
{
"id": "ef70424c-ac83-4d6d-a415-74fa7aa199dc",
"name": "Prepare Lifecycle Data",
"type": "n8n-nodes-base.set",
"position": [
2832,
544
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "productId",
"type": "string",
"value": "={{ $json.output.summary }}"
},
{
"id": "id-2",
"name": "lifecycleStage",
"type": "string",
"value": "={{ $json.output.delegateTo }}"
},
{
"id": "id-3",
"name": "recyclingRate",
"type": "number",
"value": 0
},
{
"id": "id-4",
"name": "wasteReductionPotential",
"type": "number",
"value": 0
},
{
"id": "id-5",
"name": "recommendedStrategy",
"type": "string",
"value": "={{ $json.output.summary }}"
},
{
"id": "id-6",
"name": "complianceStatus",
"type": "string",
"value": "pending"
},
{
"id": "id-7",
"name": "timestamp",
"type": "string",
"value": "={{ $now.toISO() }}"
},
{
"id": "id-8",
"name": "priority",
"type": "string",
"value": "={{ $json.output.priority }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f4b25f18-d0ea-4ea7-9914-89495147c75e",
"name": "Track Lifecycle Analysis",
"type": "n8n-nodes-base.dataTable",
"position": [
3056,
544
],
"parameters": {
"columns": {
"value": null,
"mappingMode": "autoMapInputData"
},
"options": {},
"dataTableId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__lifecycle_analysis_table__>"
}
},
"typeVersion": 1.1
},
{
"id": "9f4b6dfc-bc15-4309-85e9-12b895c42612",
"name": "Prepare Governance Data",
"type": "n8n-nodes-base.set",
"position": [
2832,
736
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "initiativeId",
"type": "string",
"value": "={{ $json.output.summary }}"
},
{
"id": "id-2",
"name": "complianceScore",
"type": "number",
"value": 0
},
{
"id": "id-3",
"name": "approvalStatus",
"type": "string",
"value": "={{ $json.output.action }}"
},
{
"id": "id-4",
"name": "riskLevel",
"type": "string",
"value": "={{ $json.output.priority }}"
},
{
"id": "id-5",
"name": "regulatoryCompliance",
"type": "boolean",
"value": true
},
{
"id": "id-6",
"name": "approvalRationale",
"type": "string",
"value": "={{ $json.output.summary }}"
},
{
"id": "id-7",
"name": "timestamp",
"type": "string",
"value": "={{ $now.toISO() }}"
},
{
"id": "id-8",
"name": "delegatedTo",
"type": "string",
"value": "={{ $json.output.delegateTo }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d5a4723d-27cd-4f4e-a066-f6cc352b832b",
"name": "Track Governance Approvals",
"type": "n8n-nodes-base.dataTable",
"position": [
3056,
736
],
"parameters": {
"columns": {
"value": null,
"mappingMode": "autoMapInputData"
},
"options": {},
"dataTableId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__governance_approvals_table__>"
}
},
"typeVersion": 1.1
},
{
"id": "b004f1bd-28d9-46d1-b49d-f18f40c86e3f",
"name": "Prepare Documentation Data",
"type": "n8n-nodes-base.set",
"position": [
2832,
352
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "documentTitle",
"type": "string",
"value": "={{ $json.output.summary }}"
},
{
"id": "id-2",
"name": "documentType",
"type": "string",
"value": "={{ $json.output.action }}"
},
{
"id": "id-3",
"name": "complianceStatus",
"type": "string",
"value": "={{ $json.output.delegateTo }}"
},
{
"id": "id-4",
"name": "priority",
"type": "string",
"value": "={{ $json.output.priority }}"
},
{
"id": "id-5",
"name": "timestamp",
"type": "string",
"value": "={{ $now.toISO() }}"
},
{
"id": "id-6",
"name": "summary",
"type": "string",
"value": "={{ $json.output.summary }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "4409c356-2acf-4d8c-b6b7-296575fb33b0",
"name": "Track ESG Documentation",
"type": "n8n-nodes-base.dataTable",
"position": [
3056,
352
],
"parameters": {
"columns": {
"value": null,
"mappingMode": "autoMapInputData"
},
"options": {},
"dataTableId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__esg_documentation_table__>"
}
},
"typeVersion": 1.1
},
{
"id": "bf2ac576-6cda-4be7-af13-3aa25bf90daa",
"name": "Fetch External Sustainability Data",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
480,
304
],
"parameters": {
"url": "<__PLACEHOLDER_VALUE__sustainability_api_endpoint__>",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "date",
"value": "={{ $now.toFormat('yyyy-MM-dd') }}"
}
]
}
},
"typeVersion": 4.4
},
{
"id": "6d8bfe20-131c-4017-ba35-d9646a9544fc",
"name": "Combine All Results",
"type": "n8n-nodes-base.merge",
"position": [
3280,
512
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "6314294f-a9ef-449f-a7c5-5463650896ef",
"name": "Aggregate Metrics",
"type": "n8n-nodes-base.aggregate",
"position": [
3504,
528
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "acddde52-d8d6-4b1f-b6c2-df7ba7b48efd",
"name": "Send Summary Notification",
"type": "n8n-nodes-base.slack",
"position": [
3728,
448
],
"parameters": {
"text": "=\ud83c\udf0d Sustainability Workflow Summary\n\nTotal Items Processed: {{ $json.data.length }}\nTimestamp: {{ $now.toISO() }}\n\nCircular Economy Analysis, Governance Approvals, and ESG Documentation have been completed and tracked.\n\nView detailed metrics in the Data Tables.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__slack_channel_id__>"
},
"otherOptions": {
"includeLinkToWorkflow": false
},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "7fe6c8b4-67d7-42b3-9600-eeebd59bce26",
"name": "Send Stakeholder Report",
"type": "n8n-nodes-base.gmail",
"position": [
3728,
640
],
"parameters": {
"sendTo": "<__PLACEHOLDER_VALUE__stakeholder_email__>",
"message": "=<h2>Sustainability & Circular Economy Report</h2>\n<p>This report summarizes the latest circular economy initiatives, governance approvals, and ESG documentation activities.</p>\n<h3>Summary</h3>\n<p>Total items processed: {{ $json.data.length }}</p>\n<p>Timestamp: {{ $now.toISO() }}</p>\n<h3>Key Activities</h3>\n<ul>\n<li>Product lifecycle analysis and recycling rate monitoring</li>\n<li>Sustainability governance approvals and compliance validation</li>\n<li>ESG-aligned documentation generation</li>\n</ul>\n<p>For detailed metrics and analysis, please access the sustainability dashboard.</p>",
"options": {
"appendAttribution": false
},
"subject": "=Sustainability & Circular Economy Report - {{ $now.toFormat('yyyy-MM-dd') }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "42cb4e7f-da31-4499-bd0c-8f6765b9f553",
"name": "Send Approval Notification",
"type": "n8n-nodes-base.slackTool",
"position": [
1776,
1392
],
"parameters": {
"text": "={{ $fromAI('approval_message', 'The approval notification message') }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $fromAI('slack_channel', 'The Slack channel ID for approval notifications') }}"
},
"otherOptions": {},
"authentication": "oAuth2",
"descriptionType": "manual",
"toolDescription": "Sends approval notification to Slack channel"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "048c73b5-79f3-43c7-8393-7b37ba484ab8",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1616,
-144
],
"parameters": {
"color": 4,
"width": 672,
"height": 384,
"content": "## Prerequisites\n- OpenAI API key (or compatible LLM)\n- Slack workspace with bot credentials\n- Gmail account with OAuth credentials\n- Google Sheets with tracking tabs pre-created\n## Use Cases\n- Enterprises automating circular economy programme scoring across product lines\n## Customisation\n- Swap Circular Economy scoring thresholds to align with GRI, Ellen MacArthur, or regional frameworks\n## Benefits\n- Triple-source ingestion eliminates sustainability data blind spots"
},
"typeVersion": 1
},
{
"id": "def24e1e-98a3-49b1-b4c4-300fce972740",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1040,
-128
],
"parameters": {
"width": 464,
"height": 288,
"content": "## Setup Steps\n1. Import workflow; configure the lifecycle monitor trigger interval and external sustainability API endpoint URL.\n2. Add AI model credentials to the Sustainability Orchestrator and Documentation Agent.\n3. Connect Slack credentials to the Approval Request Tool and Send Summary Notification nodes.\n4. Link Gmail credentials to the Send Stakeholder Report node.\n5. Configure Google Sheets credentials; set sheet IDs for ESG Documentation, Lifecycle Analytics, and Governance.\n6. Set scoring thresholds in the Metrics Calculator node."
},
"typeVersion": 1
},
{
"id": "0dc5876b-abd5-4ca1-a92a-63d039a3aaa6",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
224,
-144
],
"parameters": {
"width": 768,
"height": 304,
"content": "## How It Works\nThis 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 coordinating fragmented sustainability inputs, scheduled monitoring, platform data feeds, and manual initiative submissions into a single governed, auditable reporting pipeline. Data enters from three sources: a lifecycle monitor, an external sustainability data API, and an initiative submission form. Inputs are merged and passed to a Sustainability Orchestrator with shared memory, which delegates to three specialist agents: a Circular Economy Agent (metrics calculation and circular output scoring), a Sustainability Governance Agent (governance evaluation and Slack-based approvals), and a Documentation Agent (ESG document creation). The orchestrator then routes actions for documentation tracking, lifecycle analytics, and governance approvals, before combining results, aggregating metrics, and sending a stakeholder report via Gmail and a summary notification via Slack."
},
"typeVersion": 1
},
{
"id": "23aa1d75-f576-4dab-ba5a-36d258962335",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2576,
176
],
"parameters": {
"color": 7,
"width": 624,
"height": 816,
"content": "## Route by Action\n**Why** \u2014 Rules-based routing directs outputs to documentation tracking, lifecycle analytics, or governance approval paths.\n"
},
"typeVersion": 1
},
{
"id": "f6055b18-c72c-4862-86e8-14fd4c71c548",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1168,
896
],
"parameters": {
"color": 7,
"width": 1424,
"height": 672,
"content": "## Governance Approval & ESG Documentation\n**Why** \u2014 Routes Slack-based approval requests and auto-generates ESG documents each cycle, eliminating manual oversight and authoring."
},
"typeVersion": 1
},
{
"id": "7c78e799-a591-4c51-84ca-3be972009d39",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
896,
416
],
"parameters": {
"color": 7,
"width": 848,
"height": 448,
"content": "## Sustainability Orchestrator & Specialist Agents\n**Why** \u2014 Central coordinator with shared memory delegates tasks to Circular Economy, Governance, and Documentation agents for parallel, context-aware processing."
},
"typeVersion": 1
},
{
"id": "260cede7-92d2-4d30-bdb2-d1442abbe297",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
192
],
"parameters": {
"color": 7,
"width": 704,
"height": 880,
"content": "## Data Ingestion & Normalisation\n**Why** \u2014 Triple-source ingestion (scheduled, API, form) merged into a unified record prevents data gaps and fragmentation before orchestration."
},
"typeVersion": 1
},
{
"id": "76c8d9fc-67e8-4222-a282-6ca91726a619",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
3216,
192
],
"parameters": {
"color": 7,
"width": 720,
"height": 736,
"content": "## Aggregate, Report & Notify\n**Why** \u2014 Consolidates multi-agent outputs into a metrics summary, then delivers Gmail reports and Slack notifications to stakeholders automatically."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"binaryMode": "separate",
"executionOrder": "v1"
},
"versionId": "70685529-c7f5-4722-bb77-662365e55655",
"connections": {
"Shared Memory": {
"ai_memory": [
[
{
"node": "Sustainability Orchestrator",
"type": "ai_memory",
"index": 0
}
]
]
},
"Route by Action": {
"main": [
[
{
"node": "Prepare Lifecycle Data",
"type": "main",
"index": 0
}
],
[
{
"node": "Prepare Governance Data",
"type": "main",
"index": 0
}
],
[
{
"node": "Prepare Documentation Data",
"type": "main",
"index": 0
}
]
]
},
"Governance Model": {
"ai_languageModel": [
[
{
"node": "Sustainability Governance Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Aggregate Metrics": {
"main": [
[
{
"node": "Send Summary Notification",
"type": "main",
"index": 0
},
{
"node": "Send Stakeholder Report",
"type": "main",
"index": 0
}
]
]
},
"Governance Output": {
"ai_outputParser": [
[
{
"node": "Sustainability Governance Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Metrics Calculator": {
"ai_tool": [
[
{
"node": "Circular Economy Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Orchestrator Model": {
"ai_languageModel": [
[
{
"node": "Sustainability Orchestrator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Combine All Results": {
"main": [
[
{
"node": "Aggregate Metrics",
"type": "main",
"index": 0
}
]
]
},
"Create ESG Document": {
"ai_tool": [
[
{
"node": "Documentation Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Documentation Agent": {
"ai_tool": [
[
{
"node": "Sustainability Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"Documentation Model": {
"ai_languageModel": [
[
{
"node": "Documentation Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Documentation Output": {
"ai_outputParser": [
[
{
"node": "Documentation Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Approval Request Tool": {
"ai_tool": [
[
{
"node": "Sustainability Governance Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Combine Input Sources": {
"main": [
[
{
"node": "Sustainability Orchestrator",
"type": "main",
"index": 0
}
]
]
},
"Circular Economy Agent": {
"ai_tool": [
[
{
"node": "Sustainability Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"Circular Economy Model": {
"ai_languageModel": [
[
{
"node": "Circular Economy Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Monitor Lifecycle Data": {
"main": [
[
{
"node": "Combine Input Sources",
"type": "main",
"index": 0
},
{
"node": "Fetch External Sustainability Data",
"type": "main",
"index": 0
}
]
]
},
"Prepare Lifecycle Data": {
"main": [
[
{
"node": "Track Lifecycle Analysis",
"type": "main",
"index": 0
}
]
]
},
"Circular Economy Output": {
"ai_outputParser": [
[
{
"node": "Circular Economy Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Prepare Governance Data": {
"main": [
[
{
"node": "Track Governance Approvals",
"type": "main",
"index": 0
}
]
]
},
"Track ESG Documentation": {
"main": [
[
{
"node": "Combine All Results",
"type": "main",
"index": 2
}
]
]
},
"Track Lifecycle Analysis": {
"main": [
[
{
"node": "Combine All Results",
"type": "main",
"index": 0
}
]
]
},
"Initiative Submission Form": {
"main": [
[
{
"node": "Combine Input Sources",
"type": "main",
"index": 2
}
]
]
},
"Orchestrator Output Parser": {
"ai_outputParser": [
[
{
"node": "Sustainability Orchestrator",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Prepare Documentation Data": {
"main": [
[
{
"node": "Track ESG Documentation",
"type": "main",
"index": 0
}
]
]
},
"Send Approval Notification": {
"ai_tool": [
[
{
"node": "Approval Request Tool",
"type": "ai_tool",
"index": 0
}
]
]
},
"Track Governance Approvals": {
"main": [
[
{
"node": "Combine All Results",
"type": "main",
"index": 1
}
]
]
},
"Receive Sustainability Data": {
"main": [
[
{
"node": "Combine Input Sources",
"type": "main",
"index": 1
}
]
]
},
"Sustainability Orchestrator": {
"main": [
[
{
"node": "Route by Action",
"type": "main",
"index": 0
}
]
]
},
"Sustainability Governance Agent": {
"ai_tool": [
[
{
"node": "Sustainability Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"Fetch External Sustainability Data": {
"main": [
[
{
"node": "Combine Input Sources",
"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.
gmailOAuth2openAiApislackOAuth2Api
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 sustainability lifecycle management for corporate sustainability teams, ESG governance officers, and circular economy programme leads. It addresses the challenge of coordinating fragmented sustainability inputs, scheduled monitoring, platform…
Source: https://n8n.io/workflows/14433/ — 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.
Created by: Peyton Leveillee Last updated: October 2025
This workflow was born out of a very real problem.
This n8n-powered workflow automates the entire lifecycle of real estate lead intake, qualification, routing, assignment, and reporting across multiple channels. It brings WhatsApp inquiries and websit
This workflow automates comprehensive real estate investment analysis by orchestrating specialized AI agents to evaluate property data, market trends, and financial metrics. Designed for real estate i
kisisel asistan. Uses toolWorkflow, toolHttpRequest, toolCalculator, toolThink. Scheduled trigger; 43 nodes.