Vivere

Vivere / Answers

How to get an alert when an n8n workflow doesn't run

n8n's Error Trigger reports executions that fail. A workflow that never starts leaves no execution to fail, so that alert has to come from outside n8n.

n8n has a good answer to "tell me when a workflow breaks": an error workflow, started by an Error Trigger. It has no answer to "tell me when a workflow did not run", and the two are easy to confuse until the day a workflow turns out to have been silent for a week while the error workflow never made a sound.

What n8n can tell you on its own

Every one of these starts from something that happened: an execution that failed, an execution that was recorded, a process that answered. None of them notices an execution that should have happened and did not.

The runs that never start

These are the common ways a workflow goes quiet without an error anywhere:

In each case there is no execution, so nothing fails and the Error Trigger has nothing to fire on.

Why a second workflow on the same instance is not enough

The usual workaround is a watchdog workflow: a second Schedule Trigger that checks whether the first one ran, for example by looking for the row it should have written today. It catches the unpublished workflow and the webhook nobody called. It shares everything else with the workflow it watches: the same process, the same scheduler, the same host. A restart that drops one schedule can drop both, and an instance that is down runs neither. The check has to live somewhere the instance's failures cannot reach.

A dead man's switch at the end of the workflow

Invert the check. Instead of n8n reporting a failure, the workflow reports success to something outside n8n on every run, and silence past a deadline is the alert. Whatever stopped the run, whether an unpublished workflow, a lost schedule, a quiet webhook or a dead host, it looks the same from outside: the ping did not arrive.

  1. Create a heartbeat monitor in Vivere with the workflow's schedule. A workflow on Every hour is a period of 1h; a cron schedule such as 0 6 * * 1-5 goes in as a cron expression with the instance's timezone.
  2. Add a ping as the last node on the success path: the Vivere node with Ping → Success, or an HTTP Request node to the monitor's ping URL:
    Method: POST
    URL:    https://vivere.dev/p/<your-monitor-id>
  3. Set the grace, how late the ping may be before it counts as missing, from the workflow's slowest normal run plus the delay before n8n starts it. The grace period calculator works it out.

Keep the error workflow, and have it report to the monitor too: an HTTP Request node to https://vivere.dev/p/<your-monitor-id>/fail, or a Vivere node with Ping → Fail, after the Error Trigger. A run that starts and breaks then alerts at once with the error attached, and a run that never starts alerts when the grace runs out.

A webhook workflow has no schedule to copy, so give its monitor a period as long as the longest normal gap between calls. For the instance itself, one workflow with a Schedule Trigger every five minutes that does nothing but ping its own monitor tells you within minutes that the host or the scheduler has stopped, while the monitors on individual workflows tell you which one went quiet.

On Vivere's free plan, which covers 25 monitors, alerts go to email or a webhook; paid plans add Slack, Discord, Telegram and ntfy. The n8n guide has the setup in full, with the Vivere node and with HTTP Request.

Common questions

Does the n8n Error Trigger fire when a workflow doesn't run?

No. The Error Trigger runs when an automatic execution of a workflow fails, so there has to be an execution first. A workflow that is not published, a schedule that was due while the instance was restarting, a webhook nobody called and an instance that is down all produce no execution, and so no error.

How do I check that my n8n instance is up?

n8n answers /healthz with 200 when the instance is reachable, and /healthz/readiness with 200 when its database is connected and migrated. An uptime check on those tells you the process is up. It does not tell you that any workflow ran: an instance can answer both while a workflow's trigger is not firing.

How do I monitor an n8n workflow that runs on a webhook, not a schedule?

Give its heartbeat a period as long as the longest normal gap between calls, plus a margin, rather than the average gap. A webhook called a dozen times a day that sometimes goes quiet overnight wants a period of a day, not an hour. If the quiet spells are too irregular for any period, watch the system that calls the webhook instead.

Find out without looking

Vivere watches for the ping that does not arrive. Add one line to the job, pick where alerts should land, and you hear about the run that never happened.

Start free Read the quickstart

25 monitors, a status page, email and webhook alerts. No card.

Last reviewed October 2026.

Related