AutomationFlowsSlack & Telegram › Smart Iot Device Health Monitor with Scrapegraphai and Telegram

Smart Iot Device Health Monitor with Scrapegraphai and Telegram

Byvinci-king-01 @vinci-king-01 on n8n.io

IT operations and infrastructure teams IoT system administrators and engineers Facility and building management teams Manufacturing and industrial operations managers Smart city and public infrastructure coordinators Healthcare technology administrators Energy and utilities…

Cron / scheduled trigger★★★★☆ complexity13 nodesN8N Nodes ScrapegraphaiTelegram
Slack & Telegram Trigger: Cron / scheduled Nodes: 13 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #6930 — we link there as the canonical source.

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": "VhEwspDqzu7ssFVE",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "My workflow 2",
  "tags": [
    {
      "id": "DxXGubfBzRKh6L8T",
      "name": "Revenue Optimization",
      "createdAt": "2025-07-25T16:24:30.370Z",
      "updatedAt": "2025-07-25T16:24:30.370Z"
    },
    {
      "id": "IxkcJ2IpYIxivoHV",
      "name": "Content Strategy",
      "createdAt": "2025-07-25T12:57:37.677Z",
      "updatedAt": "2025-07-25T12:57:37.677Z"
    },
    {
      "id": "PAKIJ2Mm9EvRcR3u",
      "name": "Trend Monitoring",
      "createdAt": "2025-07-25T12:57:37.670Z",
      "updatedAt": "2025-07-25T12:57:37.670Z"
    },
    {
      "id": "YtfXmaZk44MYedPO",
      "name": "Dynamic Pricing",
      "createdAt": "2025-07-25T16:24:30.369Z",
      "updatedAt": "2025-07-25T16:24:30.369Z"
    },
    {
      "id": "wJ30mjhtrposO8Qt",
      "name": "Simple RAG",
      "createdAt": "2025-07-28T12:55:14.424Z",
      "updatedAt": "2025-07-28T12:55:14.424Z"
    }
  ],
  "nodes": [
    {
      "id": "ed780f44-e2dc-4cf2-876d-8e64b9b5349e",
      "name": "\ud83d\udccb Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        32
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 400,
        "content": "# Simple IoT Monitor \ud83c\udfed\n\n**What it does:**\n- Monitors IoT dashboard every 30 minutes\n- Extracts device data with AI\n- Sends alerts when issues found\n- Logs all activity\n\n**Setup:**\n1. Change dashboard URL\n2. Set Telegram chat ID\n3. Configure ScrapeGraphAI\n4. Run!\n\n**Features:**\n\u2705 Auto monitoring\n\u2705 Smart alerts\n\u2705 Device health check\n\u2705 Battery monitoring\n\u2705 Temperature alerts"
      },
      "typeVersion": 1
    },
    {
      "id": "bf257863-5d96-412b-8f2e-2b2040aeadd0",
      "name": "\u23f0 Timer Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        32
      ],
      "parameters": {
        "color": 5,
        "width": 250,
        "height": 652,
        "content": "# Step 1: Timer \u23f0\n\n**Runs every 30 minutes**\n\nChange cron expression:\n- Every 15 min: */15 * * * *\n- Every hour: 0 * * * *\n- Every 5 min: */5 * * * *\n\nTimezone aware and reliable."
      },
      "typeVersion": 1
    },
    {
      "id": "46b8fdca-2fc6-4dbe-9dbb-af6281ccfb7e",
      "name": "\u23f0 Timer",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        96,
        464
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "*/30 * * * *"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "c0662ec5-597b-437b-b022-ce20cbe47adc",
      "name": "\ud83e\udd16 Scraper Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        48
      ],
      "parameters": {
        "color": 6,
        "width": 250,
        "height": 636,
        "content": "# Step 2: Get Data \ud83e\udd16\n\n**AI extracts device info**\n\nReads any IoT dashboard:\n- Device status\n- Battery levels\n- Temperature\n- Connectivity\n\nNo API needed!"
      },
      "typeVersion": 1
    },
    {
      "id": "ade35d85-0de9-4b07-8e50-c335ba0d140f",
      "name": "\ud83e\udd16 Get Data",
      "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
      "position": [
        352,
        464
      ],
      "parameters": {
        "userPrompt": "Extract IoT device data as JSON:\n\n{\n  \"devices\": [\n    {\n      \"id\": \"device_id\",\n      \"name\": \"device_name\", \n      \"status\": \"online/offline/error\",\n      \"battery\": 85,\n      \"temperature\": 25\n    }\n  ],\n  \"summary\": {\n    \"total\": 10,\n    \"online\": 8,\n    \"offline\": 2\n  }\n}\n\nFocus on device health and status.",
        "websiteUrl": "https://your-iot-dashboard.com/devices"
      },
      "typeVersion": 1
    },
    {
      "id": "fa8f9347-c465-4633-bcb7-c0784ff61e45",
      "name": "\ud83d\udcca Analyzer Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        48
      ],
      "parameters": {
        "color": 2,
        "width": 250,
        "height": 636,
        "content": "# Step 3: Check Health \ud83d\udcca\n\n**Analyzes device data**\n\nCalculates:\n- Health score (0-100%)\n- Problem devices\n- Battery alerts\n- Temperature warnings\n\nSmart recommendations."
      },
      "typeVersion": 1
    },
    {
      "id": "9642ecf6-b826-4175-b0f4-ac6eaff243c2",
      "name": "\ud83d\udcca Analyze",
      "type": "n8n-nodes-base.code",
      "position": [
        608,
        480
      ],
      "parameters": {
        "jsCode": "const data = $input.all()[0].json;\n\n// Simple analysis\nlet result = {\n  timestamp: new Date().toISOString(),\n  total_devices: data.summary?.total || 0,\n  online_devices: data.summary?.online || 0,\n  offline_devices: data.summary?.offline || 0,\n  health_score: 100,\n  problems: [],\n  alerts: []\n};\n\n// Calculate health\nif (result.total_devices > 0) {\n  const onlineRate = result.online_devices / result.total_devices;\n  result.health_score = Math.round(onlineRate * 100);\n}\n\n// Check for problems\nif (data.devices) {\n  data.devices.forEach(device => {\n    if (device.status === 'offline') {\n      result.problems.push(`${device.name} is offline`);\n    }\n    if (device.battery && device.battery < 20) {\n      result.problems.push(`${device.name} low battery: ${device.battery}%`);\n    }\n    if (device.temperature && device.temperature > 70) {\n      result.problems.push(`${device.name} overheating: ${device.temperature}\u00b0C`);\n    }\n  });\n}\n\n// Generate alerts\nif (result.health_score < 80) {\n  result.alerts.push('System health below 80%');\n}\nif (result.offline_devices > 0) {\n  result.alerts.push(`${result.offline_devices} devices offline`);\n}\n\nconsole.log(`Health: ${result.health_score}%, Problems: ${result.problems.length}`);\n\nreturn [{ json: result }];"
      },
      "typeVersion": 2
    },
    {
      "id": "29ac2b96-7a55-406f-bf53-1f138870c991",
      "name": "\ud83d\udea8 Alert Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        48
      ],
      "parameters": {
        "color": 4,
        "width": 250,
        "height": 636,
        "content": "# Step 4: Send Alert \ud83d\udea8\n\n**Smart alerting**\n\nSends alert if:\n- Health score < 80%\n- Devices offline\n- Battery low\n- Temperature high\n\nPrevents spam."
      },
      "typeVersion": 1
    },
    {
      "id": "2e7280f1-cd14-41ec-b8ff-284a9f200ded",
      "name": "\ud83d\udea8 Need Alert?",
      "type": "n8n-nodes-base.if",
      "position": [
        880,
        432
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "health-check",
              "operator": {
                "type": "number",
                "operation": "lt"
              },
              "leftValue": "={{ $json.health_score }}",
              "rightValue": "80"
            },
            {
              "id": "problems-check",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $json.problems.length }}",
              "rightValue": "0"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "7e34bdb4-5b9c-4707-8eeb-68c7e55c10f0",
      "name": "\ud83d\udcf1 Telegram Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        -192
      ],
      "parameters": {
        "color": 8,
        "width": 250,
        "height": 508,
        "content": "# Step 5: Telegram \ud83d\udcf1\n\n**Send notification**\n\nReplace YOUR_CHAT_ID\nwith your actual chat ID.\n\nGet it from @userinfobot\n\nFormats message nicely\nwith emojis and details."
      },
      "typeVersion": 1
    },
    {
      "id": "ddc4e020-d964-46f1-b70b-503a48da9530",
      "name": "\ud83d\udcf1 Send Alert",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1120,
        176
      ],
      "parameters": {
        "operation": "post"
      },
      "typeVersion": 1.1
    },
    {
      "id": "9930efb4-ff89-4cd5-9389-6ddbc298c69c",
      "name": "\ud83d\udcdd Logger Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        320
      ],
      "parameters": {
        "width": 250,
        "height": 492,
        "content": "# Step 6: Log Data \ud83d\udcdd\n\n**Keep records**\n\nLogs every check:\n- Health scores\n- Device counts\n- Problems found\n- Timestamps\n\nFor tracking trends."
      },
      "typeVersion": 1
    },
    {
      "id": "e973db8d-88b4-4013-94c1-541b8129d198",
      "name": "\ud83d\udcdd Log Data",
      "type": "n8n-nodes-base.code",
      "position": [
        1104,
        672
      ],
      "parameters": {
        "jsCode": "const data = $input.all()[0].json;\n\n// Simple logging\nconst log = {\n  timestamp: data.timestamp,\n  health_score: data.health_score,\n  total_devices: data.total_devices,\n  online_devices: data.online_devices,\n  offline_devices: data.offline_devices,\n  problems_count: data.problems.length,\n  alert_sent: data.alerts.length > 0\n};\n\nconsole.log(`IoT Check: ${log.health_score}% health, ${log.problems_count} problems`);\n\n// Here you could save to database or file\n// Example: await database.logs.insert(log);\n\nreturn [{ json: log }];"
      },
      "typeVersion": 2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f101b0f6-2734-4074-ac91-959ea9b0d248",
  "connections": {
    "\u23f0 Timer": {
      "main": [
        [
          {
            "node": "\ud83e\udd16 Get Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcca Analyze": {
      "main": [
        [
          {
            "node": "\ud83d\udea8 Need Alert?",
            "type": "main",
            "index": 0
          },
          {
            "node": "\ud83d\udcdd Log Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udd16 Get Data": {
      "main": [
        [
          {
            "node": "\ud83d\udcca Analyze",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udea8 Need Alert?": {
      "main": [
        [
          {
            "node": "\ud83d\udcf1 Send Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

IT operations and infrastructure teams IoT system administrators and engineers Facility and building management teams Manufacturing and industrial operations managers Smart city and public infrastructure coordinators Healthcare technology administrators Energy and utilities…

Source: https://n8n.io/workflows/6930/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

This workflow automatically analyzes real estate market sentiment by scraping investment forums and news sources, then provides AI-powered market predictions and investment recommendations. Scheduled

N8N Nodes Scrapegraphai, Telegram
Slack & Telegram

This workflow automates the process of monitoring Amazon product prices and sending alerts when a product’s price drops below a defined threshold.

N8N Nodes Scrapegraphai, Google Sheets, Telegram
Slack & Telegram

Intellectual property lawyers and legal teams Brand protection specialists Content creators and publishers Marketing and brand managers Digital rights management teams Copyright enforcement agencies M

N8N Nodes Scrapegraphai, Telegram
Slack & Telegram

This workflow automatically scrapes real estate listings from Zillow and sends them to a Telegram channel. Scheduled Trigger - Runs the workflow at specified intervals to find new listings. AI-Powered

N8N Nodes Scrapegraphai, Telegram
Slack & Telegram

Solo founders and spreadsheet gremlins who track everything in Notion and want crisp Telegram pings without opening a single page.

Telegram, Notion