Xero Integration
Procedural

Contact matching between SwiftFox and Xero

Match SwiftFox contacts to Xero to prevent duplicate invoices.

September 29, 2026
ID:
273

When you send an invoice from SwiftFox to Xero, SwiftFox needs to attach it to a Xero contact. To avoid creating duplicate Xero contacts, SwiftFox performs contact matching at the moment an invoice is sent. This applies to both Person and Organisation profiles.

How matching works

When an invoice is integrated/sent, SwiftFox matches the SwiftFox contact to an existing Xero contact using three fields:

  • First name
  • Last name
  • Email
  • If a Xero contact matches on first name + last name + email, SwiftFox links the invoice to that existing Xero contact.
  • If no match is found, SwiftFox creates a new Xero contact and links the invoice to it — unless the connected organisation's Miscellaneous settings narrow which Xero contacts transfer and this one falls outside that choice, in which case the invoice may be skipped on its first import instead. Those settings are Which contacts to sync and Contacts outside sync scope, in Xero integration → Settings → Miscellaneous Settings → Configure on the connected organisation — see Configuring mappings (tax rates, accounts, items, tracking categories) (Document ID: 272).

When it runs

Contact matching happens when the invoice is sent/integrated to Xero — not when you first open or draft the invoice. The customer details on the invoice are what SwiftFox uses to perform the match.

Scope

  • Applies to both Person profiles and Organisation profiles.
  • Applies to invoices raised from a profile's Financial tab, as well as invoices generated through standard Forms and Events ticketing.

Best practice to avoid duplicates

  • Keep the SwiftFox contact's first name, last name and email accurate and consistent with how the contact appears in Xero before sending the first invoice.
  • If a contact already exists in Xero, ensure the same email and name are used in SwiftFox so the match succeeds and a duplicate is not created.
  • Remember that matching is based on an exact match across all three fields — a different or missing email means SwiftFox will not link to the existing contact. What happens instead depends on the connected organisation's Miscellaneous Settings: normally SwiftFox creates a new Xero contact, but where Which contacts to sync narrows the scope and this contact falls outside it, Contacts outside sync scope decides whether the contact is brought across with the invoice anyway or the invoice is skipped on its first import.