Daily Vercel domain health check in Slack

Catch expiring registrations, broken nameservers, and unverified domains across your Vercel account before they take a site offline.

Agentic Task
VercelSlack BotEngineeringOperationsNotifications & AlertsResearch & Monitoring

Every morning at 8am in my local timezone, run an agent that audits every domain in my Vercel account and alerts me in Slack if anything is at risk of taking a site offline. Trigger is cron, once per day.

Step 1: Use Vercel's List Domains to fetch the full inventory of domains on the account. Page through if there are more than fit in one response.

Step 2: For each domain, call Vercel's Get Domain to read its expiration date, verification status, auto-renew setting, nameserver configuration, and whether the registrar is Vercel or external.

Step 3: Categorize every domain into one of three buckets. Critical: expiring within 14 days, OR not verified, OR nameservers are misconfigured (intended Vercel nameservers but pointing elsewhere, or vice versa). Warning: expiring within 30 days, OR auto-renew is turned off on a Vercel-registered domain. Healthy: everything else. For externally registered domains the expiration date may be unknown, so only the verification and nameserver checks apply to those.

Step 4: If any domains are in the critical or warning buckets, use Slack Bot's Send a Message to post a single message into the #ops channel (let me pick the exact channel when I set this up). Group the message by bucket with critical first, then warning. For each domain include the domain name, what is wrong in plain English, a one-line remediation (renew the registration, turn auto-renew back on, update the nameservers at the registrar, re-add the TXT record to verify, etc.), and a direct link to that domain's Vercel settings page in the format https://vercel.com/[team-slug]/domains/[domain].

Step 5: If every domain is healthy, do not post anything. Staying silent on good days is intentional so the channel does not become noise.

Use the Slack Bot integration for the alert (acts as a bot, posts into the channel). The Vercel List Domains and Get Domain operations are the only Vercel calls needed.

Additional information

What does this prompt do?
  • Sweeps every domain in your Vercel account once a day and checks expiration, verification, auto-renew, and nameservers.
  • Sorts the results into critical, warning, and healthy buckets so the most urgent risks rise to the top.
  • Posts a prioritized Slack alert with one-line fixes and a direct link to each domain's Vercel settings.
  • Stays silent on healthy days so the ops channel does not turn into noise the team learns to ignore.
What do I need to use this?
  • A Vercel account with access to the domains you want monitored.
  • A Slack workspace and an ops channel where alerts should land.
  • A rough idea of which domains are business critical, so you can tune the thresholds later.
How can I customize it?
  • Change the run time, or move it to twice a day for high-stakes domains.
  • Adjust the warning and critical windows (default 30 and 14 days) to match your renewal lead time.
  • Switch the destination channel, or @mention a specific on-call group when something hits critical.

Frequently asked questions

Will this work if some of my domains are registered outside Vercel?
Yes. For externally registered domains, Vercel does not return an expiration date, so the check focuses on verification status and nameserver configuration. You will still get alerts for unverified or misconfigured external domains.
What happens on a day when every domain looks fine?
Nothing. The agent stays silent on healthy days on purpose, so the channel only lights up when there is something to act on. That keeps the signal strong.
Can I change how soon I get warned before a domain expires?
Yes. The default is a warning at 30 days and a critical alert at 14 days, but you can ask the agent to use any window that matches your renewal process.
Does this renew domains for me or just notify?
It only notifies. Each alert includes a one-line remediation and a link to the Vercel settings page for that domain, so you or your team can take action with one click.
Where does the Slack message get posted?
Into whichever channel you pick when you set the workflow up. Most teams choose an existing ops, infra, or platform alerts channel.

Stop finding out a domain expired from a customer.

Connect Vercel and Slack once, and Geni quietly checks every domain each morning, only pinging you when something actually needs a fix.