Skip to content

On a schedule

Post a daily KPI report to Slack and email it to managers

Every weekday morning your key numbers, with the change from yesterday, are in Slack and in managers' inboxes.

Runs
On a schedule
Apps
Outlook, Slack
AI
Optional
Access
chat:write; Mail.Send

Send this to your assistant

Create a ClickRuntime automation: every weekday at 8am, pull yesterday's KPIs from our metrics endpoint, post them to #leadership with the change from the day before, and email the same report to the managers from Outlook.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

In many small companies someone spends the first half hour of each day pulling numbers from a dashboard and pasting them into a message. When that person is away, the report doesn't happen and decisions get made on gut feel.

Sending the same figures automatically every weekday keeps the team and the managers looking at the same numbers, and the change from yesterday shows straight away whether something needs attention.

What you get out of it

  • Same numbers for everyone

    The team in Slack and the managers by email see one report. There's no arguing over which spreadsheet is right.

  • Changes stand out

    Each figure shows how it moved since yesterday. A drop in sign-ups or a spike in refunds is obvious at a glance.

  • No morning busywork

    Nobody has to copy figures out of a dashboard before their first coffee. The report arrives whether or not anyone is in.

  • Reaches managers who avoid Slack

    Some managers live in email. They get the same report in their inbox without joining another channel.

How it works

What happens, step by step

  1. Every weekday morning it fetches yesterday's figures from your metrics source.

  2. Each figure is compared with the day before to show what changed.

  3. The report is posted to your Slack channel.

  4. The same report is emailed to managers from your Outlook address.

  5. Today's figures are kept so tomorrow's report can compare against them.

Before it runs live

  • Connect Outlook
  • Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)

What you get

RunsOn a schedule
Post a daily KPI report to Slack and email it to managerstoday, 9:00Succeeded
Slack · #leadership:bar_chart: Daily KPIs — Signups: 142 (+18) · Revenue: 9,840 (−310) · Churned: 3 (+1)

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Google Sheets
  • Combine it with other Outlook and Slack steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
daily_kpi_report_to_slack_and_outlook.pyexample
GRAPH = "https://graph.microsoft.com/v1.0"
from clickruntime import on_trigger, credentials, http, state, notify

METRICS_URL = "https://reports.example.com/kpis/yesterday"
MANAGERS = ["ops@example.com", "finance@example.com"]

@on_trigger
def run(event):
    kpis = http.get(METRICS_URL, headers={"Authorization": f"Bearer {credentials.secret('METRICS_TOKEN')}"}).json()
    prev = state.get("prev") or {}
    lines = []
    for name, value in kpis.items():
        diff = value - prev[name] if name in prev else 0
        lines.append(f"{name}: {value:,} ({diff:+,})")
    report = "\n".join(lines)
    notify.slack(f":bar_chart: Daily KPIs\n{report}", channel="#leadership")
    h = {"Authorization": f"Bearer {credentials.connection('microsoft', 'work')}"}
    mail = {"message": {"subject": "Daily KPI report", "body": {"contentType": "Text", "content": report},
                        "toRecipients": [{"emailAddress": {"address": a}} for a in MANAGERS]}}
    http.post(f"{GRAPH}/me/sendMail", headers=h, json=mail).raise_for_status()
    state.set("prev", kpis)
    return {"metrics": len(kpis)}

FAQ

Common questions

Where do the numbers come from?
Any source with a web address that returns your figures, such as your own reporting endpoint, a database view or a sheet. You set it once.
Can it add a sentence of commentary?
Yes. AI can add one line pointing out the biggest change. It is optional and the figures are always shown as they are.
Can I choose who gets the email?
Yes. You list the managers' addresses, and you can change the list at any time.
What permissions does it need?
chat:write; Mail.Send. Nothing else in your accounts is used.
Does it need AI?
No, but you can ask for an AI step (for example a summary). It then uses ClickRuntime's built-in AI allowance.
How many runs does it use?
One run each time it runs (on a schedule). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Post a daily KPI report to Slack and email it to managers” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.