The moment it happens
Get a Slack message when Vercel spend nears budget
When your bill reaches 50%, 75% or 100% of your budget, the team sees the current spend straight away.
- Runs
- The moment it happens
- Apps
- Vercel
- AI
- Not needed
- Access
- none for receiving; Owner or Billing role to configure
Send this to your assistant
Create a ClickRuntime automation: give me a link to add as the budget webhook in Vercel. When it fires, post to #finance in Slack the current spend, the budget amount and which threshold we just reached.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Vercel usage billing can surprise people. A traffic spike from a launch, an image optimization loop, or a function stuck in retries can burn through a month's budget in days, and the first sign is often the invoice. Finance asks why the bill is double the forecast, and the engineer who changed the caching headers three weeks ago has to reconstruct what happened.
Vercel can send a webhook when spend crosses a threshold you set on your budget. When that event arrives, the automation reads currentSpend, budgetAmount and thresholdPercent from the payload and posts a Slack message such as 'Spend is at 75% of the budget', with the dollar figures included. You get one message each at 50%, 75% and 100%.
It is useful for startups with a card on file and no spending cap, and for agencies who bill client projects to a shared team.
What you get out of it
Time to react before the cap
A message at 50% leaves half the month's budget for you to investigate. Catching a runaway function at that point costs a fraction of what discovering it at invoice time does, and you still have room to fix it.
Spend questions get an answer on the day
The Slack message carries the current spend and budget amounts, so whoever sees it knows immediately whether this is a small drift or a serious overrun and who on the team should look into it.
Three thresholds, three levels of urgency
The 50% message is informational, 75% is a prompt to check usage, and 100% is a call to act. The team learns to read the escalation instead of treating each ping the same way.
Finance hears it from engineering first
Posting into a shared channel means the budget owner sees the same message as developers. Nobody has to relay bad news after the fact, and the conversation about limits and approvals starts earlier.
Pairs with the cause while it is fresh
Overspend usually follows a recent deploy or a traffic event. An alert the same day makes it easy to connect the spike to a change that is still in everyone's memory and can still be rolled back.
How it works
What happens, step by step
When your Vercel bill reaches 50%, 75% or 100% of your budget, Vercel tells ClickRuntime straight away.
ClickRuntime reads the current spend, the budget and the threshold reached.
It posts them to your Slack channel.
Before it runs live
- Connect Vercel
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Vercel steps into one automation
Under the hood
The code that runs this automation
import hashlib
import hmac
from clickruntime import on_event, credentials, notify
@on_event
def handle(event):
secret = credentials.secret("VERCEL_WEBHOOK_SECRET").encode()
expected = hmac.new(secret, event.body.encode(), hashlib.sha1).hexdigest()
if not hmac.compare_digest(expected, event.header("x-vercel-signature") or ""):
return {"ok": False}
p = event.json.get("payload", event.json)
notify.slack(f"Vercel spend reached {p['thresholdPercent']}% of budget: "
f"${p['currentSpend']:,.2f} of ${p['budgetAmount']:,.2f}", channel="#finance")
return {"threshold": p["thresholdPercent"]}FAQ
Common questions
Where do I set the budget thresholds in Vercel?
Will I get the alert twice if spend hovers around 75%?
What does the Slack message actually say?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a Slack alert when a production deploy fails
When a production deployment errors, you hear about it within minutes with the project, branch and commit.
See how it worksGet a weekly deploy summary per project
Each Monday you see how many deployments succeeded and failed in every Vercel project last week.
See how it worksSend every failed deploy to the team channel
Any failed deploy in your team, preview or production, is posted for everyone to see along with who started it.
See how it worksKeep exploring
Set up “Get a Slack message when Vercel spend nears budget” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.