AutomationFlowsSlack & Telegram › Health Check Websites with Google Sheets & Telegram Alerts

Health Check Websites with Google Sheets & Telegram Alerts

ByHugues Stock @hpstock on n8n.io

This workflow performs scheduled health checks on a list of URLs stored in a Google Sheet. Every X minutes, it retrieves the URLs, sends HTTP requests to check their availability, and notifies a Telegram chat if any request fails.

Cron / scheduled trigger★★☆☆☆ complexity7 nodesTelegramGoogle SheetsHTTP Request
Slack & Telegram Trigger: Cron / scheduled Nodes: 7 Complexity: ★★☆☆☆ Added:

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

This workflow follows the Google Sheets → HTTP Request 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": "wng5xcxlYA6jFS6n",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "MAIA - Health Check",
  "tags": [],
  "nodes": [
    {
      "id": "10335465-853d-47ea-aad7-34460c741b74",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        860,
        -20
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ea7771ba-3d35-423a-9813-2a65448a15fc",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        860,
        160
      ],
      "parameters": {
        "text": "=Health Check :  {{ $json.URLS }}\n\n{{ $json.error.code }}",
        "chatId": "123456789",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "bae03dc7-e35b-4760-8de8-151d2d97391b",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a53fba9c-0f7e-4757-8bcd-e3622845e804",
      "name": "Fetch Urls",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        220,
        0
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/17-tY9_wn-D2FV627Sx3-Z3abqFYvz794edej7es5J6w/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "17-tY9_wn-D2FV627Sx3-Z3abqFYvz794edej7es5J6w"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "c96a2070-953b-4a03-a308-dae92d841851",
      "name": "Check URL",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        520,
        0
      ],
      "parameters": {
        "url": "={{ $json.URLS }}",
        "options": {}
      },
      "typeVersion": 4.2,
      "alwaysOutputData": false
    },
    {
      "id": "4fe54bbe-32ef-41d2-94f8-2a7d4ec175b6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -220
      ],
      "parameters": {
        "content": "## Step 1\nCreate a new google sheet where A1 is a title, and then list in column A all the urls you want to check."
      },
      "typeVersion": 1
    },
    {
      "id": "96f8b3bb-d3e1-415a-a849-84b1d524acb5",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        320
      ],
      "parameters": {
        "content": "## Step 2\nTo use telegram, simply define chatid.\n\nYou can replace with any type of notification like slack, etc..."
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "704c7308-7759-4f31-ab94-c2c53e3c5ed7",
  "connections": {
    "Check URL": {
      "main": [
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Urls": {
      "main": [
        [
          {
            "node": "Check URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Fetch Urls",
            "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 performs scheduled health checks on a list of URLs stored in a Google Sheet. Every X minutes, it retrieves the URLs, sends HTTP requests to check their availability, and notifies a Telegram chat if any request fails.

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

⚠️ Heads up: this is satire. The "Hell Yeah!" workflow is a parody of "automate your whole life with AI agents" grindset content. The API endpoints are fictional and the function nodes are illustrativ

HTTP Request, Salesforce, Telegram +4
Slack & Telegram

This workflow continuously monitors the Meta Ads Library for new creatives from a specific competitor pages, logs them into Google Sheets, and sends a concise Telegram notification with the number of

HTTP Request, Telegram, Google Sheets +1
Slack & Telegram

&gt; n8n, Binance API, Google Sheets, Slack, Telegram, Jira & Email

HTTP Request, Google Sheets, Slack +3
Slack & Telegram

This workflow is ideal for marketers, product managers, competitive intelligence teams, and anyone who needs to track changes on web pages — whether it's competitor pricing, job postings, policy updat

HTTP Request, Google Sheets, Telegram +1
Slack & Telegram

This workflow is perfect for job seekers, recruiters, freelancers, and anyone actively monitoring job boards who wants to automate their search — getting instant Telegram alerts for new matching jobs

HTTP Request, Google Sheets, Telegram