Skip to main content
Add a webhook trigger to a workflow and it runs whenever an external service (Stripe, GitHub, a form provider) POSTs to its ingress URL.
These are inbound webhooks handled by your app’s code. For outbound webhooks that notify your systems when database records change, see the Database API webhooks.

Defining a webhook workflow

The ingress URL

The workflow receives events at:
The secret token in the path is the only authentication. There is no framework-level HMAC — the token is what proves the request is legitimate at the transport level. Treat the full URL as a credential, and verify provider signatures yourself (see below) when the provider supports them.
The token is provided as an environment variable named ZITE_WEBHOOK_TOKEN_<ENDPOINT>, where <ENDPOINT> is the workflow id upper-snake-cased — workflow stripeEvents becomes ZITE_WEBHOOK_TOKEN_STRIPE_EVENTS.

Verifying provider signatures

The request body is delivered raw so you can run provider-native signature verification on the exact bytes — for example, Stripe’s constructEvent:
Inbound webhook bodies are limited to 1 MB.