Solutions / Back office
Books that are up to date without capturing anything twice.
Agents that read from and write to Sage: quotes become invoices, supplier bills are captured from the email they arrive in, and payments are matched for your bookkeeper to confirm.
What outside research says
39 hours a month, on average, is what South African small business owners spend managing their finances, in a 2026 survey of 300 owners.
Source: Xero, 2026 (opens in a new tab)
Findings from the research linked under each figure. They are not Yielde results.
The loop
How it works
From a bill or a job to reconciled books
Seven steps, from the first event to the result. Choose a step to read what happens in plain words, how it is built, and what keeps it right.
Step 1 of 7
It picks up a bill or a job
In plain words
A supplier emails an invoice, someone sends in a photo of a till slip, or a job in your CRM is finished and needs invoicing. Each one starts the same careful process.
Safeguard The same document arriving twice is recognised by its fingerprint and handled once.
Under the hood
It is built around an inbox set aside for supplier bills and photos of slips. Jobs, quotes and bookings come from your CRM through its API, the official connection it offers other software, once they reach the status you choose, such as 'job done'. Each item is given a fingerprint on arrival, made from the sender, the document number and the content, so the same bill emailed twice or forwarded by two people is known to be one item from the start.
Works with
- Your CRM
It reads the bill into lines
In plain words
The agent reads the bill the way your bookkeeper would: who it is from, the invoice number, the date, each line, the VAT and the total.
Safeguard If the lines do not add up to the total on the page, the bill goes no further. The sums are checked by code, not by the model.
Under the hood
The language model turns the document into structured lines that must fit a fixed schema, a form where every field has a set type and place. Then plain arithmetic checks the model's work: the lines must add up to the subtotal, the VAT must match its rate, and the total must match the page. Each field keeps a pointer to where it was read on the document. A blurred photo, a missing VAT number or a total that does not add up is never guessed at: it is marked for a person.
It finds the match in Sage
In plain words
Before anything is entered, it finds the supplier or customer you already have in Sage, with the right account and tax code, so you do not end up with three versions of one supplier.
Safeguard A new supplier, customer or item is never created on a name match alone. A near-match waits for a person.
Under the hood
A mapping table agreed with your bookkeeper says which field goes where and which account each kind of cost belongs to. Contacts are matched in order: VAT number, then email address, then a close match on the name, and only the first two count as certain. A near-match is shown to a person instead of creating a new contact. It also searches Sage Accounting for the same supplier and invoice number, so a bill someone already captured by hand is not entered twice.
Works with
- Sage Accounting
Already in Sage: goes straight to step 07, You get the exceptions list.
Your bookkeeper approves
In plain words
Your bookkeeper sees each prepared entry next to the bill it came from. One tap posts it, and a correction is remembered for that supplier's next bill.
Safeguard Nothing reaches your books without an approval attached, and a change to a posted record needs a separate approval of its own.
Under the hood
Entries wait in a review queue outside your books until someone approves them, so Sage Accounting only ever holds what a person has seen. Corrections are saved to the mapping table with who made them. A change to a record already posted, such as a credit note against a sent invoice or undoing an allocation, is never bundled with routine entries: it is prepared as its own proposal, with the reason, and needs its own approval.
It posts once, and only once
In plain words
Once approved, the entry goes into Sage. If Sage is down for maintenance or the connection drops, it waits and tries again, and the bill is still entered only once.
Safeguard Every retry looks in Sage first. An entry that already landed is never written a second time.
Under the hood
Writes go through the public API that Sage Accounting provides. Each one is tied to an idempotency key, a unique label taken from the item's fingerprint, which the connection records with the result. If Sage is unavailable or asks it to slow down, the write waits in a retry queue, a little longer between each try. The hard case is a write that timed out, because it may have landed. So before any retry the connection looks in Sage for that entry, and only writes if it is not there.
Works with
- Sage Accounting
It matches the bank lines
In plain words
It works through your bank statement and pairs each payment with the invoice or bill it belongs to. Where it cannot, it says why in plain words, such as 'two invoices paid together, less a bank fee'.
Safeguard A match is a suggestion until your bookkeeper confirms it. The connection never allocates a payment by itself.
Under the hood
Lines are read from the statement files your bank provides and compared with open items in Sage Accounting. Exact matches on amount and reference come first, made by rules rather than the model, and can be confirmed together. The language model then works on what is left: one payment for several invoices, a part payment, a reference typed wrong. Each suggestion carries its reasoning and a confidence level, and goes to your bookkeeper. No payment is allocated on its own.
Works with
- Bank statements
- Sage Accounting
Match to confirm: goes back to step 04, Your bookkeeper approves.
You get the exceptions list
In plain words
Your bookkeeper gets a short list of what still needs a person, and a full exceptions list at month end. Everything else is already in Sage, approved by a person.
Safeguard The log is append-only: lines are added, never edited or removed, so every posting traces back to its document and the person who approved it.
Under the hood
The report is built from the connection's own log, which follows every item from arrival to posting: what came in, what was read, who approved it, what was written and what Sage replied. Each exception is explained in plain words, with links to the document and the entry. At month end the list is grouped by kind, such as unmatched payments, duplicates stopped and bills still waiting, so closing the month starts from one page instead of a hunt.
Works with
What it knows
Your accounts, tax codes, contacts and items as they stand in Sage Accounting, a mapping table agreed with your bookkeeper, the bills and records that come in, and your bank statements. It works from those and nothing else.
What it may do on its own
Read bills and statements, prepare draft entries, look up and match contacts, check its own sums, suggest bank matches, and retry a write that failed. It writes to Sage only what a person approved.
What waits for your yes
Every entry before it is posted, every bank match, every new contact or item, and any change to a record already in your books, which always needs its own approval.
How we test it
Before go-live it runs against a separate test set of books, never your live ones, with your past bills and statements, including the awkward ones: a blurred slip, a credit note, a bill sent twice, one payment for three invoices. Writes are tested with the link to Sage cut, to check each entry still posts once.
What we measure
Once it is live, these are tracked and reviewed with you.
- Bills captured without retyping
- Entries your bookkeeper corrected, and why
- Bank lines left unmatched at month end
What you get
- Sage linked to your other tools through its public API
- Supplier invoice capture from email and photos
- Draft entries your bookkeeper approves
- A month-end exceptions list
Works with
- Sage Accounting
- Bank statements
- Your CRM
Who it is for
Businesses on Sage whose admin still runs on retyping.
Built to order. We scope it with you on a call, price it before any work starts, and run it in draft mode until you trust it.
Related
- Invoice chasing agent
Late invoices chased on time, without the awkward call.
An agent that watches your debtors list, sends each late payer the right reminder at the right time, drafts answers to their questions and tells you who needs a phone call.
Built to order - CRM management agent
A CRM that keeps itself current, and a follow-up list every morning.
An agent that logs every call, email and message against the right contact, moves deals along, and tells each salesperson who to follow up today.
Built to order - Administration agent
Routine paperwork prepared before you ask for it.
An agent that reads the forms, slips and documents your business runs on, puts the data where it belongs, and prepares the routine paperwork for a signature.
Built to order