AutomationFlowsWeb Scraping › N8n Heartbeat

N8n Heartbeat

n8n_Heartbeat. Uses httpRequest, errorTrigger. Scheduled trigger; 5 nodes.

Cron / scheduled trigger★★☆☆☆ complexity5 nodesHTTP RequestError Trigger
Web Scraping Trigger: Cron / scheduled Nodes: 5 Complexity: ★★☆☆☆ Added:

This workflow follows the Error Trigger → 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
{
  "name": "n8n_Heartbeat",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 15
            }
          ]
        }
      },
      "id": "schedule-heartbeat",
      "name": "\u23f0 \u041f\u0443\u043b\u044c\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u043a\u0430\u0436\u0434\u044b\u0435 15 \u043c\u0438\u043d)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "operation": "upsert",
        "schema": "public",
        "table": "automation_flows",
        "dataMode": "manual",
        "manualConfigData": {
          "columns": [
            {
              "column": "project_id",
              "value": "64c94e87-630c-470e-8ab1-8f7c8c835efa"
            },
            {
              "column": "name",
              "value": "\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 (Core)"
            },
            {
              "column": "status",
              "value": "active"
            },
            {
              "column": "last_run",
              "value": "={{ $now }}"
            }
          ]
        },
        "options": {
          "upsertKey": "name",
          "upsertConflictColumns": [
            "project_id",
            "name"
          ]
        }
      },
      "id": "supabase-heartbeat",
      "name": "\ud83d\udcbe \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 (Core)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        460,
        300
      ],
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "values": {
          "boolean": [
            {
              "name": "success",
              "value": true
            }
          ],
          "string": [
            {
              "name": "message",
              "value": "\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e"
            },
            {
              "name": "timestamp",
              "value": "={{ $now.format('DD.MM.YYYY HH:mm:ss') }}"
            }
          ]
        },
        "options": {}
      },
      "id": "set-success",
      "name": "\u2705 \u0421\u0438\u0441\u0442\u0435\u043c\u0430 OK",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.2,
      "position": [
        680,
        300
      ]
    },
    {
      "parameters": {
        "errorMessage": "={{ $json.error || '\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b' }}",
        "options": {}
      },
      "id": "error-trigger",
      "name": "\u274c \u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b",
      "type": "n8n-nodes-base.errorTrigger",
      "typeVersion": 1,
      "position": [
        240,
        500
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "schema": "public",
        "table": "automation_flows",
        "updateKey": "name",
        "updateKeyValue": "\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 (Core)",
        "dataMode": "manual",
        "manualConfigData": {
          "columns": [
            {
              "column": "status",
              "value": "error"
            },
            {
              "column": "last_run",
              "value": "={{ $now }}"
            }
          ]
        }
      },
      "id": "supabase-error-log",
      "name": "\ud83d\udcbe \u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0438",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        460,
        500
      ],
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "\u23f0 \u041f\u0443\u043b\u044c\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u043a\u0430\u0436\u0434\u044b\u0435 15 \u043c\u0438\u043d)": {
      "main": [
        [
          {
            "node": "\ud83d\udcbe \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 (Core)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcbe \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 (Core)": {
      "main": [
        [
          {
            "node": "\u2705 \u0421\u0438\u0441\u0442\u0435\u043c\u0430 OK",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u274c \u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b": {
      "main": [
        [
          {
            "node": "\ud83d\udcbe \u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0438",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "versionId": "1"
}

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

n8n_Heartbeat. Uses httpRequest, errorTrigger. Scheduled trigger; 5 nodes.

Source: https://github.com/markvision-ai/markvision/blob/9b0d933e890beb6469b781fd459054faf804302b/n8n-workflows/N8N_HEARTBEAT.json — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

PRIMA - Automatisation Prospection Sophie (nettoyé). Uses httpRequest, errorTrigger, emailSend. Scheduled trigger; 20 nodes.

HTTP Request, Error Trigger, Email Send
Web Scraping

WB-07: SLA Breach Escalation (Every 2h). Uses httpRequest, errorTrigger. Scheduled trigger; 8 nodes.

HTTP Request, Error Trigger
Web Scraping

WB-08: Daily Report (9 AM IST). Uses httpRequest, errorTrigger. Scheduled trigger; 8 nodes.

HTTP Request, Error Trigger
Web Scraping

Error. Uses errorTrigger, httpRequest. Event-driven trigger; 9 nodes.

Error Trigger, HTTP Request
Web Scraping

Golden Sample: webhook → http → transform → respond (+error path). Uses httpRequest, errorTrigger, emailSend. Webhook trigger; 7 nodes.

HTTP Request, Error Trigger, Email Send