Filter and accept first-time webhook events with a replay-safe dedupe key
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This workflow has 8 nodes and runs when an HTTP POST request hits its webhook URL. It uses only n8n's built-in nodes.
How it runs
Trigger: When an HTTP POST request hits its webhook URL.
- Validate Event Contents (Code): runs custom JavaScript code
- If: checks a condition and branches into true / false
- Deduplicate by Event Keys (Remove Duplicates): removes duplicate items
- Handle Invalid Event Error (Code): runs custom JavaScript code
- Generate First Response Code (Code): runs custom JavaScript code
- Send 422 Status for Invalid Event (Respond to Webhook): sends the response back to the webhook caller
- Send 202 Status for First Seen (Respond to Webhook): sends the response back to the webhook caller
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (5)
- Webhook
n8n-nodes-base.webhook - Code
n8n-nodes-base.code - If
n8n-nodes-base.if - Remove Duplicates
n8n-nodes-base.removeDuplicates - Respond to Webhook
n8n-nodes-base.respondToWebhook
From the author
Quick overview This workflow receives POST webhooks and validates each event’s envelope, then deduplicates events by a derived source:eventid key to safely accept only the first delivery and reject invalid requests with a structured error response. How it…