Webhooks
Receive signed GitHub, Slack, and Clerk events through dedicated Route Handlers with provider verification and retry-safe processing.
Webhook endpoints
| Provider | Endpoint | Secret |
|---|---|---|
| GitHub | /api/webhooks/github | GITHUB_WEBHOOK_SECRET |
| Slack | /api/webhooks/slack | SLACK_SIGNING_SECRET |
| Clerk | /api/webhooks/clerk | CLERK_WEBHOOK_SIGNING_SECRET |
GitHub events
POST /api/webhooks/github
Proof verifies x-hub-signature-256 against the raw body and requires x-github-event and x-github-delivery. Subscribe the GitHub App to pull-request events.
Slack events
POST /api/webhooks/slack
The Chat SDK adapter verifies the Slack request signature, acknowledges promptly, and continues task handling after the response. Subscribe the app to bot mentions and grant the scopes needed to read and post in installed conversations.
Clerk identity events
POST /api/webhooks/clerk
Subscribe to user, organization, organization membership, organization invitation, and enterprise SSO/SAML connection events. Proof verifies the Svix signature and uses svix-id as the delivery identity.
Identity webhooks synchronize the local authorization directory. Until the matching user, organization, and active membership exist, a signed-in user remains on the provisioning screen and cannot read tenant data.
Retries and idempotency
GitHub and Clerk deliveries use a durable receipt with a ten-minute processing lease. Completed deliveries become harmless duplicates. Failed deliveries and expired leases can be claimed again, allowing provider retries without permanently losing an out-of-order event.