Weekday morning KPI pulse from Metabase to Slack

By General Input

Every weekday at 9am, get a written Slack summary of your Metabase numbers that leads with what changed, not a wall of charts.

Integrations

  • Metabase
  • Slack

Type

Agentic Task

Categories

  • Operations
  • Product

Build me a weekday-morning KPI pulse that posts an AI-written digest of our Metabase numbers to a Slack channel. The differentiator vs. Metabase's native dashboard subscriptions is the written narrative and the prioritization of what matters today, so bias the message toward 'what changed' rather than dumping every number.

Trigger: cron, every weekday (Monday through Friday) at 9:00am in my timezone. Make the schedule, the Metabase question list, the threshold rules, and the destination Slack channel configurable so I can edit them without rewriting the workflow.

Inputs I want to configure at the top of the prompt:

1) A list of Metabase saved-question (card) IDs that represent our core KPIs, or alternatively a Metabase collection name/ID whose questions should all be included. If a collection is given, resolve it to the list of cards inside it at run time.

2) A short threshold spec in plain English, e.g. 'flag if daily signups drop below 50, flag if 7-day churn rises above 3%, flag any KPI that moves more than 15% day-over-day'. The agent should interpret these rules against the latest rows.

3) The Slack channel to post to (channel ID or name), and the tone/length of the message (default: concise, scannable, 6-10 lines).

Steps the agent should take each run:

Step 1. For each configured Metabase card, use the Metabase 'Run Card Query' operation to execute the saved question and pull back the latest result rows and column metadata. If a collection was configured instead of individual IDs, first list the cards in that collection and then run each one. If any single card errors (permission, broken SQL, etc.), capture the error message, skip that card, and continue.

Step 2. For each card, identify the headline number(s) and, where the result includes a time series or prior period, compute day-over-day and week-over-week movement. If the card only returns a single scalar, just report it. Detect anomalies (large swings, sign flips, threshold breaches per the configured spec) and tag them as 'movers' to surface first.

Step 3. Compose a short Slack message in Slack mrkdwn. Structure: a one-line header with today's date and a one-sentence executive read ('Signups soft, revenue holding, support backlog up sharply'), then 3-6 bullets that lead with the movers and threshold breaches, each bullet phrased as 'KPI name: value (delta vs yesterday, delta vs last week), one-sentence color'. After the movers, a compact 'Everything else' section with the remaining KPIs as a tight list. End with a 'Drill in' line that links each KPI to its Metabase card URL using <baseUrl/question/{cardId}|Card name> mrkdwn links. If any cards failed to run, add a final 'Heads up' line listing those names so I know to fix them.

Step 4. Use the Slack 'Send a Message' operation to post the composed message to the configured channel. Post as the authenticated user (this uses the slack user-token integration, not slack-bot). Plain text + mrkdwn is fine; no need for Block Kit unless it makes the digest meaningfully clearer.

Important behavior: do not paste raw tables into Slack. The whole point is the written prioritization. Keep the message short enough that someone reads it on their phone in 30 seconds. If nothing notable changed, say so explicitly ('Quiet morning, all KPIs within normal range') rather than padding the message.

Integrations to use: Metabase (Run Card Query) and Slack (Send a Message). Workflow type: agent.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teamsCatch feature flags that never got switched on in productionKajabi customer support console for member access fixes