Docs
A report that arrives by email
The spreadsheet someone emails you each week, on a dashboard that updates itself.
For anyone who gets a spreadsheet by email every week and wants its numbers on a dashboard without retyping them. You end up with a table that updates itself when the email comes, and a page on it.
- Add the source. A file someone emails gets an address of its own. On Sources, pick A file someone emails. Name it, say who may send to it, and pick Spreadsheet. The address is the name you gave it with a short random tail.
weekly-report-k7m4xq@in.overscore.techIn the app: Add a file someone emails (Connect a source).
- Send the email there. The sender adds that address, or a rule in your mail forwards it. Ask the sender to add the address to the email they already send, or set a rule in your mail that forwards anything from that sender with that subject. The source's page waits for the first one and shows it landing.
In the app: Open Sources (Connect a source).
- Keep every cell. A Python model keeps every cell of every version, so each number traces back. The model outputs every cell of every version of the file. It is the paper trail every number points back to.
cells("weekly_report", versions="all")In the app: Start a Python model (Models).
- Let AI find the months. The AI says where the months and revenue sit. The code reads the numbers. A second Python model hands the cells to the AI with ask("read", ...). The AI is asked where things are, never what the numbers are, and the code reads the cells it points at. The prompt lives in the model's script, which is where you change it.
What the AI is asked. This is a spreadsheet laid out for people. Say which row holds the headings, which column holds the month and which holds revenue, and for every row that is a month, its cell and the year and month it is. Answer with cell addresses only.
In the app: Start a Python model (Models).
- Make it check itself. Tests catch a bad file. If one fails, last week's numbers stay. Add three tests on the model's Tests tab. The months add up to the sheet's own year-to-date line, every month appears once, and a past month that changed is noted, never silent.
In the app: Open Models (Models).
- Put it on a page. Ask the builder for revenue by month against goal. Make a dashboard and ask for revenue by month against goal, with the date it last updated.
In the app: Make a dashboard (Dashboards).
What you'll see when it's working
The email lands, the numbers move, and the page's date updates on its own.