Skip to content

Email a dashboard every morning

A dashboard answers the question in a second, but only for someone who remembers to open it. The people who most need the numbers — a site manager, a client, your own boss — are usually not the people who log in every morning.

So send it to them. This guide builds a flow that, every morning at eight, draws each tile of a dashboard, renders them into a branded PDF, and emails it with a link back to the live board. It takes four steps and no code.

The link matters as much as the PDF. A PDF is a fact about yesterday; the link is somewhere to go when the fact raises a question.

You need a dashboard with at least one tile on it, and its slug — the short name in the address bar when you open the board under Data → Dashboards. A board called Deliveries usually has the slug deliveries.

#StepWhat it does
1Schedule (Cron)fires the flow every morning
2Snapshot dashboarddraws every tile and hands on a ready-made document
3Render documentturns that into a branded PDF
4Send emailattaches the PDF and sends it

Create a new automation, then add them in order, connecting each to the next.

Set the trigger to Schedule (Cron). Pick a preset, or write the expression yourself:

  • Expression — 0 8 * * * (every day at 08:00)
  • Timezone — Europe/Prague

Set the timezone explicitly. Without it the schedule runs on UTC, which drifts an hour away from your morning twice a year.

This is the step that pulls the board off its page.

  • Dashboard — deliveries (the slug, or the board’s id)
  • Heading — Deliveries — {{ now.date }}

Give the step the label board, so later steps can refer to it by that name.

It draws each chart tile as a picture, files those pictures in Memory, and returns a finished document with every tile already placed in it — plus url, a link straight to the live board. A table tile (a saved view on the board) goes in as a table rather than as a picture, and a note goes in as the words you wrote: both are text, and a picture of text is worse to read — you could not select it, search it, or copy a figure out of it.

It does not stop for one bad tile. A tile whose chart or view was deleted, or that has no data yet, is listed in skipped with the reason, and the rest of the report goes out. A quiet hole in a report reads as a zero, which is worse than a missing tile.

  • Markdown —

    <!-- eyebrow: DASHBOARD -->
    {{ board.markdown }}
    Full board: {{ board.url }}
  • Language — English, or whichever language the report is written in

  • Title — Deliveries — {{ now.date }}

  • Filename — deliveries-{{ now.date }}.pdf

Label this step pdf.

Always set Language. It decides the cover page, the date format and how lines break: in Czech and Slovak a one-letter word like “v” never ends a line. Left unset, the step still works, but the document comes out with English rules, and the editor shows a warning until you pick one.

That first line is worth keeping. Without it, the corner of every page reads USE CASE — the default for the sales documents this renderer was first built for, and wrong on a morning report. Set it to whatever the document actually is.

Everything else is ordinary text, so you can write around the charts: a sentence of context above them, a note about what to watch, a footer with who to call.

  • To — you@yourcompany.com

  • Subject — Deliveries — {{ now.date }}

  • Body —

    Good morning,
    The Deliveries board is attached as a PDF.
    See it live: {{ board.url }}
  • Attachments — {{ pdf.document_id }}

Attachments takes the id of a stored file — which is exactly what the previous step handed back. Attachments are capped at about 10 MB in total.

A branded A4 PDF: your heading, then each tile drawn as it appears on screen — bars, lines, the big-number tiles, funnels — each under its own heading, in board order, paginated so nothing is cut in half. The colours are read from the live stylesheet when the picture is drawn, so an exported chart cannot drift away from the one on the screen.

The first page of a rendered PDF. The Routario wordmark sits in a dark band across the top with DASHBOARD in the corner. Below it the heading "Fulfilment — 2026-08-22", then two charts: a bar chart of orders per day rising through the week and falling at the weekend, and a line chart of average delivery time drifting down from about 42 to 33 minutes. A line of text underneath reads "Full board:" followed by a link.

Then the link, and one click back to the real thing.

Sometimes you do not want a picture — you want the numbers, so something can decide with them. That is a different step: Read dashboard.

It takes the same slug and returns the board’s figures as data — a table tile’s rows as rows, and a note as the words you wrote — plus summary, the whole board written out as plain text. Two things it makes easy:

  • A threshold. Read the board, then branch on a figure: only send the email when a number crosses a line, so a quiet week stays quiet and an alarming one lands loudly.
  • An agent that looks at the board. Hand summary to Ask AI — “what changed since last week, and what should I worry about?” — and put the answer in the email above the charts. A note on the board is carried into summary word for word, so if you have written down what “good” looks like, the model asked to judge the numbers is reading your standard rather than inventing one. Read dashboard is also available to agents as a tool, so an agent can go and look at a board mid-task without being handed one.

Read dashboard stores nothing. Use it whenever you want the reading rather than the picture.

The steps aren’t in the picker. They are in preview — see the note at the top.

“no tile could be rendered”. Every tile was skipped, and the message names each one and why. Usually the board is empty, or its charts and views were deleted.

A tile is missing from the PDF. Check the step’s skipped output. A tile with no data is left out on purpose rather than printed as a blank rectangle.

“document store is not configured”. Memory storage has not been set up on this workspace, so there is nowhere to file the tile pictures. It is configured for you on a hosted workspace; on a self-hosted install, set it up before using this flow.

The email arrives with no attachment. Check that Attachments points at the render step’s document_id and not at the step itself.