Create one
1
Open Webhooks → Inbound hooks → New inbound hook
Fill in the fields below.
2
Save and copy the address
It looks like
https://<your-api>/hooks/v1/<environment>/<slug>. It needs no API key: the signature is the credential.3
Give the address and secret to the other service
Paste them where that service asks for a webhook URL and signing secret.
Verification methods
Match Verification and Signature header to what the sender does, and check the sender’s own documentation. If the signature is missing or wrong, the request is refused with
401 and nothing runs.
What your flow receives
The flow’s input is an envelope, not just the body:
So in the flow you read
{{ input.body.action }} and {{ input.body.issue.title }}, and the sender’s event name from {{ input.headers['x-github-event'] }}.
When Then is Event, the same envelope is the event’s payload, and subscriptions can react to it.
What the sender gets back
Because the sender is answered immediately, your flow can take as long as it needs. Failures are visible under Activity → Jobs.
Example: a GitHub issue starts a flow
- Create a hook
github-issues, Verification HMAC SHA-256, Signature headerx-hub-signature-256, secret fromsecret://GITHUB_WEBHOOK_SECRET, Then a flowtriage-issue. - In GitHub: Settings → Webhooks → Add webhook, paste the address, content type
application/json, and the same secret. - In
triage-issue, use{{ input.body.issue.title }}to create a record, post to a channel or ask a model to classify it.
Example: Stripe payment emits an event
- Create a hook
stripe, Verification Pawabase signature, Signature headerstripe-signature, secret fromsecret://STRIPE_WEBHOOK_SECRET, Then an eventstripe.received. Stripe signs<timestamp>.<body>and sendst=…,v1=…, which is the same format Pawabase checks. - Subscribe a flow to
stripe.receivedand branch on{{ input.body.type }}.