Monitor JSON business health checks and send Slack alerts

Go to Workflow
0 views
Built by Ahmad Yar Ahmad Yar
Created on October 16, 2026

Description

Quick overview
This workflow runs hourly to check an HTTPS JSON endpoint for expected HTTP status and business-rule assertions, deduplicates repeated failures using n8n static data, and posts failure or recovery alerts to a Slack channel.

How it works
Runs every hour (or on manual execution) and loads the monitor configuration, including the target URL, expected status code, Slack channel ID, and up to four JSON field checks.
Validates the configuration and converts the check rows into structured assertions.
Sends an HTTP GET request to the target HTTPS endpoint and captures the full JSON response and status code.
Evaluates the response against the expected HTTP status and the configured business checks (equals, nonEmpty, minItems, or freshWithinMinutes) and produces a healthy/unhealthy result with issue codes.
Compares the current result to the previous run stored in n8n static workflow data to detect new failures, changed failures, reminder-worthy ongoing failures, or recoveries.
Posts a formatted alert message to Slack only when an alert is needed, otherwise it completes silently.

Setup
In the “EDIT HERE — URL, Checks & Alerts” node, set your HTTPS JSON GET endpoint, expected HTTP status, Slack channel ID, reminder interval, and at least one JSON path check with a supported rule.
Configure authentication in the HTTP Request node if your endpoint requires it (for example, Header Auth with an Authorization bearer token or X-API-Key).
Add a Slack credential with permission to post messages (chat:write), invite the bot to the target channel, and keep the workflow’s Slack channel selection bound to the configured channel ID.

This workflow was created by Ahmad Yar and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.

Nodes Used (3)

Code
n8n-nodes-base.code
HTTP Request
n8n-nodes-base.httpRequest
Slack
n8n-nodes-base.slack