HookGet Open dashboard

n8n → HookGet

n8n calls HookGet; the request is verified at the door and becomes normalised events on the same pipeline as everything else you deliver.

In short

  • One HTTP Request node at the end of a workflow, plus an Error Workflow for failures — that is the whole integration.
  • Runs become automation.run_succeeded / run_failed with duration, item count and the failed node as data.
  • The workflow name is a groupable attribute; the execution id is the entity — the right way round for filtering.
  • This is a convention we document, not an n8n feature — n8n has no native run webhook, and we say so.

What it produces

n8n sendsBecomesData
status: successautomation.run_succeededduration_ms, items
status: error / failedautomation.run_failedduration_ms, failed_node
status: runningautomation.run_started
status: canceledautomation.run_cancelled

Set up

# The body your HTTP Request node sends (only "status" is required):
{
  "workflow": "Lead enrichment",
  "execution_id": "{{ $execution.id }}",
  "status": "success",
  "started_at": "{{ $execution.startedAt }}",
  "finished_at": "{{ $now }}",
  "items": 42
}
# with header  x-hookget-token: <the source secret>
How an inbound webhook is verified before it enters A provider sends a signed request. HookGet verifies the signature or token and deduplicates on the provider's delivery id before the event exists. A request that fails verification is refused with a 401 and never enters the pipeline. A verified event flows into the same pipeline as any other: retries, timeline, replay. The provider GitHub, Stripe, 13 more Verified at the door signature or token · dedupe The same pipeline retries · timeline · replay Refused bad signature → 401, nothing enters
Verification happens before the event exists, so a forged request is refused at the door — it is never stored, never retried, never seen again. Redeliveries are deduplicated on the provider’s own delivery id.

Stated plainly

n8n does not emit a "workflow finished" webhook natively. This connector documents a small JSON body and verifies a shared token — a convention HookGet publishes, not an integration n8n provides. It works on every n8n plan, self-hosted included, precisely because it asks nothing of n8n itself.

Questions

How do I catch failures if the workflow died before the last node?

Set an n8n Error Workflow that posts the same body with status: "error". n8n triggers it on any unhandled failure, so the report survives the crash of the workflow it reports on.

What if my expression leaves a field empty?

Everything except status is optional. Duration is derived from started/finished timestamps when present; a missing field narrows the event rather than rejecting it.