Receive webhooks from any source, transform the payload, and forward it to any URL or Slack channel — CRMs, internal tools, whatever listens. Your universal webhook router. Email forwarding isn't working yet (see below).
POST /api/webhooks/incoming/orders
{"text": "Order from {{name}}"}
#orders channel
Get a unique URL that accepts POST requests from any source — forms, payment processors, CI/CD, IoT devices.
Use {{key}} templates to reshape incoming data before forwarding. Map any payload to any format.
Forward to any URL or Slack webhook. Route the same event wherever it needs to go. (Email destinations are selectable but don't currently deliver — don't rely on them.)
Full logging of every webhook received and forwarded. Debug delivery issues with payload inspection.
Name your webhook and choose where to forward it — a URL or a Slack channel.
Use the generated URL as your webhook target in any service or app.
Every incoming POST is transformed and delivered to your destination with full logging.
The endpoint accepts any JSON POST request. The Content-Type should be application/json. Form-encoded data is also supported and will be converted to JSON automatically.
Use double-brace syntax like {{key}} to reference fields from the incoming JSON payload. Nested fields use dot notation: {{order.customer.name}}. The transformed output is sent as JSON to the destination.
Not reliably — so please don't depend on it. Email is offered as a destination type, but our production container has no mail server configured, so email forwarding silently fails to deliver. We're being upfront rather than letting you wire up an alert that never arrives. Use a URL or Slack destination instead; proper email delivery is on the roadmap.
Failed deliveries are logged with the error details. You can view all delivery attempts in the webhook logs. We currently don't retry failed deliveries, but it's on our roadmap.
Set up your first webhook relay in under a minute. No code required.
Create a Webhook