How to Connect Xero with Copilot (With or Without an AI Agent)
Connect Xero invoices and payments to the Copilot client portal, optionally as an AI agent that mirrors the books into the portal and pauses for a human before a client-visible invoice goes live.
How do you connect Xero to Copilot?
You connect Xero to Copilot by having Xero’s On Invoice Created trigger drive Copilot actions: the workflow pulls the details with Get Invoice and Get Contact, matches the customer to a portal account with List Companies and List Clients, and mirrors the bill with Create Invoice, so the invoice your bookkeeper raised in the ledger is the invoice your client sees in their portal. FlowRunner is a visual AI-agent orchestration platform where automations run autonomously and pause for human judgment on the steps that carry real consequence. The same connection can run as an AI agent that handles the matching and provisioning on its own and pauses for a named human before any client-visible invoice goes live.
The problem it solves
Today your finance team lives in Xero and your clients live in Copilot, and the two only agree when someone makes them agree. An invoice gets raised in the ledger, then someone recreates it in the portal so the client can actually see it: same contact, same line items, same total, typed a second time. When the client pays, the reverse trip happens. Every double entry is a chance for the books and the portal to say different things, and the client always finds the difference before you do.
The edges do the real damage. A contact named “Acme Ltd” in Xero and “Acme” in Copilot quietly becomes two accounts, and an invoice lands in the one the client never opens. A credit note issued in Xero never makes it to the portal, so the client disputes a balance that finance already fixed. A payment arrives via On New Payment Received and sits unreconciled while the portal keeps showing the invoice as due, prompting an awkward reminder to a client who already paid. None of these are ledger errors. They are sync errors, and the client experiences every one of them as a billing mistake.
How it works: the connection
The connection listens to Xero and writes to Copilot. Here is the plain version, grounded in the real connector actions.
- Trigger: Xero fires On Invoice Created when a new sales invoice lands in the ledger.
- Read: The workflow calls Get Invoice and Get Contact to pull the line amounts, total, due date, and customer details.
- Match: It calls List Companies and List Clients in Copilot to find the portal account for this Xero contact.
- Provision: If the account is new to the portal, it calls Create Company and Create Client so the bill has somewhere to land.
- Dedupe: It calls List Invoices in Copilot to confirm this invoice has not already been mirrored.
- Mirror: It calls Create Invoice in Copilot with the same amounts, due date, and reference, so the portal matches the ledger exactly.
- Reconcile: When On New Payment Received fires in Xero, the workflow calls Get Payment and posts the reconciliation to your finance channel so the portal-side status gets confirmed the same day.
That is the “just connect them” answer. The ledger stays the source of truth, and the portal stops being a hand-maintained copy of it.

Can an AI agent run it? (and why a human stays in the loop)
Yes, and the agent is what turns a brittle field mapper into something finance can actually trust. Instead of failing silently when names do not match exactly, an AI agent reasons about identity: it reads “Acme Ltd” in Xero, sees “Acme” and “Acme Holdings” in the portal via List Companies, weighs the contact email and invoice history from Find Invoices, and either matches confidently or asks. Get Invoice, Get Contact, Find Contacts, Get Credit Note, List Invoices, Create Company, Create Client, Create Invoice: these are the agent’s tools, and it chooses among them per invoice, not per template.
The consequential step is the moment a bill becomes visible to a client. A wrong amount in the ledger is a correction; a wrong amount in the portal is a conversation about whether your firm has its act together. Before Create Invoice runs in Copilot, the agent evaluates the situation: a first invoice to a new account, an amount far outside this client’s history, a credit note in Xero that has not been reflected, or a match it is not sure about. When any of those hold, it invokes a human-in-loop flow it holds as a callable tool. The workflow pauses and posts to the billing channel: “Invoice [reference] raised in Xero for [contact], total [amount], due [date]. Matched to portal account [company]. Approve to publish to their portal, or hold.” One click, then the invoice goes live, with the approver and timestamp in the audit trail.
Prospects call this pattern a digital andon cord: like Toyota’s quality control pull cord, the workflow stops the line the moment it hits uncertainty, and your team pulls it back into motion. Routine mirroring runs itself. The client-facing edge of your billing stays under human control.

FlowRunner vs Zapier
Plenty of firms connecting Xero to a client portal start with Zapier, and for understandable reasons. Zapier’s Xero support covers the common invoice and contact events, setup takes minutes, and the template gallery gives you a working starting point without involving anyone technical. For a straightforward “new invoice, send a notification” automation, it does the job.
The difference shows up because this pair mirrors money into a client-facing system. FlowRunner is built around native human-in-the-loop and AI-agent orchestration, where the agent reasons about matches and amounts and knows which invoices need a person before a client sees them.
| What matters for this pair | FlowRunner | Zapier |
|---|---|---|
| Human-in-the-loop before an invoice goes client-visible | Native. The agent invokes an approval flow as a callable tool and pauses until billing signs off | Available via added approval steps you insert manually, not a native agent decision |
| Who runs the flow | An AI agent matches contacts, reasons about amounts, and picks actions as tools | Predefined step sequence you configure per Zap |
| Users included | Unlimited users on every tier | Priced by task volume; seats vary by plan |
| Bring your own AI keys | Yes, BYOK. Connect the AI provider key you already have | AI features tied to Zapier’s own AI offering |
| Self-hosted option | Yes, cloud-hosted or self-hosted | Cloud only |
| Pricing model | Transparent workflow-based tiers with clear execution limits | Per-task pricing that is hard to predict as invoice volume grows |
If all you need is a notification when an invoice is created, Zapier will do it. If the ledger should drive the portal, with fuzzy contact matches resolved by reasoning and every client-visible bill approved by a person, that is where FlowRunner is the better fit.
Before and after
| Category | Before | After |
|---|---|---|
| Double entry | Every invoice typed once in Xero and again in Copilot | Get Invoice feeds Create Invoice; the portal mirrors the ledger automatically |
| Account matching | Name variations quietly create duplicate portal accounts | The agent matches on contact, email, and history, and asks a person when unsure |
| Books vs portal | The two systems drift until a client finds the difference | The ledger is the single source; the portal follows it within moments |
| Payment status | Paid invoices keep showing as due until someone reconciles | On New Payment Received drives same-day reconciliation to the finance channel |
| Billing errors | Wrong amounts reach clients and become trust conversations | Flagged invoices wait for a named approver before going client-visible |

What you can build
Ledger-to-portal billing. On Invoice Created fires. The agent calls Get Invoice and Get Contact, matches the account via List Companies, and queues Create Invoice in Copilot at the approval gate, so clients always see the ledger’s numbers and never a retyped version.
New client, both systems at once. On Contact Created fires in Xero. The agent checks List Companies, provisions Create Company and Create Client in the portal, and links the two records so the account exists everywhere on day one.
Payment reconciliation digest. On New Payment Received fires. The agent calls Get Payment and Get Invoice, compares against List Invoices in Copilot, and posts a daily reconciliation summary so finance confirms portal statuses without spreadsheet work.
Credit note guardrail. On Credit Note Created fires. The agent pulls the details with Get Credit Note and alerts the billing owner with the affected client’s portal history, so the portal balance conversation happens before the client opens a dispute.
Receivables watch on real data. On a schedule, the agent calls Get Aged Receivables in Xero, cross-references portal accounts via List Invoices, and posts the overdue picture per client to your finance channel, so collections conversations start from the ledger, not from guesswork.
Common questions
Is it free to connect Xero and Copilot on FlowRunner? You can build and run the connection on a $100 credit with no credit card, which is roughly 67 days free on the Growth tier at $45/mo. Both connectors are available on every FlowRunner tier, and every tier includes unlimited users and unlimited workflows.
Can I self-host the Xero to Copilot workflow? Yes. FlowRunner offers a cloud-hosted option and a self-hosted option, so the connection can run inside your own environment.
Does the AI agent need my own OpenAI or Claude key? FlowRunner uses a bring-your-own-keys model, so you connect the AI provider key you already have. You are not locked to one model.
What happens when the agent cannot match a Xero contact to a Copilot company? The agent stops and invokes a human-in-loop step. It posts the Xero contact, the invoice details, and the closest portal candidates from List Companies to your finance channel, then waits for a person to pick the match or create a new account before anything reaches a client.
Which Xero events can trigger a Copilot action? Xero offers eight triggers: On Invoice Created, On Invoice Updated, On Contact Created, On Contact Updated, On Credit Note Created, On Credit Note Updated, On New Bank Transaction, and On New Payment Received. On Invoice Created and On New Payment Received drive most portal billing flows.
Does every portal invoice need human approval? You decide. The agent evaluates each invoice in context and escalates the ones that carry weight: a first invoice to a new account, an amount well outside the client’s history, or a shaky contact match. A client-visible invoice is only created after a named approver signs off, and that approval is captured in the audit trail.
Getting started
Start with a $100 credit on the Growth tier at $45/mo. That is roughly 67 days free, and no credit card is required. Both connectors are available on every tier, and every tier includes unlimited users and unlimited workflows.
Explore the integration details:
- Xero integration (8 triggers and 37 actions covering invoices, contacts, payments, credit notes, and financial reports)
- Copilot integration (9 actions covering clients, companies, invoices, and contracts)
Start building free at flowrunner.ai or book a demo to see a live Xero to Copilot workflow, portal-invoice approval and all.