Vercel deployment alerts to Slack, Telegram, and WhatsApp

Vercel deployment alerts to Slack, Telegram, and WhatsApp

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 eventSuggested levelWhy it matters
deployment.errorCriticalProduction (or preview) did not ship
deployment.canceledWarningSomeone aborted a release
deployment.succeeded / deployment.readyInfoDashboard history; do not flood Slack
deployment.createdInfoOptional 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)

  1. Create a project at app.thealerthub.com and copy the secret key.
  2. Build the URL (widgets below).
  3. 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.)

Generate Webhook URL
GET POST
https://api.thealerthub.com/sendAlert?ah_key=YOUR_KEY&ah_source=Vercel&ah_title=Vercel+deploy+failed%3A+%7B%7Bpayload.deployment.meta.githubCommitRef%7D%7D&ah_level=critical&ah_description=Project+%7B%7Bpayload.deployment.name%7D%7D+error.+URL+%7B%7Bpayload.deployment.url%7D%7D+%E2%80%94+%7B%7Bpayload.deployment.meta.githubCommitMessage%7D%7D

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)

Generate Webhook URL
GET POST
https://api.thealerthub.com/sendAlert?ah_key=YOUR_KEY&ah_source=Vercel&ah_title=Vercel+ready%3A+%7B%7Bpayload.deployment.url%7D%7D&ah_description=Deployment+succeeded+for+%7B%7Bpayload.deployment.meta.githubCommitRef%7D%7D

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_source Vercel vs Netlify.
  • 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