n8n Webhook Not Working in Production? We Fix It Today

A webhook that works with the Test URL but not the Production URL is the single most common n8n support question. It is almost always one of: the workflow is not activated, the public URL or reverse proxy does not reach n8n, the sender uses a different HTTP method or path than the node expects, or a self-hosted instance has the wrong WEBHOOK_URL setting. We find out which on a short call and fix it the same business day.

By OpsThrive · Published 28 October 2026 · Prices and facts last reviewed 2 November 2026

What we check first

  1. Whether the workflow is activated, and whether the sender is calling the production path rather than the test path.
  2. The public URL, reverse proxy (Nginx, Caddy, Traefik, Cloudflare) and TLS in front of a self-hosted instance.
  3. The WEBHOOK_URL and related environment variables on Docker and VPS installs.
  4. HTTP method, path, authentication and payload format the sending service actually uses.
  5. Whether the sender retried, and what its delivery log says.

What you get

  • A webhook that fires in production, confirmed from the sending service's own delivery log.
  • A written note of what was wrong and what we changed.
  • An alert if the webhook stops receiving events for longer than you expect.

How it works

  1. Book the free 15-minute call or email us what is happening. You hear back the same business day.
  2. We diagnose on the call with screen share or read-only access, and you get a fixed quote the same day.
  3. You share access, we fix it, in your accounts and on your servers. You keep ownership of everything.
  4. You get a short written note of the cause, the change, and how to stop it recurring.

Related

Frequently asked questions

Why does my webhook work in test mode but not in production?

Test and production use different URLs, and the production URL only answers while the workflow is activated. If the sender was configured with the test URL, or the workflow was never activated, production calls go nowhere. That is the first thing we check.

I self-host n8n behind Cloudflare. Does that matter?

Often yes. Proxies and firewalls can block or rewrite webhook requests, and the instance needs the correct public URL configured. We check the whole path from the sender to n8n.

How do I get or change the n8n webhook URL?

Open the Webhook node: it shows a Test URL and a Production URL, and the production one only works once the workflow is active. The host part comes from the WEBHOOK_URL environment variable (or N8N_HOST and N8N_PROTOCOL), so a wrong or missing WEBHOOK_URL behind a reverse proxy produces URLs that point to localhost or the wrong domain, which is the most common cause of a webhook that never fires.

Are n8n webhooks secure?

Only as secure as you configure them. The node supports header, basic and JWT authentication, and you can verify a signature from the sender (Stripe, Shopify and GitHub all sign their calls) in the next node. Put n8n behind HTTPS, keep the path unguessable, and never accept unauthenticated webhooks that trigger payments or data changes.