n8n-nodes-eventdock
Make your n8n webhook triggers reliable. This community node turns EventDock into a webhook source for n8n: raw provider webhooks hit EventDock first, where they are buffered, retried, and de-duplicated, and only clean, reliable events are delivered into your workflow.
EventDock is a webhook reliability layer. It receives your incoming webhooks at a stable ingest URL, retries failed deliveries with exponential backoff (up to 7 attempts over several hours), de-duplicates repeats, parks permanent failures in a Dead Letter Queue, and forwards successful events to a destination you configure. Free tier: 5,000 events/month — sign up.
Why use this instead of n8n's built-in Webhook node?
A plain n8n Webhook node receives the provider's request once. If your n8n instance is briefly down, mid-deploy, rate-limited, or the execution errors, that event is gone — most providers retry only a few times, then drop it.
Put EventDock in front and you get:
| Plain Webhook node | EventDock Trigger | |
|---|---|---|
| Retries on n8n downtime | (provider's limited retries only) | up to 7 attempts over hours |
| De-duplication of repeated deliveries | ||
| Dead Letter Queue for permanent failures | ||
| Signature verification (Stripe/Shopify/GitHub/Twilio) | manual | at the edge |
| Replay a missed event | from the EventDock dashboard |
How it works
When you activate a workflow containing the EventDock Trigger, the node automatically calls the EventDock API and creates an endpoint whose upstream destination is this workflow's n8n webhook URL:
Provider ──▶ EventDock ingest URL ──▶ (buffer · retry · de-dupe · DLQ) ──▶ n8n webhook URL ──▶ your workflow
- Activate the workflow. The node creates an EventDock endpoint and logs/stores
the ingest URL (e.g.
https://api.eventdock.app/in/<endpointId>). - Configure that ingest URL in your provider (Stripe, Shopify, GitHub, Twilio, or any generic webhook source) instead of pointing it directly at n8n.
- Every reliable delivery starts your workflow. The original payload is in
body; EventDock metadata (event id, attempt number, whether it's a retry) is ineventdock. - Deactivate the workflow and the EventDock endpoint is cleaned up automatically.
Output shape
{
"body": { /* the original provider webhook payload */ },
"headers": { /* original headers + X-EventDock-* */ },
"query": { /* query string params, if any */ },
"eventdock": {
"eventId": "V1StGXR8_Z5jdHi6B-myT",
"attempt": 0,
"ingestTimestamp": 1717000000000,
"correlationId": null,
"isRetry": false,
"deliveredAt": "2026-06-09T12:00:00.000Z"
}
}
Installation
On n8n Cloud / self-hosted (verified community node)
Once published and verified, install from Settings → Community Nodes and
search for n8n-nodes-eventdock.
Manual (self-hosted, before publish)
# in your n8n custom extensions directory (~/.n8n/custom or N8N_CUSTOM_EXTENSIONS)
npm install n8n-nodes-eventdock
Credentials
Create an EventDock API credential:
- API Key — from the EventDock dashboard → Settings → API Keys (starts with
evdk_). Get one free. - API Base URL — defaults to
https://api.eventdock.app. Only change for a self-hosted/staging EventDock.
Click Test to verify the key (it calls the read-only GET /v1/usage).
Node: EventDock Trigger
| Parameter | Description |
|---|---|
| Endpoint Name | Optional. Defaults to n8n · <workflow name>. |
| Provider | generic (any source), or stripe / shopify / github / twilio to unlock edge signature verification and provider-aware de-dup. |
| Signing Secret | Optional. For a known provider, EventDock verifies each signature before accepting & forwarding (rejects forgeries at the edge). |
Development
npm install
npm run build # tsc + copy icons into dist/
npm run lint # eslint-plugin-n8n-nodes-base checks
npm test # offline unit tests of the API helpers (node --test)
The unit tests (tests/) exercise the core API-call logic — base-URL handling,
the POST /v1/endpoints request shape, generic-vs-known provider body shaping,
and the X-EventDock-* metadata parsing — without hitting the network.
Publishing (verified community node)
n8n requires verified community nodes to be published to npm via a GitHub Actions workflow with provenance. The workflow is already included at
.github/workflows/publish.yml. These steps are intentionally NOT run automatically — they publish under the maintainer's npm/GitHub identity and must be done by a human.
Push this package to a GitHub repo named
n8n-nodes-eventdockunder theeventdockorg (updaterepositoryinpackage.jsonif the name differs).On npmjs.com → the package's Settings → Publish access → Trusted Publishers → Add a publisher, select GitHub Actions and enter:
- repository owner:
eventdock - repository name:
n8n-nodes-eventdock - workflow name:
publish.yml
(Trusted Publishers uses OIDC, so no
NPM_TOKENsecret is needed.)- repository owner:
Bump the version and tag a release:
npm version 0.1.0 git push --follow-tagsThe
publish.ymlworkflow runs on thev*tag and executesnpm publish --provenance --access publicwithid-token: writepermission.Submit the package for verification through the n8n Creator Portal. n8n fetches the provenance-signed package from npm for final vetting.
Verified-node constraints already satisfied
- Package name starts with
n8n-nodes-. package.jsonincludes then8n-community-node-packagekeyword and ann8nattribute listing the credential and node.- No runtime dependencies (
n8n-workflowis a peer/dev dependency only) — verified nodes may not ship runtime deps.