The workflow

Watch this workflow run through Kroy.

  1. The request.

    “Kroy Artifacts”

  2. Who is asking.

    Kroy identifies the person in bookkeeping and Claude acting for them, within the delegation they gave it.

  3. Only what the task needs.

    Kroy retrieves bank transactions and reconciliation status (Xero), bills, invoices and the chart of accounts (Xero) and the client’s coding rules (KroyDB) from Xero.

  4. Excluded by design.

    Payroll, Bank credentials and bank details and Other clients never reach Claude. That boundary is Kroy’s, not an instruction to the AI.

  5. The proposed action.

    Permitted: read transactions (xero.transactions.read), propose a change set (artifact.create) and recode an approved transaction (xero.transactions.update).

  6. What Kroy refuses.

    Refused: delete or void transactions (xero.transactions.delete), change supplier bank details and apply any change without approval.

  7. A person decides.

    The bookkeeper approves each correction before Kroy applies it.

  8. State changes. Everything is recorded.

    The work is updated in Kroy, and every request — allowed or refused — is written to the audit trail.

Claude
Bookkeeping
Kroy
Xero
Read transactions
Delete or void transactio…
! Approval
AUDIT · STATE

Retrieved

  • Bank transactions and reconciliation st…
  • Bills, invoices and the chart of accoun…
  • The client’s coding rules (KroyDB)

Excluded

  • Payroll
  • Bank credentials and bank details
  • Other clients
Claude
Bookkeeping
Kroy
Xero
Read transactions
Delete or void transactio…
! Approval
AUDIT · STATE

Retrieved

  • Bank transactions and reconciliation st…
  • Bills, invoices and the chart of accoun…
  • The client’s coding rules (KroyDB)

Excluded

  • Payroll
  • Bank credentials and bank details
  • Other clients
AI-assisted bookkeeping review in Xero: the workflow through Kroy. The request.. Who is asking.. Only what the task needs.. Excluded by design.. The proposed action.. What Kroy refuses.. A person decides.. State changes. Everything is recorded..

What the AI can and cannot do

Data accessed

  • Bank transactions and reconciliation status (Xero)
  • Bills, invoices and the chart of accounts (Xero)
  • The client’s coding rules (KroyDB)

Data excluded

  • Payroll
  • Bank credentials and bank details
  • Other clients

Actions permitted

  • Read transactions (xero.transactions.read)
  • Propose a change set (artifact.create)
  • Recode an approved transaction (xero.transactions.update)

Actions refused

  • Delete or void transactions (xero.transactions.delete)
  • Change supplier bank details
  • Apply any change without approval

Human approval required

  • The bookkeeper approves each correction before Kroy applies it

Business situation

A bookkeeping team keeps a small business’s books in Xero. At month end, a bookkeeper looks for transactions left uncategorised, bills entered twice, items sitting in suspense and lines coded against the client’s own rules. It is repetitive and easy to miss things.

Why existing tools alone are insufficient

An AI with write access to Xero could correct the books quickly — and could also make a confident mistake across dozens of transactions at once. An AI without access needs the transactions exported to it. Neither gives the bookkeeper what they want: suggestions they can check, applied only when they say so.

Systems involved

  • Xero — bank transactions, bills, invoices and the chart of accounts.
  • KroyDB — the client entity and its coding rules.
  • Kroy Artifacts — the proposed change set.

Kroy architecture

Claude connects to Kroy. Xero is connected to Kroy by the practice. The Review Bookkeeping Skill may read the ledger and propose a change set. xero.transactions.update is permitted only for items in an approved change set. Deletions and bank detail changes are outside the Skill entirely.

Workflow

  1. The bookkeeper asks Claude: “Review ABC Limited’s bookkeeping for September.”
  2. Kroy checks the bookkeeper, the agent and the Skill, and returns the month’s transactions and reconciliation status via xero.transactions.read, with the client’s coding rules from KroyDB.
  3. Claude lists uncategorised items, a bill that appears twice, and several lines coded to general expenses that the client’s rules place under travel.
  4. Claude proposes corrections as a change set with artifact.create.
  5. The bookkeeper asks: “Delete the duplicate bill.” Claude requests xero.transactions.delete. Kroy refuses: the Skill cannot delete or void transactions. The bookkeeper handles it in Xero.
  6. The bookkeeper approves the recoding lines and rejects one.
  7. Claude requests xero.transactions.update for the approved lines. Kroy checks each against the approved change set and applies them. The rejected line is left alone.

Agent permissions

Claude acts under the bookkeeper’s delegation. It can read and propose; it can write only what has been approved, item by item.

Human permissions

The bookkeeper approves or rejects each proposed correction and makes any deletion personally. A manager can see change sets across clients.

State changes

  • A change set Artifact is created and moves to Partly approved.
  • Approved transactions are recoded in Xero and linked to the change set.
  • The month’s bookkeeping review for ABC Limited is marked complete.

Audit outcome

Kroy records the review, the change set, the approval of each line, each update made in Xero and the refused deletion — with the bookkeeper, the agent and the policy.

Security considerations

  • Writes are tied to an approved change set, so the AI cannot apply more than was agreed.
  • Destructive actions are outside the Skill, not merely discouraged.
  • Xero credentials stay in Kroy; payroll is excluded.

Setup requirements

  • ABC Limited as a client entity in KroyDB, with coding rules.
  • Xero connected to Kroy.
  • Claude connected to Kroy.
  • The Review Bookkeeping Skill enabled, with approval required for updates.

Try this with your own systems.

Try Kroy with Xero