Business situation
A London accountancy practice has dozens of clients with a 31 March year end. By early summer, a manager needs to know which of them still owe records, and to chase each one. Today that means cross-checking the practice’s client list, the documents received in SharePoint and the job status in Xero — then writing each reminder by hand.
Why existing tools alone are insufficient
An AI assistant can write a good reminder, but on its own it does not know which clients are outstanding. Pasting client lists into a chat puts client data wherever that chat is stored, and connecting the AI directly to Outlook gives it the power to send email on the practice’s behalf — which the practice’s AI policy does not allow.
Systems involved
- KroyDB — the practice’s client list, portfolios and year-end dates.
- Xero — accounts status per client.
- SharePoint — records received per client.
- Outlook — where reminder drafts are created.
Kroy architecture
Claude connects to Kroy. Xero and Microsoft 365 are connected to Kroy once, by the practice. The Prepare Client Reminder Skill is enabled for the client services team. Kroy holds every credential; Claude never receives them.
Workflow
- The manager asks Claude: “Which March year-end clients still owe us records?”
- Claude requests context through Kroy. Kroy checks the user, the agent, the user’s client portfolio and the Skill’s permissions.
- Kroy returns client status from KroyDB, Xero and SharePoint. Payroll is outside the Skill and is not returned.
- Claude lists the clients with outstanding records and what each is missing.
- The manager asks: “Prepare reminders.”
- Claude requests
outlook.draft.createfor each client. Kroy permits drafts. - A request to send is refused:
outlook.mail.sendis not part of the Skill. - The drafts appear in the manager’s Outlook. The board is updated with each client’s chase status.
Agent permissions
Claude acts only under delegation from the signed-in manager, and only within the Prepare Client Reminder Skill. It can see the manager’s clients, not the whole practice.
Human permissions
The manager can see their own portfolio. Sending remains with them. A partner can see chase status across portfolios on the board.
State changes
- A chase record is added to each outstanding client.
- The board shows which clients have a reminder drafted.
- Each draft is linked to the client entity in Kroy.
Audit outcome
Kroy records each context request, each draft created and the refused send request — with the user, the agent, the Skill and the policy that decided each one.
External sharing
The practice can go one step further and give a client a guest workspace showing exactly what remains outstanding. See a client using their own AI.
Security considerations
- Credentials for Xero and Microsoft 365 stay in Kroy.
- The Skill excludes payroll and other portfolios by design, not by instruction to the AI.
- The refusal to send is enforced by Kroy, so it holds even if the AI is asked to ignore it.
Setup requirements
- A Kroy organisation with the client list imported into KroyDB.
- Xero and Microsoft 365 connected to Kroy.
- Claude connected to Kroy.
- The Prepare Client Reminder Skill enabled for the team.