Vercel emails and the dashboard tab are easy to miss during a launch. Teams already using Netlify outgoing webhooks want the same pattern on Vercel: HTTP POST on deploy events, not another Slack integration to babysit.
Vercel project Webhooks can POST JSON to AlertHub. You template title and description with placeholders, then Slack, Telegram, WhatsApp, Discord, or Teams share the warning/critical events.
What to subscribe to
| Vercel event | Suggested level | Why it matters |
|---|---|---|
deployment.error | Critical | Production (or preview) did not ship |
deployment.canceled | Warning | Someone aborted a release |
deployment.succeeded / deployment.ready | Info | Dashboard history; do not flood Slack |
deployment.created | Info | Optional noise |
Only warning and critical fan out. Successful deploys should stay info unless you are a solo founder who wants a Telegram tap on every production promote.
Payload shapes evolve; nested fields use the same Mustache syntax as Stripe ({{payload.deployment.url}}). If a placeholder renders empty, inspect a delivery in Vercel and adjust — or use the Webhook Builder.
Setup (once)
- Create a project at app.thealerthub.com and copy the secret key.
- Build the URL (widgets below).
- In Vercel: project Settings → Webhooks → add endpoint → select
deployment.error(and others you want) → paste the URL.
Connect destinations in AlertHub. For CI-as-source-of-truth instead of the host, use GitHub Actions.
Alert 1: Deploy failed (the one you want at 2 a.m.)
If payload.* is empty on your account, try {{deployment.url}} or {{type}} after the first delivery. The event type field is a reliable fallback title: Vercel: {{type}}.
Alert 2: Production succeeded (info only)
Create a second Vercel webhook for deployment.succeeded / deployment.ready with ah_level=info so it never pages WhatsApp.
Alert 3: Preview vs production
Vercel sends preview and production in the same stream. Put ah_level=critical only on the production webhook, or filter later in n8n if you need branch logic before AlertHub.
Alternatively keep all host events at info and let GitHub Actions if: failure() own the page.
Ideas to squeeze more value
- Same destinations as Netlify. Agencies with mixed hosts use one AlertHub project and
ah_sourceVercelvsNetlify. - Do not put the Slack URL in Vercel. Rotate chat in AlertHub.
- Link the inspect URL in the description when the placeholder exists so on-call jumps straight to the failed deploy.
FAQ
Does Vercel support a query-string GET webhook?
AlertHub accepts POST with JSON body and/or query parameters (ah_key, ah_title, …). Configure Vercel’s HTTP webhook as POST to the generated URL.
Why is this MDX?
So you can copy a live URL from the widget without assembling query strings by hand.
Can I alert from vercel.json?
Host webhooks live in the Vercel dashboard. GitHub Actions remains the portable option.
Next steps
Add the error webhook, connect Telegram, and trigger a broken build. Compare with Netlify deploy alerts.
Related: GitHub Actions failures · Webhook Builder