Quick overview
This workflow runs scheduled HTTPS uptime and latency checks for a configurable list of websites, stores monitor state and history in n8n Data Tables, and sends deduplicated incident and recovery alerts plus a daily summary to a Slack channel.
How it works
- Runs on two schedules: one for periodic uptime checks and one for the daily summary.
- Loads the monitor configuration, initializes the required n8n Data Tables, and validates that enabled monitors use safe HTTPS URLs and sane thresholds.
- Loops through enabled monitors, performs an HTTP request for each target, and normalizes the result into healthy/slow/failed outcomes with status code, latency, and error details.
- Writes each check into the check-history table and compares the result to the prior persisted monitor state to detect outages, latency degradation, and recoveries based on confirmation and recovery thresholds.
- Upserts the latest monitor state and incident details into Data Tables and creates deterministic notification keys to prevent duplicate alerts.
- Sends eligible alerts to Slack, records the notification result in a ledger, and on the daily run calculates uptime/latency statistics from stored history, posts a Slack summary, and deletes old records based on retention settings.
Setup
- Connect a Slack OAuth2 credential and set the target Slack channel ID for both the alert and daily summary Slack nodes.
- Update the configuration object in the workflow to add your monitor URLs, expected status codes, timeouts, thresholds, reminder minutes, and any maintenance windows.
- Review retention settings (check, incident, and notification days) and the schedule times/intervals to match your operating requirements and timezone.
Customization
- Add or remove monitored URLs
- Override timeout or latency/failure thresholds per site
- Adjust global defaults and retention periods
- Customize Slack message formatting in the notification nodes
Additional info
The monitors field is an Object field displayed as a JSON list of site configurations. Each site requires an ID, name, URL, and enabled flag. Per-site overrides are optional and replace global defaults only when explicitly provided.