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.

Deterministic Code
GitHubGrafanaSlack BotEngineeringOperationsNotifications & Alerts

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?
No. By design, the workflow only runs on full, published releases so your dashboards don't fill up with test markers. You can flip that behavior on if you want prereleases included too.
Does this work with self-hosted Grafana, or just Grafana Cloud?
Both. You connect using a Grafana service account token and the URL where your team opens Grafana in the browser. The marker lands the same way either way.
Does the marker land at the right time if the workflow runs a few seconds late?
Yes. The deployment marker uses the timestamp from the GitHub release itself, not the time the workflow happened to run, so it lines up with the actual deploy on every graph.
Do I need to pick a specific dashboard for the marker?
No. The marker is added globally, so it shows up on every Grafana dashboard. The tags let you filter to a specific repo or service when you want a focused view.
Can I watch more than one repo?
Yes. Tell us which repos to listen to and the same workflow will mark releases from any of them, tagged with the repo name.

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.