Six queries, one Slack message, once a morning. The agent does not write SQL, does not choose what to measure, and does not explain anything, so the run is short and identical every day. OpenCode is lightweight to point at that kind of focused job and lets you pick a model sized for what is really a transcription task with a couple of comparisons in it.
Run a staged conversation — no account needed. The agent handles it for real while a simulated world answers its tool calls; nothing touches real accounts, and nothing is actually sent.
Morning metrics 12 August
All seven queries returned inside nine seconds. Daily active users came back at 41,208 against 39,940 yesterday, checkout conversion at 2.31 percent against 2.44, new paid signups at 186, and refunds at 12,340.55 BRL. The events query scanned 84 GB, in line with every other morning this month.
Using this template drops you into a guided setup. It asks exactly this, nothing else:
Connect Google BigQuery
One sign-in. The agent acts through your account, scoped to what this template uses.
Connect Slack
One sign-in. The agent acts through your account, scoped to what this template uses.
Metrics queries
The exact SELECT statements to run each morning, each with the name it should carry in the digest. Include the partition filter every table needs, because the agent adds nothing to what you write, and this list is the only SQL it will ever run.
Digest style
How the digest should read - which metric leads, what counts as an outlier worth flagging (checkout conversion under 2 percent, refunds above 5,000), and who to tag when a query fails.
Runs on OpenCode
Preselected for this page — connect your OpenCode account during setup, or switch to NoClick's built-in models with one click.
Watch it handle a test run
A staged conversation against a simulated world — then it’s live.
The list runs in order, the sections appear in order, and an empty section says none today rather than disappearing. Predictability is the entire feature.
Values are copied as returned, with thousands separators as the only formatting permitted. There is not much here that a larger model does better.
Less than on most templates, and not zero. Where it shows is discipline: leaving a null as a null, printing a zero beside yesterday's real number, and not quietly dividing two metrics to produce a third. Weak models try to help. Compare two on a morning where a partition failed to land.
Free to start. Guided setup, a test run against staged conversations, and it's live.