How to automate the weekly report you build by hand

Automate the parts that are the same each week, and keep a person on the parts that aren’t. If the report is numbers from one system, formulas, a connected sheet or a BI tool’s scheduled email can build and send it. If it crosses several apps and needs some judgment, record yourself building it once with Ditto AI, and pass in what changes each week.

Split the report into its jobs

A weekly report is usually four jobs stacked together:

  1. Gather: open the sources and pull last week’s numbers.
  2. Assemble: paste them into the sheet, deck or document.
  3. Explain: write the few lines on what moved and why.
  4. Send: email it, post it, or save it where people look.

Gathering and sending are the easiest to automate. Explaining needs judgment, so decide early whether a tool drafts it or you do.

The options

OptionWhat it automatesFits whenWhere it stops
Formulas and connected sheetsGathering and assemblingThe data already lives in spreadsheets or a warehouseSomeone still writes and sends it
BI tool schedulesSending a dashboardThe report is a dashboard people already useIt sends only what the dashboard shows
Zapier or n8n on a scheduleMoving data and sending the messageEvery source has an integration and the steps never changeEvery branch is drawn by hand
An agent from a recordingThe whole routine, across appsSeveral apps, a desktop app, some judgmentIt runs on your Mac, when you start it

Formulas and connected sheets

If the numbers live in other spreadsheets, let formulas fetch them. In Google Sheets, IMPORTRANGE “imports a range of cells from a specified spreadsheet” (Google). For BigQuery data, Connected Sheets “runs queries on BigQuery on your behalf either when manually requested or on a defined schedule” (Google). In Excel, a data connection can refresh when the file opens, or every set number of minutes (Microsoft).

This is the cheapest fix, and often enough. It stops at a filled-in sheet, though: nobody has written the summary or sent it.

BI tool schedules

If the report is really a dashboard, let the BI tool send it. Data Studio, Google’s new name for Looker Studio, can “regularly send a PDF” of a report on a delivery schedule (Google). Power BI subscriptions email “a snapshot and link to the report or dashboard” on a schedule you set (Microsoft).

The limit is the dashboard’s own. The email shows what the dashboard shows, and the commentary is still yours to write.

Zapier or n8n on a schedule

Integration tools can start a flow on a timer. Schedule by Zapier “triggers every week, on the day(s) selected” (Zapier). n8n’s Schedule Trigger runs “workflows at fixed intervals and times” (n8n), and n8n can be self-hosted (n8n).

They suit reports that are pure plumbing: every source has an integration, and the steps never change. A report that needs a desktop app, or a judgment you can’t draw as a branch, is harder. How to automate a workflow across several apps covers the trade-off.

An agent from a recording

Ditto AI takes a different route. You build the report once, as usual, while it records: open the sources, copy the numbers, write the summary, send it. Talk through what changes: “the dates are last Monday to Sunday; the channel stays the same”.

Ditto turns that into an agent: the process, its steps, the inputs that change next time, and a tool for each step. Next week you type or say the new values, such as the dates, or leave the box empty to repeat what you recorded.

Tools come in a fixed order of preference:

  • Apps that need your account: an MCP server from the official MCP registry or npm. Slack is reached through a local server, with a credential you supply.
  • Public pages: one headless browser.
  • Google apps: your own sign-in in Ditto’s browser, until Google verifies Ditto’s app.
  • The Mac itself: local tools, such as Excel, Finder and files, and Apple Notes.

Before the first run, you review every step, input, tool and permission. With Ask before it creates, sends or changes anything turned on, the finished report comes to you as a draft before it goes out. Automate a daily summary post to Slack walks through a task with the same shape.

Which to choose

  • The numbers are already in spreadsheets: formulas or a connected sheet.
  • The report is a dashboard: the BI tool’s schedule.
  • Fixed steps between web apps, sent while you’re away: Zapier or n8n.
  • Several apps, a desktop app, and a few lines of judgment: an agent from a recording.

They combine well. A connected sheet can gather the numbers, and an agent can write the summary and post it.

Honest limits

  • It runs on your Mac, when you start it. The Mac has to be on and awake. If the report must go out at a fixed time whether you’re there or not, use a cloud schedule.
  • Inputs come from what the recording shows. Say which values change as you record, and check the inputs in the review.
  • The summary follows the pattern you recorded. If a week’s story matters, read the draft before it goes out.
  • A weekly report hasn’t been shown end to end on this site yet. Record yours once and review what Ditto found before the first run.
  • A report you build differently every week is a poor fit. Record the version you do most often.

To see each stage from Record to Run, read How Ditto AI works.

Do it once. Then hand it off.

Record a task on your Mac and Ditto AI builds the agent. You read it before it runs.

macOS 15 or later · Apple silicon · Opening it the first time