Get a weekly business health report texted every Monday
A weekly business health report texted every Monday works when one Zo automation reads your numbers, compares them to last week, and keeps the text short.
A weekly business health report is one short automated message that pulls your key numbers, compares them to last week, and flags what moved before you open your laptop. In Zo Computer, one automation runs early Monday, reads your sources, and texts you a short summary. Deltas and one or two flags, not a wall of data.
Key takeaways
- A useful weekly health check is week-over-week change plus a flag or two, not a dump of every metric. Send what you would act on.
- SMS is the right channel because it is the first thing you see. Tell the automation how short to keep the text, and send the full breakdown to email.
- The report reads its own prior-week file to know last week's figures. Between-run state lives in a file, never in model memory.
- Schedule it for "every Monday," not "every day." One wrong word turns a ritual into a daily interruption you will mute by Wednesday.
- Every scheduled run spends AI credits, even on a quiet week when nothing changed. Worth knowing before you build a standing report.
- Tell the automation to say so when a source fails. A lapsed token reads zero, and a zero looks exactly like a business that died over the weekend.
What is a weekly business health report?
A weekly business health report is a scheduled summary of your core numbers, sent once a week, that shows how each one changed from the previous week and flags anything that needs attention. The point is not completeness. It is a signal you can read in fifteen seconds and act on, which is why the good version fits in one text.
Zo Computer is an AI-native personal cloud computer: a persistent Linux server holding your files, a real browser, and connections to over 1,000 apps, with an AI that runs it on a schedule you write in plain English. That last part makes this report possible without code. Describe the job once, and it runs itself every Monday.
What belongs in the report, and what to cut
The failure mode is obvious once you name it. You collect every number you can reach, the message runs long, you skim it, then you ignore it. A weekly kpi text earns its place by being ruthless. The filter is one question: would this number, moving, change something you do this week? If not, it stays out.
| Put it in | Leave it out | Why |
|---|---|---|
| Week-over-week change on 3 to 5 core numbers | The raw current value with no comparison | A number with no baseline tells you nothing |
| One or two flags on what moved most | Every metric you happen to track | Flags are the report. The rest is noise |
| Revenue, new customers, churn, the input that predicts them | Vanity counts you never act on (impressions, raw pageviews) | A metric that never changed a decision will not start now |
| A direction on each number, up or down or flat | A precise decimal you do not need on a phone | Direction fits a text. Four decimals do not |
| A note when a source could not be read | A silent zero from a failed pull | A missing number and a real zero are different facts |
How do you build the Monday-morning automation?
An automation is Zo running a plain-English prompt on a schedule, using the same files, tools, and connected apps it uses in a normal chat. It runs quietly by default and writes to your chat history, and delivery is opt-in. Four steps.
- Name your sources. Decide where each number comes from: a workspace file, a spreadsheet, a connected app you already use for payments or analytics, or a number read off a dashboard. Zo reads a public page directly. For a page behind a login, Zo uses its own real browser with your signed-in session, which is slower, so prefer a connected app or a file when one exists.
- Pick a prior-week file. The report needs last week's numbers to compute a delta, and model memory will not hold them. Have the automation write this week's figures to a file like metrics/weekly.json and read that same file next run.
- Write the schedule in plain English. Tell Zo "every Monday at 5:30am" and it converts that to a rule and confirms before saving. Every Monday, not every day, because that one word is the difference between a report you read and one you mute.
- Turn on SMS delivery and set the length yourself. Name a length in the prompt so the text stays glanceable, and route the full breakdown to email for the mornings you want to dig in. Zo aims for short replies over SMS by default, so state the length you actually want rather than assuming a cap.
The full copy-paste prompt
This prompt is a starting point, not a fixed script. Every bracketed line is meant to be edited: swap in your own sources, your own timezone, your own file path, your own numbers. Nothing here assumes you use any particular tool. If a source listed below is not something you have, delete that line and write the one you do have. Zo reads the prompt as plain instructions, so it changes behavior when you change the words.
It computes the change against the saved file, texts a tight summary, and refuses to invent a zero.
Every Monday at 5:30am [YOUR TIMEZONE, e.g. America/New_York], build my weekly business health report.
Sources: (edit these. one line per source. delete what does not apply)
- [whatever you use for sales or payments: this week's revenue, refunds,
and new customers]
- [your spreadsheet or workspace file, e.g. /home/workspace/metrics/manual.csv,
for anything I log by hand]
- [any dashboard I would otherwise open myself: read (URL) and pull
(which number). Use the browser if it needs my login]
Metrics I care about: (edit these too)
- [metric 1], [metric 2], [metric 3]
Steps:
1. Read the prior-week figures from /home/workspace/metrics/weekly.json.
If that file does not exist yet, treat this as the first run and say so.
2. Pull this week's numbers from the sources above.
3. For each number, compute the change versus last week and the
direction: up, down, or flat.
4. If any source fails, errors, or returns nothing, name that source as
"could not read" in the report. Do NOT report it as zero.
5. Write this week's numbers to /home/workspace/metrics/weekly.json,
overwriting last week's, so next Monday has a baseline.
Then TEXT ME a short summary [set your own length, e.g. "about 120 words"
or "5 lines max"]:
- Lead with the single most important move.
- List 3 to 5 numbers with their week-over-week direction and change.
- Add one or two flags on anything that moved more than 15% or any
source that could not be read.
- Plain text, no preamble, no sign-off.
Send this ONLY to me by SMS. Do not message anyone else. Email me the
full breakdown with every number and its exact values as a second step.The Do not message anyone else line matters more than it looks, and the failure modes below explain why.
Why SMS, and how to split the message
SMS wins because you read it without deciding to. The constraint is attention, not the carrier: a text carrying every number stops being something you read at a glance. The split solves it. Glance at the text in bed, open the email when a flag makes you want the detail.
| Channel | Carries | Length |
|---|---|---|
| SMS | The headline move, 3 to 5 deltas, one or two flags | Short enough to read at a glance |
| Every number, exact values, the week-over-week table | As long as it needs to be |
Telegram is the other fast channel if you want images and files back inline. The messaging channels guide covers it.
How does it know last week's numbers?
It reads a file it wrote last week, which is the whole reason the report can show a delta. Each run is its own fresh session, so nothing carries from one Monday to the next unless you save it. You never want a comparison depending on recall anyway. Put the state in a file.
Each run reads weekly.json, computes changes against it, then overwrites it with this week's figures. Next Monday, that file is last week. A CSV, a JSON file, or a small SQLite database all work, and Zo reads any of them directly. If you built a spreadsheet you can query in the previous article, that queryable file is exactly what this automation reads.
What goes wrong
Standing reports fail in a few predictable ways, and knowing them ahead of time is cheaper than finding out on a Monday.
Every run costs credits, even the boring weeks. A scheduled automation is a full Zo session whether or not the news is interesting. Weekly is cheap. The mistake is reaching for a tighter interval you do not need, because a weekly report does not want a daily schedule.
A lapsed token reads zero, and zero looks like death. This is the dangerous one. A connected app's authorization expires, the schedule keeps firing, the call quietly fails, and the run looks fine from outside. Your Monday text says revenue is zero, and for a bad thirty seconds you think the business fell off a cliff. The fix is in the prompt: name any source it could not read instead of reporting a zero. When a report looks wrong, open the saved run, because every run is a real conversation and reading the run history shows you the exact tool call that came back empty.
Fuzzy "how are we doing" judgment. Ask for a vibe and you get a vibe. "Tell me if things look bad" leans on the model's guess, while "flag anything down more than 15% versus last week" is a line it cannot misread. Keep numbers on hard thresholds, and save fuzzy judgment for soft calls. The conditional automations guide covers when a fuzzy condition is fine.
"Every day" when you meant "every Monday." One word in the schedule turns a weekly ritual into a daily interruption that gets muted fast. Zo confirms the schedule before it saves, so read that confirmation. A report landing on a Tuesday or at 1am usually means timezone drift, which is why the prompt pins the zone.
The send guardrail. This automation does text you on its own every Monday, because turning on SMS delivery is the whole point and you are the only recipient. Be precise about that: it messages you, its owner, and it must never message a customer, a teammate, or anyone else. Keep it that way by giving the persona only the SMS channel back to you, no other outbound scopes, and writing the instruction so it only ever texts you.
Frequently asked questions
What is a weekly business health report?
It is a scheduled once-a-week summary of your core business numbers that shows how each changed from the previous week and flags what needs attention. In Zo Computer it is a single automation that reads your sources, compares against a saved file, and texts you the result before the week starts.
How do I get my business metrics texted to me automatically?
Set up one Zo automation with a plain-English schedule like "every Monday at 5:30am," point it at your data sources, and turn on SMS delivery. Zo reads the numbers, writes the summary at whatever length you asked for, and sends it to your phone. No code, no cron job.
How long should the SMS report be?
Short enough to read without scrolling and thinking about it. You set this in the prompt, so pick a length that fits your own habit. Keep the SMS to the headline plus three to five deltas and a flag or two, then send the full breakdown by email.
How does the automation compare this week to last week?
It reads a file it wrote on the previous run, computes the change against those figures, then overwrites the file with this week's numbers. State lives in a file because each run is a fresh session and model memory is not a store you can count on across a week.
What happens if a data source fails on a Monday?
If you built the prompt correctly, the report names the source as unreadable rather than reporting a zero. A silent zero from a lapsed token looks identical to a real collapse, so telling the automation to flag a failed pull is what keeps you from panicking over a connection problem.
Can the automation message my customers or team?
No, and you should keep it that way. It texts you because you are the report's recipient. The safe pattern is a persona that has only the SMS-to-you channel and no other outbound scopes, so an unattended run cannot message anyone else.
Next in this series
This is the capstone of the "Know your numbers" shelf. You built a live metrics dashboard that keeps your source of truth current, then turned a plain spreadsheet into a database you can ask questions. This report is the push side: the same numbers, sent to your phone. For the wider version that pulls calendar and inbox alongside the metrics, the morning briefing from the previous shelf is where that lives.
Put it to work
Try this in your Zo
Open Zo, connect the tools this guide uses, and ask it to build the workflow with you.
Try ZoContinue learning
How to build a live metrics dashboard that updates itself
A live metrics dashboard in Zo is an automation writing numbers to a file plus a page that reads it. No BI tool rented. Here is the full build.
TutorialHow to Build an AI Morning Briefing That Replaces Six Tabs
Build an AI morning briefing in Zo that sends today's calendar, overnight VIP mail, and your top three priorities. Copy-paste prompts inside.