Every 5 minutes
Hear when a production deploy is live
Slack tells you as soon as a new production deploy is ready, with its URL.
- Runs
- Every 5 minutes
- Apps
- Netlify
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: check every 5 minutes for new Netlify production deploys that are ready and post the deploy URL to #releases in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
After merging to main, a developer or product owner often keeps refreshing the Netlify dashboard or the live site, waiting to see whether the new version is live. Builds can take from one to ten minutes, and a person who steps away misses the moment. Marketing then announces a feature before it has shipped, or support tells a customer to try again while the old version is still serving.
Every five minutes ClickRuntime lists the site's deploys, finds ones in the ready state that it has not reported, and sends a notification with the site name, branch, commit message and deploy time. A production deploy that goes live produces one short message within about five minutes.
People who ship several times a day use it as a quiet record of what went out and when.
What you get out of it
You know when it is safe to announce
The message says the production deploy is live, so the launch tweet or customer email can go out when the site really has the change. No more checking the URL by hand.
Stakeholders see progress without the dashboard
Product managers and support leads who do not use Netlify get a line in their inbox or channel. They can follow releases without a login or asking an engineer. They can follow every release without a login or asking an engineer.
A timeline of releases builds up
Each confirmation lists the commit and time. When something breaks in the afternoon, you can see which deploy preceded it and that it went live at 14:05. Each confirmation lists the commit and time, so a break at 14:10 is traced to the deploy.
Developers can move on after merging
Instead of watching a build log, they get a ping and carry on with the next task. Those waiting minutes add up across a week. Those waiting minutes add up across a week of frequent releases.
Confidence that nothing is stuck
If you expected a deploy and no confirmation arrives, you know to check the build. The absence of a message is as informative as the message. If you expected a deploy and nothing arrived, that tells you to check the build.
How it works
What happens, step by step
Every five minutes ClickRuntime checks your Netlify site for production deploys that are live.
It skips the ones it has already announced.
Your Slack channel gets the live URL and the branch it came from.
Before it runs live
- Connect Netlify
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 Netlify steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, notify, state, report_fetched
SITE_ID = "your-netlify-site-id"
def netlify(path, **params):
resp = http.get(f"https://api.netlify.com/api/v1/sites/{SITE_ID}/{path}", params=params,
headers={"Authorization": f"Bearer {credentials.secret('NETLIFY_TOKEN')}"})
resp.raise_for_status()
return resp.json()
@on_trigger
def run(event):
last = state.get("last_published") or ""
ready = [d for d in netlify("deploys", per_page=20, state="ready")
if d["context"] == "production" and (d.get("published_at") or "") > last]
report_fetched(len(ready))
if not ready:
return {"new": 0}
for d in ready:
notify.slack(f"Deployed to production: {d['deploy_ssl_url']} ({d.get('branch')})", channel="#releases")
state.set("last_published", max(d["published_at"] for d in ready))
return {"new": len(ready)}FAQ
Common questions
Does it report preview deploys too?
How soon after the deploy do I hear?
What details does the message contain?
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 emailed when a production deploy fails
A broken production build reaches you with Netlify's error message, while branch previews stay quiet.
See how it worksReceive each Netlify form entry by email
Every new submission to your site's form arrives in your inbox with all its fields.
See how it worksSort form entries and send only leads to Slack
Each form entry is marked as lead, support or spam, and only the leads reach Slack with a short summary.
See how it worksKeep exploring
Set up “Hear when a production deploy is live” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.