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 setupTest vs Production URLRespond to Webhookcurl testing6 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 N8Ncurl -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:
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