Mark every GitHub release on Grafana dashboards and Slack
When a new release ships, drop a deployment marker on your Grafana dashboards and post the release notes to a Slack channel.
I want a deterministic code workflow (trigger plus two known operations, not an agent) that runs whenever a new release is published in GitHub, drops a deployment marker on our Grafana dashboards, and posts a heads-up in Slack.
Trigger: a GitHub outgoing webhook on the release event. The workflow should only fire when action equals "published" AND the release is not a draft AND not a prerelease. Skip the run otherwise.
Step 1: Call Grafana's Create Annotation operation. Make it a global, point-in-time annotation, so do not set a dashboard ID or panel ID. Tag it with "deployment" and the repo full name (for example "deployment" and "acme/api"). Set the annotation time to the release's published_at timestamp converted to epoch milliseconds, so the marker lands at the exact deploy moment even if the workflow runs a few seconds late. The annotation text should include the release name, the tag name, and a short excerpt of the release body.
Step 2: Call Slack Bot's Send a Message operation to post in a channel I choose (default to #deploys). The message should include: the release name and tag, a link to the GitHub release (the html_url from the payload), and a link back to our Grafana home (or a specific service dashboard URL I can configure) so on-call can scroll the graph and visually correlate any post-deploy regression. Use the Slack Bot integration so the post comes from a shared bot identity, not a single user.
Please ask me for: (1) the GitHub repo or repos to listen to, (2) the Slack channel to post in, and (3) the Grafana dashboard URL to link to in the Slack message (default to the Grafana home page if I don't have a preference).
Additional information
What does this prompt do?
- Watches your GitHub repo and fires the moment a real release goes out.
- Adds a deployment marker on your Grafana dashboards at the exact time the release was published, so you can spot graph changes that line up with the deploy.
- Posts the release name, tag, and a link to a Slack channel like #deploys so on-call always knows what just shipped.
- Skips draft releases and prereleases so your dashboards stay clean.
What do I need to use this?
- A GitHub repo where your team cuts releases.
- A Grafana account (Cloud or self-hosted) where your team looks at dashboards.
- A Slack channel for deploy notifications, like #deploys.
How can I customize it?
- Change which Slack channel gets the heads-up, or send to more than one.
- Adjust the tags on the Grafana marker so you can filter dashboards by repo, service, or environment.
- Swap the link in the Slack message to point at your favorite service dashboard instead of the Grafana home page.
Frequently asked questions
Will this fire on draft releases or prereleases?
Does this work with self-hosted Grafana, or just Grafana Cloud?
Does the marker land at the right time if the workflow runs a few seconds late?
Do I need to pick a specific dashboard for the marker?
Can I watch more than one repo?
Stop guessing when the deploy went out.
Connect GitHub, Grafana, and Slack once, and every release lands on your dashboards and in your team channel automatically.