{
  "name": "Automated website uptime monitor with email alerts & GitHub status page update",
  "nodes": [
    {
      "id": "24b40a8b-20b2-4ead-87a4-0be04641323a",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -3568,
        -80
      ]
    },
    {
      "id": "09c86eff-846d-43d1-a93f-f398f2223d67",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -3360,
        -80
      ]
    },
    {
      "id": "7c7791f1-9174-4a60-b6bd-80f32d220952",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3808,
        -480
      ],
      "parameters": {
        "width": 400,
        "height": 368,
        "content": "> **About 📝**\n- Runs automatically every **2 minutes**.\n- Acts as the \"heartbeat\" of the workflow.\n- You can change the interval to any value (e.g., seconds, minutes, hours, days).\n- Useful when you w"
      }
    },
    {
      "id": "99b08165-3c6c-4505-94e9-a23d7bdf606f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3344,
        160
      ],
      "parameters": {
        "width": 320,
        "height": 272,
        "content": "> **HTML Request & Switch 📝**\n- Pings the target website (ex:(`https://app.yourdomain.com/health`).\n- Returns the **status code** and full response.\n- If website responds with **200**, site is conside"
      }
    },
    {
      "id": "aad36f3c-6f6a-4c2a-9d9a-db60a08b54a7",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3312,
        -224
      ],
      "parameters": {
        "width": 294,
        "height": 80,
        "content": "Here, upload your Website URL. EX: (`https://app.yourdomain.cc/health`)"
      }
    },
    {
      "id": "b4d88251-7516-4f8d-998b-86aa4e62f201",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2720,
        -656
      ],
      "parameters": {
        "width": 288,
        "height": 256,
        "content": "> **Email 📝**\n- Sends an **email alert** if the site is down.\n- Recipient: `example@gmail.com` (replace with your email/team DL).\n- Subject: \"Server Down\".\n- Message: Pre-styled HTML alert page with e"
      }
    },
    {
      "id": "3c09250f-9f90-48fd-8a95-0c3d28ac3c90",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2608,
        -368
      ],
      "parameters": {
        "width": 214,
        "height": 80,
        "content": "Upload with your Email ID.\nEX:\nexamaple@gmail.com"
      }
    },
    {
      "id": "741d5e5b-88f1-4acb-8ed8-0527f3c9448f",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2160,
        192
      ],
      "parameters": {
        "width": 560,
        "height": 192,
        "content": "> **Extract from File(Github)📝**\n\n-Extract the file from the Github Repository if the status is same (Extracted Status = Github Status) then make no changes/ no commit into Github.\n-If both are no sam"
      }
    },
    {
      "id": "348d04d6-1b88-4cb6-80f2-93a136850a81",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2464,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 80,
        "content": "-Upload your GitHub Repository owner URL.\n-Upload your Repository Name.\n"
      }
    },
    {
      "id": "83ddb904-7e94-4d2d-8cbe-a02e832435a1",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2800,
        224
      ],
      "parameters": {
        "width": 384,
        "height": 368,
        "content": "> **Template HTML Code & GitHub 📝**\n- Dynamically creates the **status page HTML (index.html) from the existing template**.\n- Two modes:\n  - **Up** → Green status page with \"Server Up\".\n  - **Down** →"
      }
    },
    {
      "id": "d4f178ad-6597-4944-aa80-7335f26be23d",
      "name": "Update Index.html file",
      "type": "n8n-nodes-base.github",
      "position": [
        -1504,
        -16
      ]
    },
    {
      "id": "7d86a237-36e6-4ce8-95cf-19ab8a58581d",
      "name": "Send a notification mail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -2832,
        -384
      ]
    },
    {
      "id": "ba9b1eb6-6fcd-4ca8-b308-2b0daad7c299",
      "name": "Switch - status code",
      "type": "n8n-nodes-base.switch",
      "position": [
        -3152,
        -80
      ]
    },
    {
      "id": "ec136a3f-e79d-4480-8c19-893184458928",
      "name": "Extract from File - Generated HTML",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -2528,
        -16
      ]
    },
    {
      "id": "3e4c16f9-25f7-4944-958a-3f5c2a8651b9",
      "name": "Template HTML Code",
      "type": "n8n-nodes-base.code",
      "position": [
        -2720,
        -16
      ]
    },
    {
      "id": "4423f742-0144-4ffb-b28b-a6d108e3b5ca",
      "name": "Get existing index.html file",
      "type": "n8n-nodes-base.github",
      "position": [
        -2160,
        -16
      ]
    },
    {
      "id": "d9c2a2ee-5698-4a60-8ab9-1ff133d71505",
      "name": "Extract from existing File (github)",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -1968,
        -16
      ]
    },
    {
      "id": "e310e8e7-ad13-4f9e-a4b6-12f45d33a62a",
      "name": "If - Compare existing HTML file with generated HTML",
      "type": "n8n-nodes-base.if",
      "position": [
        -1776,
        -16
      ]
    },
    {
      "id": "0deafbe1-d715-45b0-9fe4-ea910a6d8f83",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4880,
        -496
      ],
      "parameters": {
        "width": 976,
        "height": 2416,
        "content": "# 🖥️ Automated Website Uptime Monitor with Email Alerts & GitHub Status Page Update  \n\nThis n8n workflow continuously monitors your website’s availability, sends **email alerts** when the server goes "
      }
    }
  ],
  "connections": {
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Switch - status code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Template HTML Code": {
      "main": [
        [
          {
            "node": "Extract from File - Generated HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch - status code": {
      "main": [
        [
          {
            "node": "Template HTML Code",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send a notification mail",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Template HTML Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get existing index.html file": {
      "main": [
        [
          {
            "node": "Extract from existing File (github)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File - Generated HTML": {
      "main": [
        [
          {
            "node": "Get existing index.html file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from existing File (github)": {
      "main": [
        [
          {
            "node": "If - Compare existing HTML file with generated HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If - Compare existing HTML file with generated HTML": {
      "main": [
        [
          {
            "node": "Update Index.html file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}