# Xero to Attio Sync Source: https://neondeerdata.com/docs/integrations/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](https://neondeerdata.com/contact-us/?topic=integration-xero-to-attio-sync). 1. **Choose the Xero data** Confirm the organisation, contact and invoice coverage, destination records, field map and historical import. 2. **Authorize Xero API access** Connect the organisation through the approved authorization flow. Webhook signing and API access are configured separately. 3. **Configure Xero webhooks** Set the managed delivery URL and signing key in the Xero Developer Portal. Events are routed to the connected organisation. 4. **Install the custom Attio app** The app creates the agreed fields, invoice surface and resync actions. 5. **Import historical data** Pull the selected contacts and invoices. The import can be resumed or repeated for reconciliation. 6. **Start live sync** New 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. ## Useful links - [Xero](https://www.xero.com/) - [Xero help center](https://central.xero.com/)