Every sale was already in Xero. Attio could not tell a house-brand customer from an import buyer.
Unico Zelo is an Australian wine producer that also runs an import portfolio, selling to venues, bottle shops and distributors at home and abroad. Every invoice lived in Xero. Attio was a blank canvas. We connected the two through n8n, sorted every line item into house brand or import, rolled spend up to the customer, and imported the full sales history from 2022 onwards so the CRM started with years of data instead of none.
Integration + build
Engagement
Xero to Attio via n8n
Integration
2022 to 2025
Sales history imported
2
Product lines separated
Dec 2025 to Jan 2026
Timeline
The problem.
Unico Zelo sells two different things to the same kind of customer: its own house-brand wines, and an import portfolio of other producers. The sales team needed to know which customers bought which, who bought only one and could be sold the other, and who was overdue on payment.
All of that was already true in Xero, one invoice line at a time. None of it was visible in Attio. The first version of the n8n sync moved raw invoices across, without the logic that turns them into a picture of a customer.
The brief was clear about the goal: one golden record per customer that aggregates purchase history and financial health. And once the live sync was proven, clear the workspace and import every historic invoice from Xero, so the numbers on each customer meant something from day one.
Objectives.
- Sync Xero invoices and their line items into Attio, with payment status and due date kept current.
- Sort every line item into House Brand or Import Portfolio from the SKU.
- Roll spend up to the customer: all time, house brand and import separately.
- Tag each customer by which side of the business they actually buy from.
- Import the full sales history from Xero, then set up the attributes and reports the team works from.
The data model.
Three records carry the Xero data, and the customer record sits on top of them. The point of the model is that a number on a company is calculated from invoice lines, never typed.
Sales
One record per Xero invoice: invoice number, date, due date, total and status, linked to the customer company. Status is what makes paid, overdue and voided visible without opening Xero.
Line Items
One record per product line on an invoice, keyed by invoice number and SKU. This is where the house-brand or import decision is made, because a single invoice often carries both.
Products
One record per SKU, with its Business Unit: House Brand or Import Portfolio. Any SKU starting with UZ, AW or OK is house brand. Everything else is import.
Companies
The customer. Total spend on house brand and total spend on imports roll up from the line items, and a Loyalist tag reads Unico, Import Specialist or Both from where the money actually goes.
The integration.
Xero stays the source of truth for money. Attio holds the customer picture built from it.
Invoices and lines, not just totals
The n8n flow brings each invoice across with its line items, so the split between house brand and import is decided per line rather than guessed per invoice.
Status that follows Xero
When an invoice is paid or voided in Xero, the record in Attio changes with it. That had to be proven before the historic import, because a history that stops updating is a history nobody trusts.
Filtering before it costs anything
Every n8n execution is paid for, so the flow filters what reaches Attio instead of writing everything Xero emits. The client called this out as saving them automation credits. Xero's API quirks, batched invoices among them, were handled in the same flow.
The historic import.
A CRM that starts empty takes a year to become useful. This one started with the full record.
Cleared, then rebuilt from Xero
Once the live sync was confirmed, the workspace was cleared and the whole invoice history exported from Xero, 2022 to 2025, was imported through the same model, invoices, line items and products.
Spend and loyalty calculated once, from the lines
Customer spend on each product line and the Loyalist tag were computed from the imported line items, and matched to companies by email domain before the final import.
Results.
- Xero invoices and line items flowing into Attio through n8n, with payment status kept in step with Xero.
- Every SKU sorted into House Brand or Import Portfolio, so each customer shows what they buy, not just how much.
- Spend rolled up to the customer on both product lines, plus a Loyalist tag that separates house-brand customers from import buyers.
- Sales history from 2022 imported, so the CRM opened with years of purchase data instead of an empty record.
- Custom attributes and reports set up on top, turning a blank workspace into the one the team runs sales from.
“Craftt masterfully integrated Xero and Attio via n8n. They navigated complex API nuances and implemented smart filtering to save us automation credits. Beyond the build, they imported all historic data and set up custom attributes and reports. They transformed Attio from a blank canvas into a powerful, cost-effective tool.”
Brendan Carter
Unico Zelo
Ready when you are.
Book a call and we will tell you honestly whether this is worth doing, or start with the free 48-hour audit and decide afterwards.