This workflow corresponds to n8n.io template #3880 β we link there as the canonical source.
This workflow follows the Gmail β Google Sheets 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 β
{
"id": "pcLi17oUJK9pSaee",
"meta": {
"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.2
},
{
"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": {
"name": "<your credential>"
}
},
"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.2
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "6dc31115-4ab6-44cf-ac4f-e2af82a5355e",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
660,
100
],
"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": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
}
],
"active": false,
"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
}
]
]
}
}
}
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.
gmailOAuth2googleSheetsOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
π Web Server Monitor & Alert System
Source: https://n8n.io/workflows/3880/ β original creator credit. Request a take-down β
More Email & Gmail workflows β Β· Browse all categories β
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
YOUR_ID 4. Uses gmail, googleDrive, googleSheets, httpRequest. Scheduled trigger; 53 nodes.
Looking for a way to track GitHub bounty issues automatically and get notified in real time? This GitHub Bounty Tracker workflow monitors repositories for issues labeled π Bounty, logs them in Google
This workflow automatically sends a beautifully designed HTML newsletter every Sunday at 8 AM, featuring products currently on sale from your Algolia-powered e-commerce store.
This n8n template demonstrates how to build a Auto Lead Gen & Outreach System for Local Businesses specifically designed to help businesses that donβt have a website yet.
I created this workflow with care for marketing professionals and agencies who manage multiple Meta Ads (Facebook) accounts and want to track ad account balances automatically β no more logging in eve