Skip to main content
Instead of manually working through dashboards before every metrics review, let a scheduled DinoAI agent do the first pass: query the warehouse, compare this week against last, and post a short “what moved, what didn’t” digest to Slack every Monday morning. This guide starts deliberately small: one agent YAML and one Bolt schedule. Once the basic loop works, the Extend the Agent section shows where to take it next.
Before You Start

What You’ll Build

  • One DinoAI agent (weekly-metrics-reporter) that queries your marts, compares the last complete week against the previous one, and posts a digest to Slack
  • A Bolt schedule that runs it every Monday at 08:00
The digest is a single Slack message:
1

Create the Agent YAML

Commit this file at .dinoai/agents/weekly-metrics-reporter.yml. Replace the table names and metric list in the goal with your own; three to five metrics is plenty to start.
.dinoai/agents/weekly-metrics-reporter.yml
Add your warehouse’s metadata tools to the allowlist so the agent can look up table structure instead of guessing, for example list_all_columns_in_snowflake_table on Snowflake or list_all_columns_in_bigquery_table on BigQuery. See the Tools Reference.
2

Run It Once

In the Bolt schedule editor, click Add command, pick Run Paradime DinoAI Agent, choose weekly-metrics-reporter, and set the task to:
Save and hit Run now. The agent’s messages stream into the Bolt run logs, and the digest lands in your Slack channel. Use the first couple of runs to tune the metric list and the wording in the goal until the digest reads the way you want.
Knowing the agent is alive. A full run can take a few minutes, so the template makes the agent announce itself: a kickoff line when the run starts and a short progress note if a step runs long, both in the same Slack thread as the final digest. For a closer look while a run is in flight, the Bolt run logs stream every agent message live, and the background agent UI shows per-session traces of each tool call and lets you pause a run that has gone off on a tangent.
3

Schedule It Weekly

Set the schedule’s trigger to a Monday morning cron. If you manage schedules as code:
Bolt schedules YAML
Monday 08:00 gives the weekend’s data time to land and puts the digest at the top of the channel when the week starts. That’s it: the basic loop is done.

Extend the Agent

Each of these is an independent upgrade. Add them one at a time, only when the basic digest starts feeling too shallow. Drill down in the Slack thread. This one needs no setup at all. Mention the bot in the digest thread (“does that drop hold if you exclude the US?”) and it resumes the same session with full context, runs the extra queries, and answers in the thread. See Slack Agent. Break metrics down by segment. Add a line to the goal telling the agent to split any moved metric by market, device OS, or another user attribute, so the digest says “driven by Android” instead of just “moved”. Move definitions into a spec file. When the metric list outgrows the YAML, put it in a markdown file like .dinoai/specs/weekly-metrics.md (metrics, table locations, significance thresholds, minimum slice sizes) and change step 1 of the goal to “Read the spec file first”. Analysts then evolve definitions with a normal PR, without touching the agent. Check pipeline health before reporting. Add list_bolt_schedules and get_bolt_run_logs to the allowlist and tell the agent to verify the schedule that builds your marts succeeded for the reporting window. This is what separates “conversion dropped” from “the table didn’t refresh”. Attach business context. If you keep a table of business events (campaigns, outages, releases), tell the agent to check it for events that overlap a movement and mention them in the digest. Add a monthly deep dive. Create a second Bolt schedule that triggers the same agent with a different task message, for example “Compare the last complete month against the previous three months”, timed a day before your monthly review.