Vercel
Receive webhook events from Vercel for deployments, projects, domains, and integrations.
Pro/Enterprise required
Vercel webhooks are only available on Pro and Enterprise plans. They are not available on the Hobby plan.
Connect Vercel
Vercel webhooks require manual setup — there is no OAuth integration. You register the Dispatch endpoint URL directly in your Vercel team settings.
Steps
- In Dispatch, go to Sources → Add Source → Vercel and click Generate webhook URL.
- Copy the generated URL.
- In Vercel, go to Team Settings → Webhooks → Add Webhook.
- Paste the URL and select the events you want to receive.
- Click Create. Copy the Signing Secret shown on the webhook detail page.
- Paste the signing secret into Dispatch and click Done.
Supported Events
| Category | Event | Description |
|---|---|---|
| Deployments | deployment.created | Deployment created |
| Deployments | deployment.ready | Deployment ready |
| Deployments | deployment.succeeded | Deployment succeeded (all checks passed) |
| Deployments | deployment.promoted | Deployment promoted to production |
| Deployments | deployment.error | Deployment failed |
| Deployments | deployment.canceled | Deployment canceled |
| Deployments | deployment.rollback | Instant rollback accepted |
| Deployments | deployment.cleanup | Deployment permanently deleted |
| Deployments | deployment.check-rerequested | Deployment check rerequested |
| Deployments | deployment.integration.action.start | Integration deployment action started |
| Deployments | deployment.integration.action.cancel | Integration deployment action canceled |
| Deployments | deployment.integration.action.cleanup | Integration deployment action cleaned up |
| Projects | project.created | Project created |
| Projects | project.removed | Project removed |
| Projects | project.domain.created | Domain added to project |
| Projects | project.domain.deleted | Domain removed from project |
| Projects | project.domain.moved | Domain moved between projects |
| Projects | project.domain.updated | Project domain updated |
| Projects | project.domain.verified | Project domain verified |
| Projects | project.domain.unverified | Project domain unverified |
| Projects | project.env-variable.created | Environment variable created |
| Projects | project.env-variable.updated | Environment variable updated |
| Projects | project.env-variable.deleted | Environment variable deleted |
| Domains | domain.created | Domain added to account |
| Domains | domain.renewal | Domain renewed |
| Domains | domain.renewal-failed | Domain renewal failed |
| Domains | domain.auto-renew-changed | Auto-renewal setting changed |
| Domains | domain.certificate-add | SSL certificate added |
| Domains | domain.certificate-add-failed | SSL certificate add failed |
| Domains | domain.certificate-renew | SSL certificate renewed |
| Domains | domain.certificate-renew-failed | SSL certificate renewal failed |
| Domains | domain.certificate-deleted | SSL certificate deleted |
| Domains | domain.dns-records-changed | DNS records changed |
| Domains | domain.transfer-in-started | Domain transfer started |
| Domains | domain.transfer-in-completed | Domain transfer completed |
| Domains | domain.transfer-in-failed | Domain transfer failed |
| Integrations | integration-configuration.removed | Integration removed |
| Integrations | integration-configuration.permission-upgraded | Integration permission upgraded |
| Integrations | integration-resource.project-connected | Integration resource connected to project |
| Integrations | integration-resource.project-disconnected | Integration resource disconnected from project |
Signature Verification
Dispatch automatically verifies every incoming Vercel webhook using the signing secret you provide.
- Header:
x-vercel-signature - Algorithm: HMAC-SHA1 over the raw request body, hex-encoded
- Secret format: plain string shown once when the webhook is created in Vercel
Requests with missing or invalid signatures are rejected with 401 Unauthorized.
Disconnect
To stop receiving events, delete the webhook from your Vercel team under Team Settings → Webhooks, then archive or delete the source in Dispatch.