🔗 Lesson 11 of 12

Webhooks &
Real-time Automation

Stop polling. Start reacting instantly. Learn how N8N webhooks receive real-time events from Stripe, GitHub, Shopify, and any service that sends HTTP requests — the moment they happen.

Webhook node setup Test vs Production URL Respond to Webhook curl testing 6 real-world use cases

1Webhook Node Setup

The Webhook node is one of N8N's most powerful triggers. It creates an HTTP endpoint that listens for incoming requests. Any service that can send a POST or GET request — Stripe, Shopify, GitHub, Typeform, your own app — can trigger your workflow instantly.

https://your-n8n.com/webhook/abc123def456

The URL contains a unique ID auto-generated by N8N. You copy this URL, paste it into the external service's webhook settings, and N8N starts receiving events immediately.

🔳 Test URL
Used while building and testing your workflow. N8N must be in "listening" mode (click "Execute Workflow"). Captures one event and shows you the data structure so you can build the rest of the workflow.
Development only
🟢 Production URL
Active whenever your workflow is active (toggle on). Always listening. Processes every event automatically. Never requires N8N to be in listening mode.
Always live
⚠️
Test URL vs Production URL Are Different
The Test URL and Production URL have different paths. Always update the webhook URL in your external service (Stripe, etc.) from Test to Production when you activate your workflow. A common mistake is registering the Test URL in production — events get dropped silently.

2Responding to Webhooks

Some services (like Stripe) require your webhook endpoint to return a 200 OK response quickly to confirm receipt. Others (like forms) expect a JSON response with redirect data. The Respond to Webhook node lets you send back exactly the right response.

📈
Response Code
Set 200 (success), 201 (created), 400 (bad request), or any HTTP status code
HTTP Status
📜
Response Body
Return JSON, plain text, or HTML back to the caller. Dynamic using N8N expressions.
JSON / Text
📄
Headers
Set Content-Type, CORS headers, custom auth tokens, or any response header needed.
Custom
Webhook with Response Flow
Stripe Event
payment.success
Webhook Node
receives event
Process Logic
update DB etc.
Respond to
Webhook
200 OK
💡
Respond First, Process Later
If your webhook processing takes more than a few seconds, Stripe and other services will time out and retry. Use the Respond to Webhook node early in the flow to acknowledge receipt immediately, then continue processing asynchronously.

3Testing Webhooks with curl

Before connecting a real external service, test your webhook with curl or Postman. This lets you control exactly what data your webhook receives and verify your workflow handles it correctly.

Bash — Terminal
# Send a test webhook payload to N8N
curl -X POST https://your-n8n.com/webhook/abc123 \
  -H "Content-Type: application/json" \
  -d '{"event": "payment_success", "amount": 99.99, "user_id": 42}'

# With authentication header (for secured webhooks)
curl -X POST https://your-n8n.com/webhook/abc123 \
  -H "Content-Type: application/json" \
  -H "X-Webhook-Secret: my-secret-key" \
  -d '{"event": "order_created", "order_id": "ORD-001"}'
🔵
Use webhook.site for Easy Testing
Visit webhook.site to get a free temporary URL that shows you exactly what any service sends. Point Stripe/Shopify at webhook.site first, copy the real payload structure, then replicate it with curl to test your N8N workflow safely.

46 Real-World Webhook Use Cases

Webhooks unlock instant automation across every major business tool. Here are six high-value patterns you can build today:

💳
Stripe Payment
Stripe sends payment.success → N8N fulfills order, sends receipt, grants access
E-commerce
📋
Form Submit
Typeform / Tally submit → N8N adds contact to CRM, sends welcome email
Lead Gen
🔘
GitHub Push
Code pushed to main → N8N triggers deployment + posts status to Slack
DevOps
🛒
Shopify Order
New order placed → N8N notifies warehouse team + updates inventory sheet
Retail
📅
Calendly Book
Meeting booked → N8N sends reminder sequence + prep materials to attendee
Scheduling
🎉
Support Ticket
New ticket opened → N8N classifies priority + routes to correct Slack channel
Support

5Webhooks vs Polling — When to Use Each

N8N supports both webhooks (event-driven) and scheduled triggers (polling). Understanding when to use each approach is critical for building efficient, cost-effective automations.

Feature Webhook (Event-Driven) Schedule (Polling)
Response time Instant (<1 sec) Delayed (up to interval)
Server resources Only runs on events Runs every X minutes
Implementation Service must support webhooks Works with any API
Missed events If N8N is down at event time Events accumulate, caught next poll
Best for Payments, orders, form submits Reports, syncs, scheduled tasks

6Full Stripe Payment Flow

Here is a complete real-world example: a Stripe payment webhook that triggers a multi-step fulfillment workflow:

Stripe Payment → Full Fulfillment Flow
Stripe
Webhook
N8N
Webhook Node
IF
payment_success?
📋 Update DB
mark paid
+
📧 Send Receipt
to customer
+
📨 Fulfill Order
grant access
<1s
Webhook response time
0ms
Polling overhead vs schedule
24/7
Production webhook availability
🧠 Knowledge Check — Lesson 11
Q1 — What are the two webhook URL modes in N8N?
HTTP and HTTPS modes
Test URL and Production URL
Public and Private URLs
Sync and Async modes
Q2 — Which N8N node sends a response back to the service that triggered the webhook?
HTTP Response Node
Respond to Webhook
Send Response Node
Webhook Reply
Q3 — What is the main advantage of webhooks over a scheduled polling approach?
Webhooks work with more services than polling
Webhooks are easier to set up in N8N
Real-time instant response — no delay, no wasted polling cycles
Webhooks never miss events even if N8N is offline
← Lesson 10 Error Handling