{
  "name": "Monitor regulatory updates with ScrapeGraphAI and send alerts via Telegram",
  "nodes": [
    {
      "id": "b27fe227-cf59-4449-ab53-3e3d2f2171f9",
      "name": "Start Workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        608,
        400
      ]
    },
    {
      "id": "bc36271b-f3b8-4c96-86f6-e3b60279e098",
      "name": "Define Sources",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        400
      ]
    },
    {
      "id": "46684705-ff32-4765-9e4b-8337153c7052",
      "name": "Split Sources",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1008,
        400
      ]
    },
    {
      "id": "a724832a-25cd-4b60-8019-d7fbbe425966",
      "name": "Scrape Regulatory Data",
      "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
      "position": [
        1232,
        400
      ]
    },
    {
      "id": "b65f46e9-ff75-4163-9ff4-bc8e82cc8ca1",
      "name": "Merge Results",
      "type": "n8n-nodes-base.merge",
      "position": [
        1456,
        400
      ]
    },
    {
      "id": "04f30659-7a51-49fc-abfe-b72d961355ae",
      "name": "Format & Deduplicate",
      "type": "n8n-nodes-base.code",
      "position": [
        1744,
        400
      ]
    },
    {
      "id": "0f55bce8-2288-4565-a199-635232665f3c",
      "name": "New Important Update?",
      "type": "n8n-nodes-base.if",
      "position": [
        1920,
        400
      ]
    },
    {
      "id": "601eaecd-bbd7-4b54-ae54-867da7bd8d37",
      "name": "Prepare Telegram Message",
      "type": "n8n-nodes-base.set",
      "position": [
        2256,
        320
      ]
    },
    {
      "id": "2b2eb5b6-bdb4-4c02-a4fd-a8280494b333",
      "name": "Send Telegram Alert",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2448,
        336
      ]
    },
    {
      "id": "dc3f2aa2-e94a-4a88-994b-bb842fbf3355",
      "name": "Save to Redis",
      "type": "n8n-nodes-base.redis",
      "position": [
        2288,
        528
      ]
    },
    {
      "id": "268b1249-b6ef-4bfe-8156-a7780ab4a72c",
      "name": "Error Handler",
      "type": "n8n-nodes-base.code",
      "position": [
        1440,
        576
      ]
    },
    {
      "id": "d4a94949-a6d1-4a5a-a520-41cb7a723409",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        0
      ],
      "parameters": {
        "width": 550,
        "height": 770,
        "content": "## How it works\n\nThis workflow lets compliance analysts manually launch a daily sweep across several official regulatory news feeds. When you click ‘Execute’, a Code node produces a list of URLs for t"
      }
    },
    {
      "id": "05d24e6b-a802-4f0f-90e1-5920f27edb76",
      "name": "Section – Source & Split",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        656,
        -48
      ],
      "parameters": {
        "width": 482,
        "height": 766,
        "content": "## Source & Split\n\nThis section contains the Manual Trigger, **Define Sources** Code node and **Split Sources** node. The trigger is kept manual to simplify testing; you can connect a Schedule Trigger"
      }
    },
    {
      "id": "45fadc37-9525-4cd5-89df-16b33b7ed8c6",
      "name": "Section – Scraping Layer",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1168,
        -112
      ],
      "parameters": {
        "width": 450,
        "height": 862,
        "content": "## Scraping Layer\n\nThe **Scrape Regulatory Data** node is the heart of the workflow. For every incoming URL it calls ScrapeGraphAI with a concise yet specific prompt instructing the model to extract h"
      }
    },
    {
      "id": "812b7b2d-5a21-46f6-8112-fb905ef1024d",
      "name": "Section – Aggregation & Processing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1712,
        -128
      ],
      "parameters": {
        "width": 450,
        "height": 782,
        "content": "## Aggregation & Processing\n\nOnce each source has finished scraping, their results converge in the **Merge Results** node which waits until all input streams arrive. This guarantees that downstream lo"
      }
    },
    {
      "id": "27d627c3-8dc3-469a-b2c8-fb44cf28c5a9",
      "name": "Section – Storage & Alerts",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2176,
        -112
      ],
      "parameters": {
        "width": 450,
        "height": 782,
        "content": "## Storage & Alerts\n\nThe last cluster includes **Save to Redis**, **Prepare Telegram Message** and **Send Telegram Alert**. Redis is chosen because it is lightning fast and well-suited for simple key-"
      }
    }
  ],
  "connections": {
    "Merge Results": {
      "main": [
        [
          {
            "node": "Format & Deduplicate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Sources": {
      "main": [
        [
          {
            "node": "Scrape Regulatory Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Define Sources": {
      "main": [
        [
          {
            "node": "Split Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start Workflow": {
      "main": [
        [
          {
            "node": "Define Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format & Deduplicate": {
      "main": [
        [
          {
            "node": "New Important Update?",
            "type": "main",
            "index": 0
          },
          {
            "node": "Save to Redis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "New Important Update?": {
      "main": [
        [
          {
            "node": "Prepare Telegram Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Regulatory Data": {
      "main": [
        [
          {
            "node": "Merge Results",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge Results",
            "type": "main",
            "index": 1
          },
          {
            "node": "Error Handler",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Telegram Message": {
      "main": [
        [
          {
            "node": "Send Telegram Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}