Website Down Alert: know your site is broken before your customers tweet about it
An n8n workflow that checks your critical pages every 5 minutes — homepage, checkout, API health endpoint — verifies both status code and expected content, and alerts your Telegram with escalating urgency: one failure logs quietly, two consecutive failures ping you, recovery reports itself.
- 1
Define monitors in a sheet
Columns:
url,must_contain,state(up/suspect/down),since. Start with the three pages that cost money when broken: homepage, checkout or signup, and your API health endpoint if you have one. - 2
Check every 5 minutes
A
Schedule Triggerreads the sheet and anHTTP Requestnode (with a 15-second timeout, redirects followed, never-error mode so failures flow to logic instead of crashing the run) hits each URL. ACodenode evaluates: status 200 AND body contains the fragment. - 3
Apply the two-strike rule
Pass + state up → nothing. Fail + up → state becomes
suspect, silent. Fail + suspect →down, alert fires. Pass + down →up, recovery message with downtime duration. All transitions update the sheet — which doubles as your incident history. - 4
Alert with what matters
The
Telegramdown-alert includes URL, status code or timeout, which check failed (status vs content), and since-when:🔴 checkout DOWN — 200 but 'Add to cart' missing — since 14:35. Enough to triage from your phone before opening a laptop.
Frequently asked questions
Why check content and not just the status code?
Because the ugliest outages return 200: an empty page from a broken build, a checkout that renders but the pay button errors, a CDN serving a stale error page. Each monitor pairs a URL with a text fragment that must appear ('Add to cart', your product name). Status OK + fragment missing = broken, and simple uptime tools miss it.
How does it avoid false alarms from network blips?
The two-strike rule: a single failed check writes state to the sheet and stays silent; the alert fires only when the next check (5 minutes later) also fails. Transient blips self-heal invisibly. Recovery flips the state back and sends a single '✅ back up — down ~12 min' message so you're never left wondering.
Isn't this what UptimeRobot is for?
For plain ping monitoring, yes — and it's good. This recipe earns its place when you want content verification, your own alert channels and escalation logic, monitors defined in a sheet your team can edit, and no per-monitor pricing as you grow. Plus it's one more flow in the n8n you already run.