Templates / Prevent duplicate webhook processing with Data Tables idempotency guard

Prevent duplicate webhook processing with Data Tables idempotency guard

Ready for 3.0

by Paulina Urbina ✓ · 36 views · created 2026-08-31 · Engineering

Ready 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 10 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.

  1. Normalize Event (Code): runs custom JavaScript code
  2. Configure Guard (Code): runs custom JavaScript code
  3. Find Existing Key (Data table): get
  4. Evaluate Idempotency (Code): runs custom JavaScript code
  5. Route Decision (Switch): routes items into 3 branches
  6. Create Ledger Record (Data table): uses Data table
  7. Record Duplicate (Data table): update
  8. Refresh Expired Record (Data table): update
  9. Build Guard Result (Code): runs custom JavaScript code

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 (4)

From the author

Quick overview Stop repeated webhook deliveries from triggering payments, notifications, database writes, or other side effects more than once by storing scoped idempotency keys in an n8n Data Table. How it works 1. A Webhook node receives an idempotencykey,…

Excerpt from Paulina Urbina's description on n8n.io.

View the original on n8n.io → Check your own copy

Get the weekly “what broke” email

New templates, newly broken ones, and n8n release changes. One short email a week.

Form not loading? Subscribe here.