# Monday morning overdue accounts triage brief for Xero

> Every Monday at 8am, get a ranked Slack brief of your ten riskiest overdue customers with a risk tag and a recommended next action for each.

- Workflow type: agent
- Services: Xero, Slack
- Categories: Finance
- Published: 2026-07-12

## What it does

- Posts a weekly Slack brief every Monday at 8am with your ten riskiest overdue customers
- Tags each account as chronic, one-off, or new-relationship based on payment history and how long they have been a customer
- Recommends a specific next action per account: gentle reminder, escalate to the founder, hold future work, or offer a payment plan
- Shows each customer's total owed, days late, and their single largest overdue invoice so you know exactly what to focus on

## What you'll need

- A Xero account with access to invoices and the aged receivables report
- A Slack workspace and a channel where the finance owner reads Monday updates
- A rough view of which customers count as new (typically under six months old)

## Prompt

Every Monday at 8am (organisation local time), produce a weekly aged receivables triage brief for the finance owner and post it to a Slack channel. This is a strategic Monday-morning read, not a customer-facing dunning tool. Nothing in this workflow contacts customers directly.

Step 1: Pull overdue invoices from Xero using List Invoices with Status=AUTHORISED and DueDate before today. Skip any invoices where DueDate is null (Xero returns null DueDate for payments-on-account style records). Group the remaining invoices by contact and compute a per-contact total owed.

Step 2: For each overdue contact, call the Aged Receivables by Contact Report to get the bucket totals (Current, 1-30, 31-60, 61-90, 90+) and identify the single largest overdue invoice. Respect the Xero 60-calls-per-minute-per-tenant rate limit: cap per-contact report calls at the top 20 open contacts by amount owed and pace the calls so the workflow stays under the limit.

Step 3: For each of those contacts, call Get Contact to read the created date, and use List Payments to reason about payment lateness history over the last six months (how many distinct overdue occurrences the customer has had).

Step 4: Classify each account into exactly one of three risk buckets. Chronic: any dollars sitting in the 90+ bucket, OR three or more distinct overdue occurrences in the last six months. New-relationship: contact was created in the last six months. One-off: first-time late and under 60 days overdue. When more than one rule matches, prefer chronic over new-relationship over one-off.

Step 5: Recommend exactly one next action per account from this set: gentle reminder, escalate to the founder, put future work on hold, or offer a payment plan. Match the recommendation to the risk bucket and the size of what is owed. For example, chronic large balances lean toward escalate or hold; one-off small amounts lean toward gentle reminder; new-relationship should usually get a gentle reminder unless the amount is material.

Step 6: Rank all accounts by collection risk. Weight dollars in the 90+ bucket most heavily, then 61-90, then 31-60, then 1-30. Pick the top 10 for the brief.

Step 7: Post one Slack message via Send a Message to the configured finance channel. Lead with a one-line summary (count of overdue customers, total overdue dollars, and the chronic / one-off / new-relationship split). Follow with a numbered list of the top 10, each row showing: customer name, total amount owed, days late on the largest overdue invoice, risk tag, recommended action, and the largest single overdue invoice (invoice number and amount). If there are no overdue invoices at all, post a short all-clear note instead.

Important: this is a human-driven triage brief. Do not email, message, or otherwise contact the customers themselves. This workflow is distinct from any tone-aware dunning chaser that may already be running for the same organisation; both can coexist because they serve different jobs.

## How to customize

- Move the delivery time or day if Monday 8am does not fit your rhythm
- Change how many accounts appear in the brief (the default is the top ten)
- Adjust the risk rules to match how your finance team already talks about receivables, or swap in a different set of recommended actions

## FAQ

### How is this different from a dunning email tool?

This brief is for you, not your customers. Nothing is sent to the people who owe you money. The workflow only posts a ranked internal read in Slack so you can decide who to chase and how, on your own terms.

### What if there are hardly any overdue invoices this week?

The brief simply lists fewer rows. If there is nothing overdue at all, it posts a short all-clear note in Slack instead of an empty ranked list.

### Does it work with multiple Xero organisations?

You run one copy of the workflow per Xero organisation. If you have several tenants, duplicate the workflow and point each copy at a different one.

### Can I change the risk categories or recommended actions?

Yes. The three risk buckets and four recommended actions are just defaults. You can edit the rules directly in the prompt to match how your finance team already thinks about collections.

### Where does the days late and largest invoice data come from?

Straight from your Xero invoices and the aged receivables report. Each row rolls up the customer's overdue balance and picks out the single biggest unpaid invoice for context.

Use this prompt in General Input: https://www.generalinput.com/prompts/monday-morning-overdue-accounts-triage-brief-for-xero