Most of what people associate with the Xero integration is the import; bringing customers, products, stock, invoices and credit notes from Xero into the CRM so reps can quote against accurate data. The integration is also two-way: alongside the import, the CRM pushes selected changes back to Xero so your accounts team doesn’t have to re-enter anything.
What gets pushed to Xero
There are three outbound flows from the CRM to Xero.
What’s pushed | How it works |
Customer creation and updates | When a new customer is created in the CRM, or an existing customer’s details change, the corresponding Xero Contact is created or updated. This includes name, email, default currency, contact status, tax type, tax number, phone, address and contact name. Newly created Xero contacts also inherit accounting defaults from a template ledger; branding theme, payment terms, default account codes and tracking categories, so they’re ready for use without manual setup. |
Product creation and updates | When a new product is created in the CRM, or an existing product’s price or description changes, the corresponding Xero item is created or updated. Code, name, description, sales unit price, sales account code, sales tax type, purchase unit price and purchase account code are all pushed. |
Order confirmation to Xero invoice | When a quote is confirmed in the CRM, a new ACCREC invoice is created in Xero immediately. The invoice includes the customer, currency, customer reference and a line for each quote line (product, description, quantity, unit price, tax, discount and account code). If the order has a delivery charge, an extra line is added. The invoice is created as Draft so your accounts team can review and authorise. |
When the push happens
Customer and product updates run as part of the same routine sync that drives imports. In day-to-day use, changes are reflected in Xero within a few minutes.
Order confirmation is different: when you confirm a quote in the CRM, the resulting Xero invoice is created immediately rather than waiting for the next routine pass.
What doesn’t push to Xero
What’s missing | Why |
Real-time field-level sync | Unlike the Unleashed integration, the Xero integration doesn’t push field changes instantly. Changes flow on the routine sync rather than in real time. For most workflows, this is fine; if you need instant push-back of every field change, Unleashed is a better fit. |
Payment receipts | If customers pay through the CRM, for example via Stripe, the receipt is recorded in the CRM but isn’t pushed to Xero as a payment. Your accounts team reconciles these in Xero as they would any other bank transaction. |
Obsolete product archiving | When you mark a product as obsolete in the CRM, it’s removed from new quotes but isn’t archived in Xero. If you want the matching Xero item archived, do that in Xero directly. |
Bills and purchase invoices | Bills (ACCPAY invoices) are managed entirely in Xero. The CRM doesn’t read or write them. |
The template ledger
A beneficial part of the outbound push is the template ledger. When the CRM creates a new customer in Xero, it doesn’t just push the basics (name, email, address), it also copies a set of accounting defaults from a Xero contact you nominate as your template:
Branding theme: so the customer’s invoices use the right logo and design.
Payment terms: so due-date calculations work automatically.
Sales tracking categories: so revenue lands in the right tracking buckets.
Default sales account code: so revenue posts to the right account.
Default purchase account code: for completeness.
Default discount percentage: if you want new customers to start with a standard discount.
Set the template ledger to a Xero contact whose accounting setup represents a typical new customer for your business. New customers created from the CRM will arrive in Xero fully configured.
📌 Note: The template ledger only applies on customer creation. When the CRM updates an existing Xero contact, it doesn’t overwrite tracking categories, payment terms, branding theme or discount, those stay as your accounts team set them.
Practical implications
If your accounts team manages tracking categories in Xero
They can keep doing exactly that. The CRM doesn’t touch tracking categories on existing Xero contacts. New contacts inherit categories from the template ledger; everything else is left alone.
If your accounts team manages contact-level discounts
The CRM only sets a discount on customer creation and never overwrites it on update. Discounts set on existing customers by your accounts team stay in place.
If you confirm a quote that turns out to be wrong
Because invoices are created as Draft in Xero, your accounts team has the chance to catch problems before they’re sent. If you spot the issue in the CRM, void the order. If your accounts team spots it in Xero, they can void or edit the Draft invoice. Voided invoices flow back to the CRM on the next sync flagged as Status “D”, so CRM-side reporting stays consistent.
