Skip to content
LastPing
Guide for n8n

n8n monitoring: alerts when a workflow fails, hangs or never runs

n8n records a failed execution, but nobody is told when a scheduled workflow stops running. One HTTP Request node at the end of the workflow pings LastPing; an error workflow reports failures with the error message; LastPing alerts you when a run is missed.

Your assistant can do this for you

Monitor my n8n workflows with LastPing

On this page
  1. What this catches
  2. Set it up
  3. Good to know
  4. Questions people ask

What this catches

  • A workflow that never ran: deactivated, a paused instance, a broken trigger or a full disk: no ping in the window opens an incident.
  • A failed execution: the error workflow posts the error message to /fail, and it lands on the incident.
  • A hung execution: with the start ping, a maximum runtime on the monitor catches a workflow that starts and never finishes.
  • Recovery: the next successful run closes the incident on its own.

Set it up

Create a monitor that matches the workflow's trigger

For a Schedule Trigger, create a monitor with the same cron expression and time zone, plus a grace window. For a workflow started by events, set a silence floor instead: the longest normal gap between runs. Copy the ping URL.

Ping on success at the end of the workflow

Add an HTTP Request node as the last node. Method GET, URL your ping URL. In the node's settings, set On Error to Continue, so a network blip on the ping never fails your workflow.

Method: GET
URL:    https://ping.lastping.dev/<uuid>?rid={{ $execution.id }}

Optional: ping start after the trigger

An HTTP Request node right after the trigger, calling /start with the same run id, arms a maximum runtime, so a workflow that hangs opens an incident.

Method: GET
URL:    https://ping.lastping.dev/<uuid>/start?rid={{ $execution.id }}

Report failures from an error workflow

Create a second workflow with an Error Trigger node followed by an HTTP Request node that posts the error to /fail. Then open the monitored workflow's settings and choose it as the Error workflow.

Method:       POST
URL:          https://ping.lastping.dev/<uuid>/fail?rid={{ $json.execution.id }}
Send Body:    on, Raw, text/plain
Body:         {{ $json.workflow.name }}: {{ $json.execution.error.message }}

Good to know

n8n runs an error workflow for executions started by a trigger, not for manual test runs, so test the failure path with an active workflow. Alerts go to email, Slack, Discord, Telegram, Microsoft Teams, Google Chat, a signed webhook, or a push to your phone through ntfy or Pushover.

Questions people ask

  • How do I get alerted when an n8n workflow fails?

    Create an error workflow with an Error Trigger node and an HTTP Request node that posts the error message to your LastPing monitor's /fail URL, then pick it as the Error workflow in the monitored workflow's settings. LastPing opens an incident with the message on it.

  • How do I know if a scheduled n8n workflow did not run?

    Add an HTTP Request node at the end of the workflow that calls your LastPing ping URL, and give the monitor the same cron schedule as the Schedule Trigger. If no ping arrives within the grace window, LastPing alerts you.

  • Does it need an n8n community node?

    No. The built-in HTTP Request node is enough: a GET for success, a POST with a text body for failure.

  • Is it free?

    Yes. LastPing is free for individuals, with no monitor cap.

Free for individuals

The workflow that stopped is the one nobody opens.

One node to add. Free for individuals.