Templates / Handle reliable webhooks with HTTP Request and Data Table nodes

Handle reliable webhooks with HTTP Request and Data Table nodes

Ready for 3.0

by James Martin · 5 views · created 2026-10-02 · 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 47 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. Validate and Normalize Event (Code): runs custom JavaScript code
  2. If: checks a condition and branches into true / false
  3. Verify Event Row Absence (Data table): row not exists
  4. Verify Event Row Exists (Data table): row exists
  5. Send 400 Invalid Payload (Respond to Webhook): sends the response back to the webhook caller
  6. Log Received State (Data table): create or update
  7. Retrieve Persisted Event State (Data table): get
  8. Log Processing State Attempt (Data table): create or update
  9. Route by Event State (Switch): routes items into 7 branches
  10. Call API Attempt (HTTP Request): calls an HTTP API

…plus 36 more steps. See the full node list below.

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

From the author

Quick overview This workflow receives POST webhooks, validates and normalizes the event payload, and uses an n8n Data Table to enforce idempotent processing with durable state tracking. It calls a simulated downstream API on httpbin.org with bounded retries…

Excerpt from James Martin'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.