NEON DEER DATA LABS Search documentation...

neondeerdata.com

Xero to Attio Sync

Sync Xero contacts and invoices into Attio. Live updates, historical imports and resync keep the selected billing context attached to CRM records.

Requirements

Authorized access to the selected Xero organisation, a Xero app with webhook configuration, and an Attio workspace for the custom app.

Setup

If the integration is not installed in your workspace, request setup.

  1. Choose the Xero dataConfirm the organisation, contact and invoice coverage, destination records, field map and historical import.
  2. Authorize Xero API accessConnect the organisation through the approved authorization flow. Webhook signing and API access are configured separately.
  3. Configure Xero webhooksSet the managed delivery URL and signing key in the Xero Developer Portal. Events are routed to the connected organisation.
  4. Install the custom Attio appThe app creates the agreed fields, invoice surface and resync actions.
  5. Import historical dataPull the selected contacts and invoices. The import can be resumed or repeated for reconciliation.
  6. Start live syncNew and changed records update Attio. Record and bulk resync remain available for refreshes.

Configuration

SettingConfiguration
OrganisationAuthorized Xero organisation, with routing for multiple organisations when included.
CoverageContacts and invoices, plus any configured credit notes, payments or repeating invoices.
Attio destinationPeople, Companies, lists or custom objects to hold the selected billing context.
Field mapContact and invoice IDs, numbers, status, dates, subtotal, tax and total as needed.
Excluded fieldsAccounting-only fields and tax IDs to keep in Xero.
Historical importData range and pacing for the initial import.
Support actionsRecord and bulk resync, delivery recovery and configuration refresh actions.

Sync behavior

Live updates

Contact and invoice creation or update events trigger a fetch of the current Xero record. The app updates the matching Attio record using its Xero ID.

CRM fields

Contact fields can include customer or supplier status, contact number and billing-contact indicators. Invoice fields can include number, type, status, issue date, due date, subtotal, tax and total.

Resync and backfill

Record actions fetch the latest Xero data on demand. Historical imports and larger refreshes use paged reads, paced around Xero API limits.

Limitations

  • Default coverage is contacts and invoices. Credit notes can be included separately. Payments and repeating invoices use scheduled or on-demand reads.
  • Webhooks do not import historical data. Run a backfill for existing contacts and invoices.
  • Large imports are paced around Xero tenant and app limits.
  • Only selected CRM fields are copied. Tax IDs and accounting-only data stay in Xero unless explicitly included.
  • Changes to Attio fields require a mapping update and reprovisioning.

Troubleshooting

Existing contacts or invoices are missing

Check the configured coverage and run the historical import or resync. Live webhooks only signal new changes.

Payments are not updating with invoices

Payments use separately configured scheduled or on-demand reads. They are not part of the default contact and invoice webhook flow.