The Contact That Became Two: Xero, Matching Keys, and Duplicates
Duplicate client records don't appear by accident — they're created by mismatched matching keys between Xero and your practice system. Here's how to stop them.
You know the moment. You go to raise a job for a client, search their name, and find them twice. One record has the correct ABN and a portal invitation already sent. The other has an old email, no engagement letter, and three time entries logged against it by a staff member who never realised there was a second version. Now you have to work out which one is real, merge what you can, and delete the rest — hoping nothing important lived on the copy you're about to destroy.
Duplicate client records are one of the quietest costs in a growing practice. They don't announce themselves. They accumulate slowly, usually as a side-effect of connecting your client accounting software to Xero, and they only become visible once the mess is already large enough to hurt.
Why two systems create three clients
Every system that stores clients has to answer one question when new data arrives: is this the same client I already have, or a new one? The answer depends entirely on the matching key — the field the system uses to decide whether two records are the same entity.
Xero matches on its own internal contact ID. Your account practice management software might match on ABN, on ACN, on business name, or on email address. The trouble starts when those keys disagree.
Consider a common sequence:
- You create "Smith Family Trust" in your practice system with the correct ABN.
- Later, someone in the firm creates "The Smith Family Trust" as a Xero contact — same entity, slightly different name, no ABN entered.
- The sync runs. Your practice system looks for a matching contact, can't find one (the name differs, and the ABN is missing on the Xero side), and dutifully creates a new client.
Now you have two clients pointing at the same real-world business. Neither system did anything wrong. They simply had no shared, reliable key to agree on.
The usual culprits
Duplicates almost always trace back to one of these:
- Business name variations — "Pty Ltd" versus "P/L", trading names versus legal names, extra spaces, and the word "The".
- Missing identifiers — a Xero contact created quickly for an invoice, with no ABN or ACN attached.
- Individuals versus entities — the director's personal name and the company name treated as separate contacts when the work overlaps.
- Manual creation on both sides — a client added to Xero by one person and to the practice system by another, days apart, with no cross-check.
Fix the matching key before you fix the data
It's tempting to attack duplicates by merging them one at a time. That's necessary, but it's cleaning up the flood without turning off the tap. The durable fix is to decide, deliberately, what your matching key is — and then make sure that key is populated and clean on both sides.
For Australian firms, the best matching key is almost always the ABN for entities and ACN for companies, not the business name. Identifiers are unique, they don't change with a rebrand, and they don't suffer from punctuation drift. A business can change its trading name overnight; its ABN stays put.
To make ABN and ACN work as reliable keys, you need three things:
- The identifier present on every client record, not most of them.
- The identifier stored in a consistent format — no spaces, no state suffixes, no notes crammed into the same field.
- A rule that a client is never created without one, or at least flagged if it's missing.
The two-way sync trap
Two-way sync is genuinely useful — you update a client's address once and it flows to Xero, or a new Xero contact appears in your practice list ready to work. But a two-way sync amplifies whatever discipline you don't have. Every gap in your matching data gets copied in both directions, and every duplicate can spawn its own follow-on records once jobs, invoices and time entries attach themselves.
The point isn't to fear the sync. It's to respect what it does: it removes the human pause where someone might otherwise have noticed "hang on, we already have this client." Once that pause is gone, your matching key is your safeguard. There's nothing else standing between a clean list and a messy one.
This is where the design of your accounting client management software matters. Finye's Xero sync matches on identifiers rather than free-text names, and surfaces potential duplicates for review before they become two live clients with work sitting on both. When a Xero contact arrives without an ABN, it's flagged rather than silently duplicated — so the decision stays with a person, not a string comparison.
A practical clean-up sequence
If your client list is already carrying duplicates, work through it in order rather than randomly:
1. Audit for missing identifiers
Pull a list of every client with no ABN or ACN. These are your highest-risk records — the ones most likely to have already been duplicated or to cause the next one. Populate them from the ABN Lookup register where you can.
2. Find the near-matches
Sort your client list by name and scan for entities that differ only by punctuation, "The", or entity suffix. These pairs are your most likely duplicates. Confirm each against the identifier before merging.
3. Merge deliberately, checking what's attached
Before you delete a duplicate, check what lives on it: jobs, time entries, invoices, engagement letters, portal access, documents. Move or reconcile those first. A duplicate with unbilled WIP attached is not a safe delete.
4. Standardise going forward
Set a naming convention — legal name as the primary, trading name as a secondary field — and make the ABN or ACN mandatory at client creation. The convention only works if everyone follows it, so write it down where new staff will see it.
Duplicates are a symptom, not the disease
A duplicate client record is rarely just an annoyance to merge. It's a sign that time was logged against the wrong entity, that an invoice might go to a stale email, that a compliance obligation could be tracked on a record nobody's watching. In client accounting, the client record is the spine everything else hangs off — jobs, deadlines, billing, the portal. When that spine forks in two, the damage spreads quietly across the practice.
Get the matching key right, keep identifiers clean, and let your sync do its job without inventing clients you never onboarded. Whether you call it tax return software, practice management, or client accounting software, the tool is only as trustworthy as the client list underneath it. Keep that list singular, and the rest of the system stays honest.