Duplicate Contacts in Xero

Updated 1 Aug 2026

Duplicate Xero contacts are the most common cleanup job after a rushed setup. The cause is almost always the same, and it's preventable.

Why they appear

When someone raises a document, step 1 of the wizard shows how many Xero contacts are linked to that Salesforce Account. If nobody has run account matching, the answer is 0 found — even when the customer plainly exists in Xero.

The wizard then offers Create new contact, which is the correct behaviour for a genuinely new customer and the wrong one here. Accept it and Xero gains a second contact for the same organisation, with invoice history split across both.

Step 1 shows linked contacts. '1 found' means matching has done its job.

Preventing it

Run the matching tool before your team starts raising documents, and re-run it after importing Accounts into Salesforce.

Accounts to be Matched on the Configuration home screen should read 0.

Cleaning up existing duplicates

  1. In Xero, merge the duplicate contact into the original — Xero moves the transaction history across
  2. In Salesforce, re-run the matching tool so the Account links to the surviving contact
  3. Confirm the next document raised against that Account finds the right contact
Merge in Xero, then re-match

Merging in Xero without re-running the matching tool can leave Salesforce pointing at the contact that no longer exists.

Search rather than create

If matching hasn't run yet, use Search another contact in step 1 rather than Create new contact. It looks up any active Xero contact, including from another account.