AutomationFlowsAI & RAG › Monitor Grid Telemetry and Automate Compliance Alerts with Gpt-4o and Slack

Monitor Grid Telemetry and Automate Compliance Alerts with Gpt-4o and Slack

ByCheng Siong Chin @cschin on n8n.io

This workflow automates real-time energy grid telemetry ingestion, compliance validation, and multi-channel reporting for grid operators, energy managers, and compliance teams. Telemetry data arrives via webhook and is routed to a central Coordination Agent with persistent…

Webhook trigger★★★★☆ complexityAI-powered28 nodesAgentOpenAI ChatMemory Buffer WindowAgent ToolOutput Parser StructuredTool CodeData Table ToolSlack Tool
AI & RAG Trigger: Webhook Nodes: 28 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #13915 — 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": "sgly5qkMIUGLKoif",
  "name": "Intelligent energy grid telemetry monitoring and compliance reporting",
  "tags": [],
  "nodes": [
    {
      "id": "1f0754ad-5e58-44b4-be9f-0c87fac4f743",
      "name": "Grid Telemetry Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        256,
        496
      ],
      "parameters": {
        "path": "grid-telemetry",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "83695746-82b3-425c-b818-084acb5fbbfe",
      "name": "Coordination Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1056,
        512
      ],
      "parameters": {
        "text": "={{ $json.body }}",
        "options": {
          "systemMessage": "You are the Grid Coordination Agent. Your role is to orchestrate compliance monitoring, reporting, and operator notifications for electrical grid telemetry. You coordinate specialized sub-agents (Grid Signal Agent for validation, Compliance Agent for regulatory checks, Reporting Agent for documentation, Notification Agent for alerts) but NEVER issue control commands to the grid. Analyze incoming telemetry, delegate tasks to appropriate agents, and ensure operators receive timely compliance alerts and reports."
        },
        "promptType": "define"
      },
      "typeVersion": 3.1
    },
    {
      "id": "6f96b93e-46cb-4568-b6da-a635b885c1d0",
      "name": "Coordination Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        480,
        720
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.3
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "caababd6-e667-4838-95e2-54a7b09b39f5",
      "name": "Coordination Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        608,
        720
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "8d54e7ed-3c66-4aec-8c17-8a0b9558a12c",
      "name": "Grid Signal Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        736,
        720
      ],
      "parameters": {
        "text": "={{ $fromAI('telemetry_data', 'Raw telemetry data to validate') }}",
        "options": {
          "systemMessage": "You are the Grid Signal Agent. Validate incoming telemetry data for generation (MW output, frequency, voltage), load (consumption MW, power factor), and storage (charge level %, charge/discharge rate MW). Check for: data completeness, value ranges (generation 0-1000MW, load 0-800MW, storage 0-100%, frequency 59.5-60.5Hz), anomalies, and data quality. Return structured validation results."
        },
        "hasOutputParser": true,
        "toolDescription": "Validates and structures generation, load, and storage telemetry data. Returns validated metrics in structured JSON format with validation status, anomaly flags, and data quality scores."
      },
      "typeVersion": 3
    },
    {
      "id": "9774fd0f-714f-4a33-bd85-2195ec6b02ae",
      "name": "Grid Signal Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        544,
        928
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.1
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "3c39161e-a918-4586-a6d8-3c12e0908164",
      "name": "Telemetry Structure Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        896,
        928
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\"type\":\"object\",\"properties\":{\"validation_status\":{\"type\":\"string\",\"enum\":[\"valid\",\"warning\",\"critical\"]},\"generation\":{\"type\":\"object\",\"properties\":{\"output_mw\":{\"type\":\"number\"},\"frequency_hz\":{\"type\":\"number\"},\"voltage_kv\":{\"type\":\"number\"},\"quality_score\":{\"type\":\"number\"}}},\"load\":{\"type\":\"object\",\"properties\":{\"consumption_mw\":{\"type\":\"number\"},\"power_factor\":{\"type\":\"number\"},\"quality_score\":{\"type\":\"number\"}}},\"storage\":{\"type\":\"object\",\"properties\":{\"charge_percent\":{\"type\":\"number\"},\"charge_rate_mw\":{\"type\":\"number\"},\"quality_score\":{\"type\":\"number\"}}},\"anomalies\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"timestamp\":{\"type\":\"string\"}}}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "063154d9-e790-4590-9bf4-8a5233b07efe",
      "name": "Telemetry Validation Tool",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        704,
        928
      ],
      "parameters": {
        "jsCode": "const telemetry = $fromAI('query');\nconst issues = [];\n\n// Validate generation\nif (telemetry.generation) {\n  if (telemetry.generation.output_mw < 0 || telemetry.generation.output_mw > 1000) {\n    issues.push(\"Generation output out of range\");\n  }\n  if (telemetry.generation.frequency_hz < 59.5 || telemetry.generation.frequency_hz > 60.5) {\n    issues.push(\"Frequency deviation detected\");\n  }\n}\n\n// Validate load\nif (telemetry.load) {\n  if (telemetry.load.consumption_mw < 0 || telemetry.load.consumption_mw > 800) {\n    issues.push(\"Load consumption out of range\");\n  }\n}\n\n// Validate storage\nif (telemetry.storage) {\n  if (telemetry.storage.charge_percent < 0 || telemetry.storage.charge_percent > 100) {\n    issues.push(\"Storage charge level invalid\");\n  }\n}\n\nreturn JSON.stringify({ validation_issues: issues, is_valid: issues.length === 0 });",
        "description": "Validates telemetry values are within acceptable operational ranges and calculates quality scores"
      },
      "typeVersion": 1.3
    },
    {
      "id": "3dbb5895-3587-46a3-82b7-6e51ea309471",
      "name": "Compliance Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1024,
        720
      ],
      "parameters": {
        "text": "={{ $fromAI('validated_telemetry', 'Validated telemetry data to check for compliance') }}",
        "options": {
          "systemMessage": "You are the Compliance Agent. Analyze validated telemetry data against grid regulatory standards: frequency must stay within 59.95-60.05Hz (NERC BAL-001), voltage within \u00b15% nominal, generation-load balance within 1%, storage response time under 4 seconds. Check historical compliance data for patterns. Classify violations as: informational, warning, or critical. Return compliance assessment with violation details and recommended alert level."
        },
        "toolDescription": "Checks validated telemetry against regulatory compliance standards (NERC, FERC). Identifies violations, calculates compliance scores, and determines alert severity levels."
      },
      "typeVersion": 3
    },
    {
      "id": "ecd0b8e2-2afb-4938-877e-db108c3bdea8",
      "name": "Compliance Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1072,
        928
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.2
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "cb4e5ea4-a769-43d8-9d6f-41d396ff226a",
      "name": "Compliance History Tool",
      "type": "n8n-nodes-base.dataTableTool",
      "position": [
        1232,
        928
      ],
      "parameters": {
        "operation": "get",
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__compliance_alerts_table__>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "1245ea5c-38bd-4012-8fd4-75906f9abc57",
      "name": "Reporting Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1392,
        720
      ],
      "parameters": {
        "text": "={{ $fromAI('compliance_data', 'Compliance assessment data to include in the report') }}",
        "options": {
          "systemMessage": "You are the Reporting Agent. Generate comprehensive compliance reports for grid operators. Summarize: validated telemetry metrics (generation, load, storage), compliance status, any violations detected, severity levels, historical trends, and recommended actions. Format reports clearly with sections for executive summary, detailed findings, and recommendations. Focus on actionable insights."
        },
        "toolDescription": "Generates comprehensive compliance reports summarizing telemetry validation results, compliance status, violations, and trends for operator review."
      },
      "typeVersion": 3
    },
    {
      "id": "558209d6-3e5a-4aa2-8439-83c86e2419ea",
      "name": "Reporting Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1440,
        928
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "41e8ff02-be78-46be-9f91-280b51a463d2",
      "name": "Notification Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1664,
        720
      ],
      "parameters": {
        "text": "={{ $fromAI('alert_data', 'Alert and compliance data to notify operators about') }}",
        "options": {
          "systemMessage": "You are the Notification Agent. Determine the appropriate notification strategy for grid operators based on alert severity and compliance status. For CRITICAL alerts (frequency violations, major compliance breaches): send immediate Slack notifications to #grid-ops-critical. For WARNING alerts: send Slack to #grid-ops-alerts. For INFORMATIONAL: include in daily email reports only. Craft clear, actionable notification messages with severity, issue description, affected systems, and timestamp. Never suggest control actions."
        },
        "toolDescription": "Determines notification strategy based on alert severity and compliance status. Sends real-time Slack alerts for critical issues and coordinates email notifications for reports."
      },
      "typeVersion": 3
    },
    {
      "id": "4e103ff9-0ab5-43b0-b23a-0703a959172d",
      "name": "Notification Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1664,
        928
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o"
        },
        "options": {
          "temperature": 0.3
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "094ffd8d-6227-41e1-9e99-8fd9e2bc9ff5",
      "name": "Slack Notification Tool",
      "type": "n8n-nodes-base.slackTool",
      "position": [
        1824,
        928
      ],
      "parameters": {
        "text": "={{ $fromAI('message', 'Alert message to send to operators') }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $fromAI('channel', 'Slack channel ID for the alert', 'string', '#grid-ops-alerts') }}"
        },
        "otherOptions": {},
        "authentication": "oAuth2",
        "descriptionType": "manual",
        "toolDescription": "Sends real-time alerts to Slack channels based on severity level"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "f2540f66-f949-4cbe-8ce8-277a660e2644",
      "name": "Prepare Telemetry Storage",
      "type": "n8n-nodes-base.set",
      "position": [
        2048,
        656
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "id-2",
              "name": "validation_status",
              "type": "string",
              "value": "={{ $json.output.validation_status }}"
            },
            {
              "id": "id-3",
              "name": "generation_output_mw",
              "type": "number",
              "value": "={{ $json.output.generation.output_mw }}"
            },
            {
              "id": "id-4",
              "name": "generation_frequency_hz",
              "type": "number",
              "value": "={{ $json.output.generation.frequency_hz }}"
            },
            {
              "id": "id-5",
              "name": "load_consumption_mw",
              "type": "number",
              "value": "={{ $json.output.load.consumption_mw }}"
            },
            {
              "id": "id-6",
              "name": "storage_charge_percent",
              "type": "number",
              "value": "={{ $json.output.storage.charge_percent }}"
            },
            {
              "id": "id-7",
              "name": "anomalies",
              "type": "string",
              "value": "={{ $json.output.anomalies.join(', ') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "61ec9e9a-fe2c-44ce-98b7-557cfbbd022d",
      "name": "Store Validated Telemetry",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        2272,
        464
      ],
      "parameters": {
        "columns": {
          "value": null,
          "mappingMode": "autoMapInputData"
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__validated_telemetry_table__>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "4351eb1e-23e7-4f8d-af21-ec9350887011",
      "name": "Prepare Compliance Alerts",
      "type": "n8n-nodes-base.set",
      "position": [
        2272,
        656
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "id-2",
              "name": "alert_severity",
              "type": "string",
              "value": "={{ $json.output.validation_status }}"
            },
            {
              "id": "id-3",
              "name": "alert_type",
              "type": "string",
              "value": "compliance_check"
            },
            {
              "id": "id-4",
              "name": "description",
              "type": "string",
              "value": "={{ $json.output.anomalies.join('; ') }}"
            },
            {
              "id": "id-5",
              "name": "generation_mw",
              "type": "number",
              "value": "={{ $json.output.generation.output_mw }}"
            },
            {
              "id": "id-6",
              "name": "frequency_hz",
              "type": "number",
              "value": "={{ $json.output.generation.frequency_hz }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6e1b1d11-1d23-4b90-8d9b-4781b87a4874",
      "name": "Store Compliance Alerts",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        2496,
        656
      ],
      "parameters": {
        "columns": {
          "value": null,
          "mappingMode": "autoMapInputData"
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__compliance_alerts_table__>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "c68df617-b6f9-41ad-b608-f7503fa85429",
      "name": "Send Report Email",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        2272,
        848
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "options": {},
        "subject": "=Grid Compliance Report - {{ $now.format('yyyy-MM-dd HH:mm') }}",
        "toEmail": "<__PLACEHOLDER_VALUE__operator_email__>",
        "fromEmail": "<__PLACEHOLDER_VALUE__sender_email__>",
        "emailFormat": "text"
      },
      "typeVersion": 2.1
    },
    {
      "id": "bc3f3106-78ab-4acc-b7a1-86010b760374",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        -128
      ],
      "parameters": {
        "color": 4,
        "width": 496,
        "height": 432,
        "content": "## Prerequisites\n- Slack workspace and bot token\n- Email account (SMTP or Gmail OAuth2)\n- Database or Google Sheets for telemetry and alert storage\n## Use Cases\n- Real-time anomaly detection and alerting across smart grid sensor networks\n- Automated regulatory compliance reporting for energy grid operators\n## Customisation\n- Extend Compliance Agent thresholds to match regional grid standards \n- Replace Slack with Teams or PagerDuty for incident escalation\n## Benefits\n- Eliminates manual telemetry review \u2014 processes grid events at machine speed"
      },
      "typeVersion": 1
    },
    {
      "id": "a41050a4-ab6d-4939-a497-c06883bd51c3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        48
      ],
      "parameters": {
        "width": 352,
        "height": 272,
        "content": "## Setup Steps\n1. Configure webhook URL in **Grid Telemetry Webhook** node.\n2. Set AI model credentials (OpenAI/Anthropic) in all agent and model nodes.\n3. Connect Slack credentials and target channel to **Slack Notification Tool** node.\n4. Configure email credentials in **Send Report Email** node.\n5. Connect database/Google Sheets credentials."
      },
      "typeVersion": 1
    },
    {
      "id": "dd5263db-509a-4467-8156-861a8607938e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        0
      ],
      "parameters": {
        "width": 496,
        "height": 336,
        "content": "## How It Works\nThis workflow automates real-time energy grid telemetry ingestion, compliance validation, and multi-channel reporting for grid operators, energy managers, and compliance teams. Telemetry data arrives via webhook and is routed to a central Coordination Agent with persistent memory. Four specialised AI sub-agents operate in parallel: Grid Signal Agent (validates signals via Telemetry Validation Tool and parses structure), Compliance Agent (checks against compliance history), Reporting Agent (generates structured reports), and Notification Agent (triggers Slack alerts). Results flow into a Prepare Telemetry Storage node, then branch into three outputs, validated telemetry stored to a grid database, compliance alerts prepared and stored, and email reports dispatched. This eliminates manual grid monitoring, accelerates anomaly response, and maintains a continuous compliance audit trail across energy infrastructure."
      },
      "typeVersion": 1
    },
    {
      "id": "7c5ea94f-f748-4e9e-8d17-0a29a454a116",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1392,
        352
      ],
      "parameters": {
        "color": 7,
        "width": 592,
        "height": 752,
        "content": "## Reporting & Notification\n**What** \u2014 Reporting Agent generates summaries; Notification Agent triggers Slack alerts.\n**Why** \u2014 Delivers actionable intelligence instantly to the right teams."
      },
      "typeVersion": 1
    },
    {
      "id": "5ce31105-6782-4f7b-85f0-8384b97d4382",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1024,
        368
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 672,
        "content": "## Compliance Check\n**What** \u2014 Compliance Agent cross-references telemetry against compliance history.\n**Why** \u2014 Detects violations in real time without manual policy review."
      },
      "typeVersion": 1
    },
    {
      "id": "168bfc83-4976-4701-ae63-e07436d5a816",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        368
      ],
      "parameters": {
        "color": 7,
        "width": 832,
        "height": 736,
        "content": "\n## Signal Validation & Parsing\n**What** \u2014 Grid Signal Agent validates telemetry and parses structure via dedicated tools.\n**Why** \u2014 Ensures only clean, correctly structured data proceeds to analysis."
      },
      "typeVersion": 1
    },
    {
      "id": "ba09a044-e321-4bce-95f7-e8c036b89bfe",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2016,
        352
      ],
      "parameters": {
        "color": 7,
        "width": 656,
        "height": 768,
        "content": "## Store & Distribute\n**What** \u2014 Stores validated telemetry, compliance alerts, and sends report emails.\n**Why** \u2014 Creates persistent records for audit trails and regulatory reporting."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "29f67609-8a58-4158-8ee2-23afeb450503",
  "connections": {
    "Reporting Agent": {
      "ai_tool": [
        [
          {
            "node": "Coordination Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Reporting Model": {
      "ai_languageModel": [
        [
          {
            "node": "Reporting Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Compliance Agent": {
      "ai_tool": [
        [
          {
            "node": "Coordination Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Compliance Model": {
      "ai_languageModel": [
        [
          {
            "node": "Compliance Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Grid Signal Agent": {
      "ai_tool": [
        [
          {
            "node": "Coordination Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Grid Signal Model": {
      "ai_languageModel": [
        [
          {
            "node": "Grid Signal Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Coordination Agent": {
      "main": [
        [
          {
            "node": "Prepare Telemetry Storage",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Coordination Model": {
      "ai_languageModel": [
        [
          {
            "node": "Coordination Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Notification Agent": {
      "ai_tool": [
        [
          {
            "node": "Coordination Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Notification Model": {
      "ai_languageModel": [
        [
          {
            "node": "Notification Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Coordination Memory": {
      "ai_memory": [
        [
          {
            "node": "Coordination Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Grid Telemetry Webhook": {
      "main": [
        [
          {
            "node": "Coordination Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compliance History Tool": {
      "ai_tool": [
        [
          {
            "node": "Compliance Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Slack Notification Tool": {
      "ai_tool": [
        [
          {
            "node": "Notification Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Compliance Alerts": {
      "main": [
        [
          {
            "node": "Store Compliance Alerts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Telemetry Storage": {
      "main": [
        [
          {
            "node": "Store Validated Telemetry",
            "type": "main",
            "index": 0
          },
          {
            "node": "Prepare Compliance Alerts",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Report Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telemetry Validation Tool": {
      "ai_tool": [
        [
          {
            "node": "Grid Signal Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Telemetry Structure Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Grid Signal Agent",
            "type": "ai_outputParser",
            "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 real-time energy grid telemetry ingestion, compliance validation, and multi-channel reporting for grid operators, energy managers, and compliance teams. Telemetry data arrives via webhook and is routed to a central Coordination Agent with persistent…

Source: https://n8n.io/workflows/13915/ — 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 enterprise compliance governance using a multi-agent AI architecture. It targets compliance officers, legal teams, and risk managers who need continuous, jurisdiction-aware mon

Agent, OpenAI Chat, Memory Buffer Window +8
AI & RAG

This workflow automates end-to-end AI-driven content moderation for platforms managing user-generated content, including marketplaces, communities, and enterprise systems. It is designed for product,

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

This workflow automates credit operations onboarding by running KYC verification, credit bureau checks, identity validation, and sanctions screening through a single AI-powered agent. Built for credit

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

This workflow automates credit operations onboarding by running KYC verification, credit bureau checks, identity validation, and sanctions screening through a single AI-powered agent. Built for credit

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

This workflow automates intelligent fleet operations management for transport operators, logistics companies, and smart mobility teams. It solves the problem of manually triaging high-volume vehicle t

Agent, OpenAI Chat, Output Parser Structured +7