Verify Your Nightly Backups Actually Succeeded and Alert If Not
An n8n workflow that each morning checks whether last night's backup ran, is recent enough, and is a sane size — then alerts you loudly if anything is off, so you discover a broken backup on a quiet Tuesday, not during a real disaster recovery.
- 1
Run each morning
A
Schedule Triggerruns after your backup window, e.g. 6 AM. - 2
Inspect the latest backup
An
HTTP Requestlists the backup location and finds the newest artifact's timestamp and size. - 3
Judge freshness and size
A
Codenode checks the backup is from the last N hours and above a minimum size; it outputs pass or a specific failure reason. - 4
Alert on failure
An
IFsends aSlackalert only when something's wrong (missing, stale or too small), with the reason — so no news is genuinely good news.
Frequently asked questions
Why isn't 'the backup job ran' enough?
A job can 'succeed' while producing a zero-byte or truncated file, or write to the wrong place. This workflow checks the actual artifact — its timestamp and size — not just an exit code. That's the difference between thinking you have backups and knowing you do.
What backup targets can it check?
Anything reachable: an S3/object-storage listing, a file on a server via API, or a database snapshot metadata endpoint. The check reads the latest backup's last-modified time and size and compares against your expectations.