Workflow: Schedule HTTP Monitor

Workflow Details

Download Workflow
{
    "id": "pcLi17oUJK9pSaee",
    "meta": {
        "instanceId": "10ac0d272b984a3e01d44645b4be41105d42352c9db9f4c0c7f5be7946b87d41",
        "templateCredsSetupCompleted": true
    },
    "name": "Web Server Monitor.",
    "tags": [],
    "nodes": [
        {
            "id": "014e1202-3822-4d3f-817e-31f64c8bd5f5",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -680,
                -440
            ],
            "parameters": {
                "width": 560,
                "height": 540,
                "content": "\ud83d\udcd8 Node Descriptions for Your Web Server Monitor Workflow\n\n\u23f0 1. Schedule Trigger  \nTriggers the workflow every minute to initiate regular checks on server availability.\n\n\ud83d\udcc4 2. Web Servers List (Google Sheets)  \nFetches a list of server hostnames or IP addresses from a Google Sheet.  \nEach row is treated as one server. This makes server management easy \u2014 no need to edit the workflow to add\/remove servers.\n\n\ud83c\udf10 3. Server Alive Check (HTTP) \nSends an HTTP GET request to each server (e.g., http:\/\/your-server.com).  \nIf the request fails, the error path is triggered.  \n\n\ud83d\udcdd 4. Web Server Alive Log (Google Sheets)  \nLogs successful server checks into a separate Sheet with a timestamp.\nThis log helps track uptime history, verify server health, and generate availability reports.\n\n\ud83d\udea8\ud83d\udce7 5. Server Down Notification (Gmail)  \nSends an alert email if a server does not respond or returns an error.  \nIncludes the server address and the timestamp of failure.\n\n\ud83d\udcdd 6. Web Server Down Log (Google Sheets)\nLogs the failed server checks into another Sheet with a timestamp.  \nUseful for uptime reporting, debugging, and audit tracking.\n"
            },
            "typeVersion": 1
        },
        {
            "id": "94a3454c-69bd-4a5d-b169-8f3772a41321",
            "name": "Schedule Trigger",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                0,
                0
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        {
                            "field": "minutes",
                            "minutesInterval": 1
                        }
                    ]
                }
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "id": "f92fcadf-0b13-42ac-abed-aaf169d0ed76",
            "name": "Server-Monitor",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                220,
                0
            ],
            "parameters": {
                "options": [],
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": 524060827,
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ\/edit#gid=524060827",
                    "cachedResultName": "Server_List"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ\/edit?usp=drivesdk",
                    "cachedResultName": "Server-Monitor"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "8cXGgTelVK5DewVr",
                    "name": "Google Sheets account"
                }
            },
            "typeVersion": 4.5
        },
        {
            "id": "c168a1f9-1f3f-40b8-95d0-51f6259d8096",
            "name": "HTTP Request",
            "type": "n8n-nodes-base.httpRequest",
            "onError": "continueErrorOutput",
            "position": [
                440,
                0
            ],
            "parameters": {
                "url": "=http:\/\/{{ $json.Server }}",
                "options": []
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "0ac82373-6958-4de9-8cf7-94b0005197ff",
            "name": "Server_Status_Alive",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                660,
                -180
            ],
            "parameters": {
                "columns": {
                    "value": {
                        "Status": "Alive",
                        "TimeStamp": "={{ $now.format('yyyy-MM-dd') }}",
                        "Server IP Address": "={{ $('Server-Monitor').item.json.Server }}"
                    },
                    "schema": [
                        {
                            "id": "TimeStamp",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "TimeStamp",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Server IP Address",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "Server IP Address",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Status",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "Status",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": [],
                    "attemptToConvertTypes": false,
                    "convertFieldsToString": false
                },
                "options": [],
                "operation": "append",
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": 303958634,
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ\/edit#gid=303958634",
                    "cachedResultName": "Server_Status_Alive"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ\/edit?usp=drivesdk",
                    "cachedResultName": "Server-Monitor"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "8cXGgTelVK5DewVr",
                    "name": "Google Sheets account"
                }
            },
            "typeVersion": 4.5
        },
        {
            "id": "6dc31115-4ab6-44cf-ac4f-e2af82a5355e",
            "name": "Gmail",
            "type": "n8n-nodes-base.gmail",
            "position": [
                660,
                100
            ],
            "webhookId": "dec1def3-c858-4a43-b96e-2655d3fa3b77",
            "parameters": {
                "message": "=Hi Team,\n\nAt {{$now.format('yyyy-MM-dd HH:mm:ss')}}, the following server failed to respond to ping:\n\n\ud83d\udd3b Server Down: {{ $json[\"Server\"] }}  \n\nPlease investigate immediately to prevent service disruption. \n\nAutomated Monitoring System\n",
                "options": [],
                "subject": "=\ud83d\udd3b Server Down: {{ $json[\"Server\"] }}: {{ $today.format('yyyy-MM-dd') }}"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "C1RVeb9JgdvkMkP4",
                    "name": "Gmail account 2"
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "10262115-57a2-4c4d-9a10-89f4f6ee4ed7",
            "name": "Server_Status_Down",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                880,
                100
            ],
            "parameters": {
                "columns": {
                    "value": {
                        "Status": "Down",
                        "TimeStamp": "={{$now.format('yyyy-MM-dd HH:mm:ss')}}",
                        "Server IP Address": "={{ $('Server-Monitor').item.json.Server }}"
                    },
                    "schema": [
                        {
                            "id": "TimeStamp",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "TimeStamp",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Server IP Address",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "Server IP Address",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Status",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "Status",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": [],
                    "attemptToConvertTypes": false,
                    "convertFieldsToString": false
                },
                "options": [],
                "operation": "append",
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gid=0",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ\/edit#gid=0",
                    "cachedResultName": "Server_Status_Down"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ\/edit?usp=drivesdk",
                    "cachedResultName": "Server-Monitor"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "8cXGgTelVK5DewVr",
                    "name": "Google Sheets account"
                }
            },
            "typeVersion": 4.5
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "21468219-4434-4a0c-a3c4-9068baccc3cc",
    "connections": {
        "Gmail": {
            "main": [
                [
                    {
                        "node": "Server_Status_Down",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "HTTP Request": {
            "main": [
                [
                    {
                        "node": "Server_Status_Alive",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Gmail",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Server-Monitor": {
            "main": [
                [
                    {
                        "node": "HTTP Request",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Schedule Trigger": {
            "main": [
                [
                    {
                        "node": "Server-Monitor",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

LINE BOT - Google Sheets Record Receipt
View
Create a new user in Intercom
View
PUQ Docker NextCloud deploy
View
post to wallabag
View
Wait Redis Send Triggered
View
Receive updates when an event occurs in Taiga
View
Extractfromfile HTTP Automation Webhook
View
Check To Do on Notion and send message on Slack
View
Calendly Noop Create Triggered
View
OpenAI-model-examples
View