Requex.me LogoRequex.me

Documentation

Browse by section

Keep all guides, tool docs, automation recipes, and comparison pages in one navigable place.

Docs Home
Docs

Foundation docs for getting started fast, understanding key terms, and tracking what has changed.

Guides

Start with fundamentals, then move into provider-specific webhook testing and production hardening.

Tool Docs

These pages explain what each tool does, when to use it, and how it fits into a webhook debugging workflow.

Automation Docs

Use these setup guides when you want forwarding rules, custom responses, security checks, or multi-destination fanout.

Compare

Use these pages to compare developer workflows, pricing tradeoffs, and feature differences between webhook tools.

Quick Answer

n8n generates two URLs for every Webhook trigger: a /webhook-test/ URL that fires once while you click "Listen for test event", and a /webhook/ URL that fires whenever the workflow is Active. You cannot use the test URL in production — it stops responding as soon as the test event arrives.

n8n Test URL vs Production URL — Complete Guide

The most confusing thing about n8n's Webhook node is the dual URL system. This guide walks through what each URL does, when each one fires, and how to stop accidentally using the test URL in production.

Last updated: April 2026 · 8 min read

Why n8n Has Two URLs

n8n's design goal is that you should be able to iterate on a workflow safely without disturbing production runs. So every Webhook trigger has two independent URLs:

Test URL

Path: /webhook-test/{uuid}

Fires once per "Listen for test event" click. Populates the canvas with the captured payload so you can build downstream nodes against real data.

Production URL

Path: /webhook/{uuid}

Fires every time a request arrives if the workflow toggle is set to Active. Does not populate the canvas — runs go to the executions list instead.

Both URLs point to the same underlying node, but they route through different execution paths in the n8n server.

The "My Test URL Stopped Working" Problem

You copy the test URL, paste it into Stripe's webhook config, save, and the first event fires perfectly. But the next event returns 404. What happened?

The test URL is not a persistent endpoint. It only listens for one event at a time, and only while you have "Listen for test event" active in the editor. After that single event arrives, the URL goes dormant until you click Listen again.

Consequence: if you use the test URL as your Stripe webhook endpoint, you will only ever receive the first event. Every subsequent event fails with 404, and Stripe's retry logic will kick in until the endpoint is disabled.

Fix: always use the production URL in real integrations. The test URL is only for building the workflow inside the n8n editor.

How to Identify Which URL You Have

Check the path segment:

https://n8n.example.com/webhook-test/abc-123 ← TEST (one-shot)
https://n8n.example.com/webhook/abc-123 ← PRODUCTION

If your URL contains webhook-test, you are using the test URL. Swap to the production URL and toggle the workflow Active.

The Correct Workflow

  1. Build phase: click "Listen for test event" in the Webhook node. Copy the test URL. Fire one test event (curl, Postman, or an actual webhook source). The captured payload appears on the canvas.
  2. Develop downstream: use the captured payload to build IF/Set/Code nodes. Re-click "Listen for test event" any time you need a fresh payload.
  3. Activate: when the workflow is ready, toggle Active in the top right.
  4. Switch URLs: in your webhook sender's config, replace the test URL with the production URL (remove -test from the path).
  5. Monitor: executions now appear in the Executions list, not on the canvas.

Common Mistakes

Forgot to swap URLs when activating

Very common. You built everything with the test URL, toggled Active, and left the test URL in your sender's config. The workflow looks active but never fires.

Deactivated the workflow and forgot

When you open a workflow and edit a node, n8n prompts to deactivate. If you click through without reading, the toggle flips off and production requests start 404ing silently.

Test URL in production monitoring

You set up an uptime monitor to ping the webhook. The monitor uses the test URL, sees 200 on the first ping, and 404 on every ping after — generating false downtime alerts.

A Simpler Model: Single URL

The dual URL design is a developer-experience tradeoff: it keeps production traffic off your canvas during development. Other webhook tools take a different approach — Requex.me uses a single URL that always captures every request, and shows you a separate feed of recent events without affecting workflow behavior.

The tradeoff: in Requex, production events will show up in the same feed as your test events. The win: you never lose a webhook because you forgot to toggle something or copied the wrong URL.

FAQ

Why does the test URL return 404 after one event?

That is by design. The test URL is bound to a single "Listen" session. Once the first event arrives, the session ends and the URL is dormant until you click Listen again.

Can I disable the dual URL behavior?

No. It is core to how n8n separates dev from prod. You can only use the production URL consistently by always toggling Active.

Do executions on the test URL count toward my quota?

Yes, on n8n Cloud. Every test event counts as one execution.

What happens if I deactivate the workflow while a request is in flight?

Requests already accepted finish executing. New requests to the production URL get 404.

Related Resources