ActionGrafanaUpdated September 2026
How do I add a Grafana annotation?
Short answer: You can create grafana annotation in Grafana by hand from its own interface, but it won’t repeat itself. On TinyCommand, add the Grafana Create Grafana Annotation action to a workflow, map its 4 inputs from any upstream app, and it runs automatically every time the trigger fires. No code, and a free tier to start.
Inputs
The fields this action accepts.
Every field can be mapped from an upstream trigger, AI step, table row, or hard-coded literal.
| Field | Type | Required | Description |
|---|---|---|---|
Annotation Text text | string | Required | Annotation Text. Example: Deployed v2.1.0 to production |
Tags tags | string | Optional | Comma-separated tags for filtering |
Dashboard UID dashboardUID | string | Optional | Limit annotation to a specific dashboard. Leave empty for global. |
Time (epoch ms) time | string | Optional | Annotation timestamp. Leave empty for current time. |
Sample request
{"text": "e.g. Deployed v2.1.0 to production","tags": "e.g. deployment, production","dashboardUID": "e.g. abc123","time": "e.g. 1700000000000"}
Returns
{"id": 1,"message": "Annotation added"}
Use these fields in downstream nodes for routing, logging, or error handling.
Triggered by
Apps that pair well as the trigger for Create Grafana Annotation.
Any of these apps can fire this action as part of a workflow.
FAQ
Questions about Create Grafana Annotation.
What does the Create Grafana Annotation action do in Grafana?
Posts a vertical line on every dashboard at the configured timestamp with text and tags. The standard "mark when this deploy went live" workflow that helps engineers correlate metric changes with deploy events.
What inputs does Create Grafana Annotation require?
Required: Annotation Text. Every input accepts a static value or a variable from any upstream node in your workflow.
Can I use dynamic inputs from earlier workflow nodes?
Yes. Any field on this action can pull values from upstream nodes, whether that's a form response, a trigger payload, an AI output, or a lookup result.
What happens if Grafana returns an error?
The run history shows the failed step with its input and the error message Grafana returned, so you can fix the input and run the workflow again. Automatic retries are built into HTTP steps only, where you can also set your own retry count and delay.
Does Create Grafana Annotation support batch operations?
Run Create Grafana Annotation inside a loop to process each item in an array. TinyCommand does not throttle calls for you, so for large arrays add a Delay step if you need to stay within Grafana's rate limits.
More actions
Other Grafana actions.
Action
Get Grafana Dashboard
Returns the dashboard's JSON model — panels, queries, data-source references, layout. For dashboards-as-code workflows that diff JSON across environments or back up dashboards to Git.
ActionList Grafana Alert Rules
Returns Grafana-managed unified alerting rules. Useful for inventorying alert configuration and for "audit which alerts haven't fired in 6 months" maintenance workflows.
ActionList Grafana Dashboards
Returns paginated dashboards with optional folder, tag, search filters. Useful for resolving dashboard IDs at workflow setup and for dashboard inventory.
ActionList Grafana Data Sources
Returns every configured data source — Prometheus, InfluxDB, Loki, Tempo, etc. Useful for "audit which data sources have stale connections" maintenance and for resolving data-source names in dashboards-as-code.