SimPRO + Xero + n8n: Multi-Branch Financial Consolidation for Growing Trades featured image
Integrations

SimPRO + Xero + n8n: Multi-Branch Financial Consolidation for Growing Trades

2026 UK guide to consolidating P&L across SimPRO multi-company builds and separate Xero organisations using n8n. Branch-level reporting, AI anomaly detection, zero spreadsheet wrangling.

Ettan Bazil
Written by
Ettan Bazil
Founder & CEO (Tech / PropTech)
About Ettan Early Life and Career Ettan Bazil began his professional journey as a gas engineer and plumber, gaining hands-on experience working directly with households, landlords and property managers. His early trade background shaped his understanding of real-world operational challenges, from emergency repairs to workforce shortages and inefficiencies in the maintenance sector. In 2016, he founded Elite Heating & Plumbing, growing it into a successful business employing multiple engineers and apprentices.
18 hrs ago 23 min read Comments

Quick Answer

Run each branch as its own SimPRO multi-company entity feeding a separate Xero organisation, then use n8n to pull the trial balance from every Xero org on a schedule and merge it into one consolidated P&L. Add AI nodes to flag variance against branch budgets. You stop wrestling with spreadsheets and start seeing group performance the morning of the first of every month.

SimPRO SimPRO
Xero Xero
n8n n8n
10+ hrs
finance time saved per month
2–15
branches supported in one stack
99%+
reduction in consolidation errors
< 3 months
typical payback period

The multi-branch consolidation problem

A trades finance manager reviewing branch reports on a laptop in a converted unit office
Finance teams running two or more branches lose a working week every month to manual consolidation.

Two branches feels manageable. Three starts to bite. By the time you hit five, your finance person is closing books in one Xero file, exporting trial balances, pasting them into a workbook, mapping account codes that drift because somebody renamed an expense category in the Edinburgh branch last week, then sending the lot to the directors a fortnight after month-end.

That is the reality I see in trades businesses scaling from one location to several. SimPRO handles the operational side well. It is purpose-built for businesses with 20 or more users and supports multi-company entities cleanly. Xero handles each branch's books. The gap sits in between: how do you get a group P&L on demand without rebuilding it in Excel every time a director asks?

The answer is automation. Not a £20,000-a-year platform swap. n8n sits between SimPRO and your Xero organisations, pulls the numbers, and assembles the group report. Once it is running, it runs every morning and every month-end without anyone touching it.

What this guide does not do. This is not a replacement for statutory consolidation under FRS 102. If your group needs audited consolidated accounts with intercompany eliminations and minority interest calculations, you still need a proper consolidation tool like Joiin, Fathom or Translucent, or your accountant in a spreadsheet. This guide gives you live management reporting for operational decisions, not signed-off year-end accounts.

Why SimPRO, Xero and n8n work together

The stack works because each tool does one job properly and stays in its lane.

SimPRO is the field service and job management layer. It is built for trades businesses with multiple sites, multiple cost centres, and complex projects. Its multi-company feature lets you run separate entities in one platform, each with its own branding, customers and catalogues. SimPRO documents the multi-company model as a way to run franchises, branches and divisions without muddling them.

Xero handles the books. The right way to do it is one Xero organisation per legal entity or branch. The UK accountancy community is firm on this. The most-upvoted thread on AccountingWEB about running multiple companies on one Xero ledger ends with the consensus that it is a daft idea you will regret. Keep them separate. Bank feeds, VAT, payroll and audit trails all stay clean.

Three trade software logos arranged around an automation hub on a workshop bench
SimPRO runs the jobs, Xero runs the books, n8n moves the numbers between them and out to a group view.

n8n is the automation layer. It is open source, self-hostable, and has working Xero nodes plus a generic HTTP node that talks to any API. For multi-branch consolidation that matters, because the standard n8n Xero node covers invoices and contacts but not trial balances. We use the HTTP node for the consolidation pull, the Xero node for everything else.

You do not need a consolidation platform on top of this. The whole stack costs less per month than a single seat of most dedicated consolidation tools.

For UK trades businesses, this is the right shape. SimPRO designed itself for 20-plus user shops. Xero is the default UK SME accounting platform. n8n is the cheapest serious automation tool on the market. Three tools, three jobs, one group P&L.

Prerequisites and skill level

Before you start, get these in order. Half the failures I see on integration projects come from somebody starting the n8n build before the underlying accounts are tidy.

  • SimPRO Premium licence with multi-company enabled. Contact your account manager if you are not sure whether it is active. Multi-company is not always switched on by default.
  • A separate Xero organisation for every branch you want to report on. If you currently run two branches on one Xero, fix that first. Migration is painful but consolidation built on a bad foundation is worse.
  • Admin access to Xero for every organisation. You will be generating OAuth credentials.
  • An n8n instance. Self-hosted on a £6 a month VPS is fine. The cloud version starts at $20 a month and skips the server admin.
  • A consistent chart of accounts across every branch. Same revenue codes, same expense codes, same numbering. If they have drifted, you are doing this work first or your consolidation will look like fiction.
  • A Google Sheet or Notion database to receive the consolidated output. Both work; pick the one your directors already open.
Skill level: Intermediate. You need someone comfortable with API credentials and basic JSON. No coding required, but if you have never built an n8n workflow before, do the official Quickstart first. Two evenings of practice and you can run this build.

Budget two days of work. Day one, get the credentials and structure right. Day two, build and test the workflow. By the end of week two of running it, you will trust the numbers.

Step 1: SimPRO multi-company structure

A trades business owner reviewing a branch hierarchy diagram on a tablet in a van
Decide whether each branch is its own legal entity or a cost centre inside one company. The answer drives the rest of the build.

Before you touch SimPRO, answer one question. Are your branches separate legal entities, or are they cost centres of one limited company? It changes everything downstream.

Separate legal entities means a Companies House registration each, a VAT registration each, payroll each, and a Xero organisation each. This is the cleaner path for proper consolidation and how most growing trades businesses end up structured when they go past two or three sites.

Cost centres of one company means one VAT number, one payroll, one Xero org. You get branch performance through Xero tracking categories. This works fine for two locations. It gets messy at four and breaks at six.

This guide assumes the first option. Each branch is its own limited company, its own Xero org, and its own SimPRO multi-company entity.

Setting up multi-company in SimPRO

Inside SimPRO Premium, multi-company gives you one login and one platform but separate data sets per entity. Each entity has its own:

  • Customers, suppliers and contractor records
  • Quote and invoice numbering
  • Cost centres and chart of account mappings
  • Branding on customer-facing documents
  • Tax codes and accounting export rules

What they share is the platform itself, optional shared catalogues if you want, and your user list with permissions controlling who sees which entity. Field engineers in Birmingham do not see Manchester jobs unless you let them.

Setting it up takes a SimPRO consultant. It is not a self-service feature. Expect a setup fee, a half-day of configuration calls per entity, and a couple of weeks of testing. Plan it. Do not assume you can spin up a new branch on a Friday.

Tracking categories vs multi-company. If you went with cost centres rather than separate entities, set up SimPRO cost centres that map cleanly to Xero tracking categories. The consolidation workflow then groups by tracking category instead of by Xero organisation. Same outcome, simpler stack. The trade-off is statutory reporting flexibility later.

Map SimPRO accounts to Xero accounts per entity

SimPRO posts invoices, timesheets, customer payments and supplier bills into Xero. The mapping happens once per entity. You map each SimPRO income code, expense code and tax code to a specific Xero account in the SimPRO settings and Xero chart of accounts configuration.

The non-negotiable rule: use the same Xero account code in every branch's chart of accounts. 4000 is Revenue, 5000 is Cost of Sales, 7000 is Overheads, in every organisation. If you do not enforce this, your consolidation script has to map account names instead of codes and account names drift over time. You will spend forever debugging why Edinburgh's "Sub-contractors" appears as "Subcontractor labour" in Manchester.

Once mapped, SimPRO does one-click or scheduled export of invoices and timesheets per branch into the matching Xero organisation. That part is solved. The job that remains is pulling the data back out for group reporting.

Step 2: One Xero organisation per branch

Each branch lives in its own Xero organisation. The standard discount for multiple subscriptions is around 15%. You also get separate VAT returns, separate bank feeds, separate payroll and clean audit trails. Worth every penny.

A laptop screen showing multiple Xero organisation tiles arranged in a grid
Multiple Xero organisations under one login. Each branch keeps its own books; consolidation happens outside Xero.

Xero itself does not consolidate. That is the gap this whole guide fixes. The Xero community has been asking for native consolidation since 2018 and it is still not on the roadmap. The most-upvoted post on the Xero product ideas forum about multi-organisation reporting has comments going back years.

What Xero does give you is a clean API per organisation. Every organisation has its own tenant ID, its own OAuth flow, and exposes the same set of accounting endpoints. We pull the Trial Balance, the Profit and Loss, and the Balance Sheet via the API. Consolidation happens in n8n.

Generate Xero OAuth credentials

You only need one Xero app to talk to all your organisations. Go to developer.xero.com, create an app, and authorise it against every organisation you want to pull from. n8n stores the connection, and the workflow loops through the list of tenant IDs.

Practical steps:

  1. Sign in to developer.xero.com with the Xero admin account that has access to every organisation.
  2. Create a new "Custom Connection" app. This is the simplest auth flow for n8n.
  3. Set the redirect URL to your n8n instance, format https://your-n8n-domain/rest/oauth2-credential/callback.
  4. Save the Client ID and Client Secret. They go into n8n once.
  5. In n8n, create a new Xero OAuth2 credential, paste the client ID and secret, and run the authorisation flow.
  6. During the consent screen, tick every organisation you want to consolidate. You get one credential authorising n8n to read all of them.
Two-factor authentication is mandatory. Xero requires 2FA on every integration. Set this up before you start, on the admin account, or you will hit a hard stop in the middle of the credential flow. Use an authenticator app, not SMS.

Once authorised, the Xero API gives you a list of authorised tenants. Each tenant is an organisation. The consolidation workflow uses that list to know which orgs to pull from. Add a new branch later, you authorise the existing credential against the new organisation, and the workflow picks it up on the next run.

Step 3: The n8n consolidation workflow

A workflow diagram on a screen showing branched data flow from multiple sources into a single consolidated output
One trigger, parallel pulls from every Xero org, one merge, one report. Fewer than 15 nodes.

The whole workflow is small. It is not impressive looking. That is the point. Big spaghetti workflows break; small ones survive contact with reality.

The architecture

One scheduled trigger fires on the first of every month at 06:00. It runs through every Xero tenant in your credentials list. For each tenant, it pulls the Profit and Loss for the previous month. It tags every row with the branch name. It merges every branch's data into one table. It writes that table to a Google Sheet or Notion database. It posts a summary to a Slack or Teams channel.

That is the entire workflow. About 12 nodes. Under an hour to build once your credentials are sorted.

The nodes, in order

  1. Schedule Trigger: Cron expression 0 6 1 * * for the first of each month at 6am.
  2. HTTP Request (Get Connections): Call GET https://api.xero.com/connections with the OAuth credential. Returns a list of every tenant ID you have authorised.
  3. Split In Batches: Process one tenant at a time to stay inside the Xero rate limit (60 calls per minute per tenant).
  4. HTTP Request (Trial Balance or P&L): Call GET https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss?date=YYYY-MM-DD&periods=1 with the tenant header. Returns the previous month's P&L as JSON.
  5. Code Node (Normalise): Flatten the Xero report JSON into rows. One row per account, with branch name, account code, account name, current month, and year to date.
  6. Merge: Wait for all branches, then combine into one dataset.
  7. Code Node (Map and Group): Group by account code across branches. Calculate group totals. Calculate variance vs the previous month per branch.
  8. Google Sheets (Append): Write the consolidated rows to a "Group P&L" tab. Keep history; do not overwrite.
  9. Slack or Teams (Send Message): Post a summary. Group revenue, group gross profit, group net profit, biggest mover branch.

That is it. Add a Set node at the start to define the reporting period if you want to backfill historic months. Add an If node before the Slack message to suppress notifications outside business hours if your trigger ever fires unexpectedly.

Calling the Xero P&L endpoint properly

The HTTP node configuration trips people up. Set it like this:

  • Method: GET
  • URL: https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss
  • Authentication: Predefined Credential Type, Xero OAuth2 API
  • Send Headers: Yes. Add xero-tenant-id with the current tenant ID from the Split In Batches output. Add Accept with application/json.
  • Send Query Parameters: Yes. Add fromDate, toDate, and optionally periods=1 and timeframe=MONTH.

The response is the Xero report object. Reports.Rows contains the data. You walk through it in the Code node to extract account lines. Xero nests rows in sections (Income, Less Cost of Sales, Operating Expenses) and the Code node has to handle that. The official Xero Reports API documentation shows the structure.

Build the Code node iteratively. Run the workflow with one tenant first. Open the output of the HTTP node. Stare at the JSON. Then write the Code node. Trying to anticipate the structure without seeing real Xero output is how you waste an afternoon.

Where to send the output

Google Sheets is the easiest target and what I would default to. One tab for the latest consolidated P&L, one tab for the running history, one tab for branch-level breakdowns. Anyone with a browser can read it. Directors can sort and filter. Your accountant can pull it into their own working files.

Notion works too if your team lives in Notion. The n8n Notion node creates database rows cleanly. Looker Studio reads from Google Sheets, so you get charts for free if you want them. For an alternative output approach that automates a Drive-based report, see the Claude Cowork + Google Drive + Xero weekly report build; the principle is the same, the AI summary layer is different.

Step 4: AI variance and anomaly detection

This is the bit that earns the stack its keep. A consolidated P&L tells you what happened. AI anomaly detection tells you what to look at.

A multi-panel dashboard showing branch revenue trends with highlighted variance flags
Variance flags surface the branches that need attention before the directors' meeting, not after.

Add three nodes to the workflow after the Map and Group step:

  1. HTTP Request (or OpenAI node): Send the per-branch variance data to a model. I use Claude 4.x via the Anthropic API or GPT-5 via OpenAI. Either works. The prompt asks the model to compare current month vs previous three months per branch, flag anything outside one standard deviation, and write one sentence explaining each flag in plain English.
  2. Code Node (Format): Take the model's response and turn the flags into a short bullet list. Branch name, the metric that moved, the size of the move, the suggested explanation.
  3. Slack/Teams (Variance Alert): Post the bullet list as a dedicated variance message. Separate from the headline P&L summary so directors can see issues at a glance.

The prompt I use for this is short. Long prompts are not better. Give the model the data, tell it what counts as a flag, and tell it the format you want back.

Example prompt: "Here is the current month and three trailing months of P&L data for [branch name]. Identify any line item that is more than 20% off the rolling average, or any line that has changed direction (from gain to loss, or vice versa). For each, write one sentence explaining what to investigate. Return as a JSON array of objects with 'branch', 'metric', 'change_pct', and 'investigate'."

That gets you a short list of items per branch that actually need eyes on them. Stop scrolling through the whole P&L looking for anomalies. Start opening the directors' meeting with the three things that moved. For deeper financial categorisation and tax-code automation, see the Xero + n8n tax deduction automation guide for related patterns in expense classification.

Cost note. One AI call per branch per month, with the full P&L in context, is pennies. Even at 15 branches, you are looking at under £2 a month in API costs. The same job done by a part-qualified accountant takes a morning per cycle.

This is the same pattern used in the Commusoft + Sage + n8n P&L by job category build. Job category there, branch here. The AI layer is identical.

Testing and troubleshooting

Do not trust the consolidation until you have reconciled it against manually built numbers for two consecutive months. Anyone who skips this regrets it.

The reconciliation test

  1. Run the workflow for last month's data.
  2. Pull the same month's P&L from each Xero organisation manually. Export as CSV.
  3. Add them up in a spreadsheet, line by line.
  4. Compare totals against the consolidated output.
  5. Match to the penny. Investigate any difference, however small.

If the numbers do not match, the problem is almost always one of these:

  • Account code drift. One branch has renamed an account or created a new one that does not exist in the others. Fix in Xero. Re-run.
  • Timezone in the date filter. Xero stores dates in the organisation's timezone. If your n8n is in UTC and Xero is in BST, the period boundary moves. Match them.
  • Tracking categories. If a branch uses tracking categories and another does not, your aggregation can double-count. Strip or normalise tracking in the Code node.
  • FX revaluation. If any branch trades in a foreign currency, FX revaluation appears as a line that does not exist in single-currency branches. Decide whether to include or exclude before consolidating.

Common failures and fixes

SymptomLikely causeFix
Workflow stops mid-run on tenant 3 of 5Rate limit hit on the Xero APIAdd a Wait node, 65 seconds, between tenants in the Split In Batches loop
One branch shows zero revenueThe OAuth credential is not authorised on that tenantRe-run the authorisation flow against the missing tenant
Group totals look wrong by a small amountVAT or rounding difference in one branchPull figures excluding tax explicitly; set standardLayout=true in the report call
Workflow runs but Slack message never postsWebhook URL has expiredRegenerate the Slack incoming webhook and update the credential in n8n
AI variance flags every line as anomalousPrompt too sensitive, model is over-cautiousTighten the threshold (e.g. 25% rather than 10%) and require a minimum absolute pound value
"Tenant access has been revoked"Xero token refresh failed; admin user removedRe-authorise as a director or finance lead with permanent access

After two clean months of matched reconciliation, you can trust the automated output and stop the manual cross-check. Most teams I have worked with kept a quarterly manual reconciliation as a control. That feels right. Trust but verify.

Cost analysis and payback

A trades business owner reviewing a cost comparison spreadsheet on a tablet in an office
The numbers favour automation aggressively at three branches and above.

The maths is simple. The hard part is being honest about how much manual consolidation actually costs you.

The manual cost

Five-branch trades business with consolidated reporting done in Excel by a finance manager:

  • 2.5 days per month closing each branch and pulling reports
  • 1 day per month building the consolidated workbook
  • Half a day per month answering director questions on differences
  • Total: roughly 4 days a month, or 48 days a year
  • At a finance manager salary of £45,000 plus on-costs, that is around £8,400 a year of time
  • Plus 1 day a month of director time reviewing the spreadsheet rather than running the business: another £6,000 a year of opportunity cost

Realistic total annual cost of manual consolidation for a five-branch business: £14,000 to £15,000. Bigger businesses spend more.

The automated cost

  • n8n self-hosted on a £6 a month VPS: £72 a year. Or n8n Cloud Pro at $24 a month: roughly £230 a year.
  • AI API costs: under £2 a month, so under £25 a year. Anthropic or OpenAI, your choice.
  • Initial build time: 2 days of an internal person, or about £1,200 if you bring in a consultant once. One-off cost.
  • Ongoing maintenance: roughly 1 hour a month watching for anomalies and re-authorising tokens when they expire. Negligible.

Total year-one cost including setup: around £1,500. Year-two onwards: under £300 a year.

Payback

For a three-branch business, payback hits in month two. For five branches, it pays back in the first month it runs. By year-end, you have saved roughly £12,000 in finance time and freed your directors from spreadsheet duty. The stack works harder the more branches you add. Marginal cost of adding a sixth branch to an automated consolidation: zero, beyond authorising the new tenant.

What multi-branch operators are saying

Real voices from the Xero and SimPRO communities, captured from public forum threads and review sites. These are the operators who feel the pain or have already solved it.

Recommended videos

A curated playlist covering the SimPRO platform, the Xero consolidation gap, and the patterns we are using in the workflow.

Introduction to SimPRO field service management software

Introduction to SimPRO field service management software

SimPRO official channel

Simpro Lightning: The AI Operating Platform for the Trades

Simpro Lightning: The AI operating platform for the trades

SimPRO Software

SimPRO review - is this field service software right for you

SimPRO review: is this field service software right for you?

Independent software review

How to do consolidated group financial reporting in Xero

How to do consolidated group financial reporting in Xero

Xero practical walkthrough

Xero consolidation made simple - auto eliminations and AI insights

Xero consolidation made simple: auto eliminations and AI insights

Group accounting walkthrough

AI and the trades - transforming field service with intelligent tech

AI and the trades: transforming field service with intelligent tech

SimPRO panel webinar

Data driven decisions with BI reporting from Simpro

Data driven decisions with BI reporting from SimPRO

SimPRO BI reporting

SimPRO tutorial for newbies trade and field service management software demo

SimPRO tutorial for newbies: trade and field service software demo

Beginner walkthrough

Frequently asked questions

Either works, but the answer changes the build. Separate entities means one Xero org per branch and proper consolidation. Cost centres means one Xero org with tracking categories per branch. Two branches: cost centres are fine. Four or more: separate entities, every time. Tax structure, audit trail and exit value all favour the cleaner setup.

No. This is management reporting, not statutory consolidation. For year-end accounts with intercompany eliminations and FRS 102 compliance, you still want a dedicated tool or your accountant in spreadsheets. What this stack does is give you the operational P&L every morning, every month-end, without anyone touching it. Different problem, different tool.

You need their consultants. Multi-company is not a checkbox in the admin panel. Plan for a setup fee per entity, a few weeks of configuration calls, and your account manager being involved. Build the lead time into your branch opening plan.

Fix that first. You cannot consolidate without a standard chart of accounts. Pick a master, align every branch to it, do the cleanup in Xero. Painful, one-time. Worth it on the next month-end.

Depends on how you set the threshold. Default to 20% variance plus a £500 absolute floor for flags. That filters out small numbers behaving normally and surfaces only the things worth looking at. Tighten over time as you trust it more. If it flags everything, your prompt is too loose; if it flags nothing, too tight.

Yes. The Get Connections call returns whatever tenants your OAuth credential is authorised against. Authorise the new branch in the Xero developer portal, and the next workflow run picks it up. Marginal cost of branch six is the Xero subscription and your SimPRO consultant time.

n8n refreshes them automatically as long as the workflow runs at least every 60 days. If you go quiet for longer, the refresh token expires and you re-authorise once. Build in a heartbeat run weekly even if you only need monthly reports. Costs nothing and keeps the tokens alive.

Yes if you run it properly. Put it behind a reverse proxy with HTTPS, use n8n's encryption key for credential storage, and run it on a server only you have access to. The data never leaves your control. Many of the security wins of self-hosting are exactly because of this. If self-hosting feels heavy, n8n Cloud is fine; it is ISO 27001 certified.

The pattern is identical. Swap the Xero HTTP nodes for QuickBooks Online API calls. The QuickBooks ProfitAndLoss report endpoint returns similar JSON; you adapt the Code node. SimPRO supports QuickBooks Online natively, so the export side is unchanged. About a day of rework if you migrate.

My verdict

Build it, run it, free your finance manager.

If you operate two or more branches and your group reporting still lives in a spreadsheet, this is the highest-leverage automation you will build this year. The tools are mature. The cost is trivial. The time saved is real. Most importantly, the directors get to look at the business the morning of month-end, not a fortnight later, which changes what they can act on.

I am not religious about the specific tools. SimPRO is the right field service platform for trades businesses at this size; if you are happy with it, keep it. Xero is the UK default for a reason; one organisation per branch is standard practice. n8n is the cheapest serious automation engine on the market, and it is open source so you are not locked in. The combination works.

What I am religious about is the principle. Numbers should arrive automatically. People should review and act, not gather and assemble. Every hour your finance team spends building a workbook is an hour not spent on cash forecasting, supplier negotiation or branch-level coaching. Get the workbook out of the loop. Use the time you free up to scale the next branch properly. That is how growing trades businesses become groups.

Ready to Transform Your Business?

Turn every engineer into your best engineer and solve recruitment bottlenecks

Join the TrainAR Waitlist

Share this article

Ready to Transform Your Business?

Turn every engineer into your best engineer and solve recruitment bottlenecks

Join the TrainAR Waitlist

Stay Updated

Get weekly insights delivered to your inbox.

Recommended Articles

comments powered by Disqus