Weekly Xero cash flow and financial health digest

Every Monday at 8am, get a one-screen brief of last week's revenue, cash on hand, overdue customers, and upcoming bills, posted to Slack and emailed to your finance team.

Agentic Task
XeroSlackGmailFinanceOperationsDaily DigestsAI ReportsNotifications & Alerts

Build me an agent workflow that delivers a weekly cash flow and financial health digest from Xero to my finance team.

Trigger: cron, every Monday at 8am in the user's local timezone (make the timezone configurable at setup). The window the digest covers is the previous Monday through Sunday.

On each run, the agent should pull the following from Xero for the configured organisation: Profit and Loss Report for last week and for month to date, Bank Summary Report for last week, Balance Sheet Report as of last Sunday, Aged Receivables by Contact Report, and Aged Payables by Contact Report. Use the documented Xero operations for each of those reports.

Xero specifics the agent must handle. Every Xero call needs a tenant ID in the Xero-Tenant-Id header. After the user connects Xero, fetch the list of authorised organisations from the connections endpoint and let the user pick which tenant this workflow reports on, then store that tenant ID with the workflow config. Xero returns dates in .NET JSON date format like /Date(1551830400000+0000)/. Parse the millisecond timestamp before formatting any date or doing arithmetic; never display the raw .NET date string. Money fields are decimals, not cents. Set Accept: application/json explicitly on every request.

From those reports, synthesise a one-screen executive brief with these sections, in this order. 1) Revenue last week vs the prior week, plus month to date vs the same point last month. 2) Cash on hand across bank accounts, plus weekly burn (cash change over the week). 3) Top three overdue customers by amount, each line showing the customer name, amount outstanding, and days past due, taken from the aged receivables report. 4) The largest bills coming due in the next 14 days from the aged payables report, with vendor, amount, and due date. 5) One or two short commentary lines from the agent flagging anything that looks off. The agent should use judgment here rather than dumping numbers: examples of things worth calling out include a meaningful revenue drop or spike, a customer slipping into a worse aging bucket, cash falling below a configurable floor, or a large bill landing in a thin cash week. If nothing is unusual, say so in one line.

Output destinations. Post the digest to a configurable Slack channel using Slack Send a Message. Format it as a Slack mrkdwn message (use *bold*, not **bold**), with clear section headers and a compact layout that fits on one screen. Also send the same brief via Gmail Send a Message to a configurable distribution list, as a clean HTML email with the same sections. Use the same content for both; reformat for the destination, do not generate two different briefs.

Configurable settings the user should set during onboarding: Xero organisation (tenant), timezone for the 8am schedule, Slack channel, Gmail recipient list, optional cash-on-hand floor for the alert, optional revenue-change threshold for the alert, optional minimum bill size for the upcoming-bills section.

Error handling. If a Xero report comes back empty or errors, include a short line in the brief saying which section is missing and why, rather than failing the whole run. Respect Xero rate limits and the Retry-After header.

Additional information

What does this prompt do?
  • Pulls last week's Profit and Loss, Bank Summary, Balance Sheet, and aged receivables and payables straight from Xero, no spreadsheets required.
  • Builds a one-screen executive brief covering revenue vs the prior week and month to date, cash on hand, weekly burn, the three biggest overdue customers, and the largest bills coming due in the next 14 days.
  • Adds one or two AI-written commentary lines flagging anything that looks off, like a revenue drop, a customer slipping past 60 days, or a large bill landing during a thin cash week.
  • Posts the formatted brief to your finance Slack channel and emails the same digest to a distribution list via Gmail, every Monday at 8am.
What do I need to use this?
  • A Xero account with the reporting and contacts permissions, connected by someone with access to the organisation you want reported on.
  • A Slack workspace and a channel for the finance team where the digest should post.
  • A Gmail account that can send the digest to your distribution list.
  • A list of email recipients (CFO, founders, finance ops, board observers, whoever you want on the brief).
How can I customize it?
  • Change the schedule. Move it to Friday afternoon for an end of week wrap, or run it daily during a cash crunch.
  • Adjust the thresholds. Tell the agent what counts as a meaningful revenue swing, what overdue age to start flagging at, and how big a bill needs to be before it lands on the brief.
  • Change the recipients. Swap the Slack channel, edit the Gmail distribution list, or send a personal copy to the CFO with extra context the wider team should not see.
  • Tune the commentary. Ask for a more conservative tone, more specific call outs (runway, gross margin, a particular customer), or a plain numbers-only version with no AI commentary.

Frequently asked questions

What does the digest actually look like?
A short, one-screen executive brief. The top line is revenue last week versus the prior week and month to date. Below that you get cash on hand and weekly burn, the three largest overdue customers with amounts and days late, and the biggest bills coming due in the next 14 days. At the end, one or two short commentary lines call out anything that looks off.
Will this work for my Xero region?
Yes. The reports it uses, Profit and Loss, Bank Summary, Balance Sheet, and aged receivables and payables, are available across Xero regions. Amounts come back in your organisation's base currency.
I manage several Xero organisations. Can I pick which one?
Yes. When you connect Xero, you authorise one or more organisations. The digest runs against the organisation you select during setup, and you can run a separate copy of the workflow for each entity if you have a group.
Can I send it somewhere other than Slack and Gmail?
These two are the default because most finance teams already live in Slack and email. You can drop either side, or extend the workflow later to also post to a shared doc or another channel.
Does it post as me in Slack or as a bot?
The default posts the digest as the user who connects Slack, so it shows up clearly authored. If you would rather it post as an automation account, you can swap to a workspace bot connection during setup.

Stop chasing finance numbers every Monday morning.

Connect Xero, Slack, and Gmail once, and Geni delivers the cash flow brief to your team at 8am every Monday.