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.
- Choose the Xero dataConfirm the organisation, contact and invoice coverage, destination records, field map and historical import.
- Authorize Xero API accessConnect the organisation through the approved authorization flow. Webhook signing and API access are configured separately.
- Configure Xero webhooksSet the managed delivery URL and signing key in the Xero Developer Portal. Events are routed to the connected organisation.
- Install the custom Attio appThe app creates the agreed fields, invoice surface and resync actions.
- Import historical dataPull the selected contacts and invoices. The import can be resumed or repeated for reconciliation.
- Start live syncNew and changed records update Attio. Record and bulk resync remain available for refreshes.
Configuration
| Setting | Configuration |
|---|---|
| Organisation | Authorized Xero organisation, with routing for multiple organisations when included. |
| Coverage | Contacts and invoices, plus any configured credit notes, payments or repeating invoices. |
| Attio destination | People, Companies, lists or custom objects to hold the selected billing context. |
| Field map | Contact and invoice IDs, numbers, status, dates, subtotal, tax and total as needed. |
| Excluded fields | Accounting-only fields and tax IDs to keep in Xero. |
| Historical import | Data range and pacing for the initial import. |
| Support actions | Record 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.