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.
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
Every weekday morning it fetches yesterday's figures from your metrics source.
Each figure is compared with the day before to show what changed.
The report is posted to your Slack channel.
The same report is emailed to managers from your Outlook address.
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
Build your own
Need it to work differently?
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
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?
Can it add a sentence of commentary?
Can I choose who gets the email?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Check links in reported emails for phishing
Links in new mail are checked against a threat database and your security channel hears about any that look dangerous.
See how it worksSummarise Microsoft 365 outage emails in Slack
Microsoft service-health emails become a short Slack post saying what is broken and who is affected.
See how it worksSend contact form enquiries to Slack and confirm by email
Each enquiry appears in Slack straight away and the person who wrote in gets a confirmation from your Outlook address.
See how it worksKeep exploring
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.