Independent coverage of AI agents and the work they do

Est.

Guide

From spreadsheet to invoice draft: where an AI agent should stop

Test invoice preparation with sample job records, duplicate checks and a human approval step before connecting an agent to real billing.

Keep the accounting system as the record of what has been invoiced and paid. Let the first experiment prepare a draft from approved job records, with unresolved items held for a person. Sending invoices, posting entries and following up on payment are separate actions to consider later.

A small-business owner discussing invoicing describes a spreadsheet of completed work, hundreds of expected invoices and one main employee who cannot absorb the administration. The post illustrates a workflow problem; it does not establish that an agent is the right solution. Its hiring and automation suggestions are not verified recommendations.

If your spreadsheet already contains consistent customer IDs, approved amounts and delivery instructions, a conventional import or rules-based automation may be enough. An agent is worth investigating when the job includes interpreting inconsistent notes or preparing explanations, provided someone can check those interpretations.

Two accounting assistants worth investigating

Start inside the accounting system you already use. We selected these two because their own documentation describes invoice-related AI actions within that system. This is a documentation review checked October 10, 2026, not a recommendation to migrate your books. Neither vendor's documentation establishes that it passes our spreadsheet exercise.

QuickBooks Payments AI: inspect the invoice auto-fill feature

Intuit's Payments AI documentation describes starting an invoice from a document, image or text and checking the extracted information. It also describes reminders and payment suggestions, which are outside this guide's first trial. The page limits availability to US customers on Essentials, Plus, Advanced or Intuit Enterprise Suite, with invoice creation or editing permission.

Our take: If you already have an eligible QuickBooks account, inspect this before paying for a separate connector. Ask whether your actual job-file format is supported and whether you can retain drafts for review. Document extraction alone does not establish duplicate detection or correct customer matching.

Feedback gap: We have not established a credible independent review sample specifically for this auto-fill workflow. General QuickBooks reviews combine bookkeeping, payments, support and pricing; we are not presenting those scores as a review of its agent.

Xero JAX: evaluate a specific action, not the whole promise

Xero's JAX page describes creating an invoice from an existing quote and answering questions about business data. It says JAX chat is available to subscribers with no additional charge currently, subject to user permissions. That statement about chat is not proof that every automation or integration is included in your plan.

What users describe: In a small r/xero discussion, BigFatBazza reports using auto-reconciliation only for simple accounts, while SocksToBeU describes repeated prompting to obtain an average invoice value. These are anonymous, unverified accounts of different tasks and potentially earlier versions. Neither tests invoice creation; together they suggest checking the exact action you intend to use rather than accepting a broad claim about JAX.

Our take: For an existing Xero business, ask JAX to prepare one invented example and inspect the resulting document and state. Do not assume a prompt to “prepare” guarantees that an invoice remains unsent. Confirm the available controls before connecting live records.

If neither product supports your input or review boundary, keep the spreadsheet exercise separate and use the accounting system's ordinary import or draft workflow. We do not have enough comparable field evidence to declare either assistant the better invoice agent.

Define which records are eligible

Write down the requirements for an invoice draft before connecting anything. In this exercise, a job must have a stable ID, a completed status, an approved amount, a currency and a customer ID that resolves in the customer list. The job must not already appear in the invoiced-job register.

Those are the exercise rules, not a universal billing policy. Your own rules also need approved treatment of deposits, discounts, tax, partial work and credits. Take those from the person responsible for your books. The agent should not infer them from a customer email.

A customer's similar name is not a dependable substitute for its account ID. If a record is ambiguous, preserve it as an exception with a reason and owner.

Try the supplied exercise before real records

Download the invented job records, customer list and invoiced-job register. They contain no real customers. Amounts represent approved job subtotals in USD; this exercise omits tax and does not produce invoices suitable for sending.

Give your chosen process these instructions:

Prepare proposed invoice lines from these files. Apply the eligibility rules in this guide. List the source row and job ID for each proposed line. Put uncertain or conflicting records in an exception list with a reason. Do not send, post or change any records. Return totals by customer and currency.

Try the same exercise with a spreadsheet or ordinary automation. Compare the clarity of the result and the effort needed to establish the rules. This small example is designed to make errors visible; it is not a benchmark of model quality.

Inspect the awkward cases

The files deliberately contain cases that a clean demonstration would miss:

Invoice exercise: exceptions and expected treatment
CaseExpected treatment
Two identical rows share one job IDProduce at most one line; record the duplicate
A job has already been invoicedExclude it from new drafts
Two rows share an ID but disagree on amountHold both for review; do not choose an amount
The customer ID is missing or unknownHold for identification
The job is unfinishedHold until completion is confirmed
The amount has not been approvedHold until approval is recorded

For the supplied fixture, only J101 and J102 should become proposed lines, once each. Either identical J101 source row may be retained, but the draft must include only one J101 line. Both jobs belong to C001. Their subtotals are 120 and 80, for a combined 200 USD before any tax treatment. The expected-results sheet accounts for all ten source rows.

We checked that the files match these rules and totals. We have not run an AI agent against them. Ask your process to explain each excluded row, not just return a plausible total.

Make retries visible

Run the exercise again without changing the files. The proposed lines should remain the same; a second run must not create a second charge. This is a local rehearsal, so it proves nothing about your accounting connector's ability to prevent duplicates.

Before allowing a real integration to create drafts, verify how it records a completed write and handles a timeout. If a request times out after the system accepted it, retrying without checking can be dangerous. Confirm the target record before retrying; route uncertainty to a person. Duplicate prevention belongs in the integration and the accounting record, not only in the agent's memory.

Review one small batch

For a later trial with actual records, use the access and data controls approved for your business. Keep the initial action at draft preparation. A reviewer should confirm customer identity, job lines, amounts, invoice grouping and the required tax treatment before using the normal billing process.

Keep payment reminders outside this first trial. A reminder needs a current payment status, dispute status and customer-contact history. A job spreadsheet alone cannot establish that someone still owes you money.

Measure the time spent clearing exceptions with the pilot worksheet. A useful result is a batch the reviewer can confidently accept, with every held item still visible.