{
  "name": "Nodbot - n8n healthcheck for Beget Timeweb",
  "nodes": [
    {
      "parameters": {},
      "id": "3d729ab9-c46a-480d-b5aa-0336b95068f7",
      "name": "Schedule every 5 min",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 2,
      "position": [
        0,
        260
      ]
    },
    {
      "parameters": {},
      "id": "43ef68fe-8499-472e-bf9e-625827f9f524",
      "name": "Check n8n URL HTTP",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 2,
      "position": [
        280,
        260
      ]
    },
    {
      "parameters": {
        "jsCode": "const service = $json.service ?? 'n8n';\nconst status = Number($json.statusCode ?? $json.status ?? 0);\nconst latency = Number($json.latency_ms ?? $json.responseTime ?? 0);\nconst expected = Number($json.expected_status ?? 200);\nconst maxLatency = Number($json.max_latency_ms ?? 2500);\nconst sslDaysLeft = Number($json.ssl_days_left ?? 30);\n\nlet severity = 'ok';\nlet reason = 'service_available';\nif (status !== expected) { severity = 'critical'; reason = `unexpected_status_${status}`; }\nelse if (latency > maxLatency) { severity = 'warning'; reason = 'slow_response'; }\nelse if (sslDaysLeft < 7) { severity = 'critical'; reason = 'ssl_expires_soon'; }\nelse if (sslDaysLeft < 14) { severity = 'warning'; reason = 'ssl_renewal_window'; }\n\nreturn [{ json: {\n  service,\n  severity,\n  reason,\n  status,\n  latency_ms: latency,\n  ssl_days_left: sslDaysLeft,\n  dedupe_key: `healthcheck:${service}:${reason}`,\n  message: severity === 'ok'\n    ? `✅ ${service}: OK, ${latency} ms`\n    : `🚨 ${service}: ${reason}, status=${status}, latency=${latency} ms, ssl=${sslDaysLeft}d`,\n  checked_at: new Date().toISOString()\n}}];"
      },
      "id": "76a0e4ab-81a2-4d4d-a94a-9876faf4c84f",
      "name": "Classify health Code",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        560,
        260
      ]
    },
    {
      "parameters": {},
      "id": "3551384f-4961-4615-9911-fc4a7a640488",
      "name": "Send Telegram alert",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 2,
      "position": [
        840,
        260
      ]
    }
  ],
  "connections": {
    "Schedule every 5 min": {
      "main": [
        [
          {
            "node": "Check n8n URL HTTP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check n8n URL HTTP": {
      "main": [
        [
          {
            "node": "Classify health Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Classify health Code": {
      "main": [
        [
          {
            "node": "Send Telegram alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    "nodbot",
    "production",
    "template"
  ],
  "triggerCount": 1,
  "updatedAt": "2026-05-30T00:00:00.000Z",
  "versionId": "dda75a26-b6ea-4cd2-8b33-5183c8c99a88",
  "meta": {
    "templateCredsSetupCompleted": false
  }
}