A Monday list of who to ring about overdue Xero invoices, with Grok Bot or Claude
Your AI reads Xero, ranks who owes you by what each one is worth to chase, and hands the calls to Office Voice. One prompt to paste, set up in Grok Bot or in Claude.
Most people who connect an AI to Xero want the same thing first: on Monday morning, a short list of who to chase, biggest dollars at the top. Grok Bot and Claude can both build it from one prompt. Neither can lawfully make the calls, so the last step hands the list to a service that can.
In short
- What you get
- Every Monday, overdue customers in four buckets, ranked by the amount at risk rather than by age, saved as a file you can compare week to week.
- In Grok Bot
- Xero's plugin with a custom connection per organisation. Runs in the cloud, so the list is ready with your laptop closed.
- In Claude
- Xero's free, read-only connector: one sign-in. The schedule runs while your computer is awake and Claude is open.
- The calls
- Add the Office Voice connector and the Bot queues the 30-day-plus customers. Office Voice rings inside calling hours, after the Do Not Call Register check, and logs every outcome.
- Your Xero login
- Never give it to the Bot. Signed in as you, it is you, on every organisation you can open.
Take the spec to Claude, ChatGPT or Copilot. The sentence to paste is one click away.
Want the whole thing by email?
This paper, plus the rest of the library. One click to stop them.
1. What the Monday list is
Xero’s aged receivables report sorts by age. Age is the wrong order to ring in: a $9,000 invoice at 20 days matters more than a $90 one at 60. The list groups each customer into one line, sorts them into four buckets by their oldest invoice, and ranks by the total owed:
- Broken promise. They said they would pay by a date, and it has passed. Always first.
- Just late. 1 to 14 days. Usually a nudge, not a call.
- Drifting. 15 to 44 days. The calls that pay best.
- Hard. 45 days and over with no contact logged.
This is the light version, built for a bot. The full Debtor Chasing standard is the version a business runs at scale: the data model, the checks before each call, and a pass test that proves it works.
2. Connect Grok Bot to Xero
Grok Bot is xAI’s always-on agent: named Bots you message like a colleague, each working on a cloud computer that keeps going after you close the laptop. It reaches Xero through a plugin. Plans that include it have changed since launch, so check xAI’s own site.
- Click +beside Bots and name it “Monday Debtors”. In Edit Profile, put the standing rules in the description: read only, this one organisation, never contact a customer itself, ask before changing anything.
- Sign in at developer.xero.com and create a new app of type custom connection. Tick read-only scopes for transactions, contacts and reports, and pick the organisation. Someone with admin rights on that organisation approves it from an email Xero sends. Custom connections on a live organisation carry a monthly Xero fee; check the current price on Xero’s developer site.
- In Grok Bot, open Connect apps, add Xero, and enter the client ID and secret in the secure secret card, not the chat. Treat them like a password: anyone holding them can read that file.
- Running a practice? One custom connection covers one organisation, so repeat steps 2 and 3 for each client you include.
3. Connect Claude to Xero
- In Claude, open Connectors, add Xero, sign in with your Xero login and choose the organisation. No keys and no developer portal. The connector is free and read-only.
- Open the Claude desktop app and start a Cowork task with a folder for the weekly files.
More on what the connector can and cannot do in our guide to Claude with Xero.
4. The prompt
The same prompt works in both. Paste it into the Bot’s chat or the Cowork task, with your organisation’s name in the brackets.
Use the Xero connection, read only. Open [organisation name] and run the Aged Receivables Detail report as at today. For every sent invoice past its due date, collect six fields: customer, Xero contact ID, amount outstanding, days past due, the customer's mobile number from their contact record, and the last note on the invoice. Leave out drafts and invoices awaiting approval. Group by customer: one customer with several invoices is one line, with the total. Put each customer in one bucket, by their oldest invoice: - Broken promise: a note shows a promised payment date that has passed. This bucket comes first. - Just late: 1 to 14 days. - Drifting: 15 to 44 days. - Hard: 45 days and over with no contact logged. Rank by total amount outstanding, largest first, with age breaking ties. Save the list as debtors-YYYY-MM-DD.csv. If last week's file is there, mark any customer who has dropped off as "paid or cleared since last run". Give me the top ten as a table, and the count of overdue customers with no mobile number. Do not change anything in Xero and do not contact anyone.
Check the first run against Xero’s own aged receivables report. The totals should match to the cent before you trust it on a Monday you are not watching.
5. Run it every Monday
- Grok Bot:when the table looks right, ask it to “save this as a skill called Monday debtor list, and create a routine that runs it every Monday at 8am Brisbane time.”
- Claude: type /schedule and choose weekly, Monday, 8am. It runs while your computer is awake and the app is open.
6. Hand the calls to Office Voice
A list does not get anyone paid. The call does, and a debt call has rules a chatbot cannot keep on its own: say it is an AI, ring inside calling hours, check the Do Not Call Register, and keep a record of what was said. Office Voice, our product, is built to place those calls. Your Bot orders them; Office Voice decides when each one can lawfully be made, and makes it.
- Start an Office Voice trial, connect the same Xero organisation and switch Get Paid on. That is how Office Voice knows the customers your Bot names. Get Paid is $199 a month per organisation, with no call caps.
- In Office Voice, create a key under Keys. Keep it like a password.
- Grok Bot:paste this into the Bot’s chat and click Add itwhen it asks. Enter the key in the secure secret card it shows, never in the chat itself: xAI’s own help says to keep keys out of chat.
Add a custom MCP server called Office Voice at https://office-voice.com/api/mcp It needs an Authorization header: the word Bearer, a space, then my Office Voice key. Ask me for the key with a secure secret card. Do not ask me to type it in this chat.
Claude: in Connectors, add a custom connector at https://office-voice.com/api/mcp, choose No sign-in, and put the key in a request header named Authorization, as “Bearer” then the key. Some organisations hide the header field; if yours does, Claude Code takes it in one line.
For your developer. Show the Claude Code line
claude mcp add --transport http office-voice https://office-voice.com/api/mcp \ --header "Authorization: Bearer <your Office Voice key>"
Then add this to the end of the Monday prompt, so the routine queues the calls once the list is built:
Now hand the calls to Office Voice. Take the customers on today's list whose oldest invoice is 30 or more days past due, in the ranked order, at most 50. Leave out anyone in the "Just late" bucket and anyone with no mobile number. Call the Office Voice tool queue_calls with query_key "invoices_overdue_30d" and customer_external_ids set to their Xero contact IDs, in that order. Add the note "Monday list YYYY-MM-DD". Show me what it queued and what it held back, with the reason for each one held. Do not ring anyone yourself, and do not change anything in Xero.
What happens next:
- Nothing dials straight away. Each customer joins the queue in the order your Bot ranked them.
- Office Voice checks the Do Not Call Register and anyone who asked not to be contacted, and holds them back with the reason.
- Each call is placed inside that customer’s calling hours. A list queued on a Monday evening is rung on Tuesday morning.
- The agent opens by saying it is an AI, reads the live balance first so nobody is chased for a bill paid on Friday, and aims to leave every call with a date.
- Every call is recorded with its outcome, so next Monday’s list shows who promised and who did not.
The 30-day line is deliberate. Under 30 days, an email reminder from Xero is usually enough, and a phone call can cost goodwill a reminder would not.
7. Why the Bot never gets your Xero login
Grok Bot can sign into websites in its own browser, so the shortcut is to skip the plugin and type your Xero password in. Don’t. Signed in as you, the Bot is you to Xero:
- Your permissions. If your login can approve bills, edit pay runs or open forty client organisations, so can the Bot.
- Your name on the history. Every change it makes shows under your user.
- Every Bot shares it. xAI’s documentation says all your Bots share one cloud computer and its browser sessions, so a Bot set up for something else can reach the Xero session.
For a practice there is more: the Bot’s computer runs in the United States, so client files leave Australia, and the Privacy Act holds you responsible for what an overseas provider does with them. The Tax Practitioners Board’s July 2026 guidance treats putting client information into an AI tool as a possible disclosure that needs the client’s permission. The plugin with read-only scopes, or a Bot invited as its own read-only Xero user, avoids the login problem; the data question needs an answer either way.
8. Grok Bot or Claude
| Grok Bot | Claude | |
|---|---|---|
| Getting into Xero | A custom connection and keys you create, per organisation | Xero’s own connector, one sign-in |
| Can it change Xero? | Only what you tick in the scopes | No, read-only |
| Where it runs on Monday | In the cloud, laptop closed | On your computer, while it is awake and the app is open |
| Adding Office Voice | One message in chat; the key goes in a secure card | A custom connector with a request header, or one line in Claude Code |
| What you pay for | A plan that includes Grok Bot, plus Xero’s fee per live custom connection | A paid Claude plan for scheduled tasks; the Xero connector is free |
Claude is the easier first build. Grok Bot earns its place when the list has to be ready at 8am whether or not anyone’s computer is on. Steps as each tool set them out on 27 October 2026; menus move, so expect the odd label to differ.
9. Questions
Can Grok Bot connect to Xero?
Yes. Open Connect apps in Grok Bot and add Xero. It asks for a client ID and a client secret, which you create as a custom connection at developer.xero.com, one per organisation, with the read-only scopes ticked. Xero charges a monthly fee for each custom connection on a live organisation.
Should I give Grok Bot my Xero login instead?
No. Signed in as you, the Bot has every permission you have, every organisation you can open, and your name on every change. All your Bots share that browser session. Use the plugin, or invite the Bot as its own read-only user.
Can Claude read my Xero?
Yes. Xero's connector for Claude is free and read-only: add it under Connectors, sign in to Xero and pick the organisation. It cannot change anything in the file.
Can Grok Bot or Claude ring my customers about overdue invoices?
Not lawfully on their own. A debt call has to say it is an AI, stay inside calling hours, check the Do Not Call Register and keep a record. Hand the list to Office Voice, which places the calls under those rules and logs each outcome.
Grok Bot or Claude for the Monday list?
Claude is the easier build: one sign-in, no developer app. Grok Bot runs in the cloud with your laptop closed, which matters for an 8am Monday run, but needs a Xero custom connection per organisation.
Rather skip the build?
Get Paid does the whole job without a Bot in the middle: it reads your Xero debtor book through its own connection, ranks it, and rings the overdue customers, $199 a month per organisation, flat, with no call caps. Play the debtor and hear it first.
Building it properly, at scale? The rules are open. Take the full standard.