2024 is the year of the connector - vote here

Aggregate reporting with Xero

How to consolidate your multiple Xero accounts into a single cohesive reporting strategy

This article is part of our BI walkthrough series: reading time 4 minutes (approx)

The existing reporting tools for Xero are numerous and comprehensive. But if you're running multiple Xero accounts and need to consolidate data across your entire organization, things get a little more difficult.

In this walkthrough, we'll use SyncHub to take you through the process of syncing your various accounts to a single location, then aggregating your data to build a comprehensive view across your entire business.

Step one - downloading your Xero data

Head over to your Connection Dashboard in SyncHub and follow the instructions to connect your first Xero account, which will take just a few mouseclicks and a couple of minutes. As part of the connection process, you're asked to provide details of the database where you'd like us to sync your data. We currently support Snowflake, BigQuery, Redshift, Postgres and SQL Server/Azure. And don't worry, if you don't have your own database, we provide a free dedicated SQL Azure database on all our pricing plans.

Once completed, SyncHub creates a unique database schema inside your data store, then immediately starts syncing your Xero data from the cloud. This results in various database tables that look something like this:

schema_xero_1.Invoice
InvoiceID Status Date Total InvoiceNumber AmountPaid
424a70ac-9d5a-42bf-b3d3-51c6259ec602 AUTHORISED 2024-11-02 00:00:00 1,389.00 INV-456 100.00
33fe38d6-e50b-4ec9-bdf0-509f08b399cf AUTHORISED 2024-10-28 00:00:00 456.00 INV-88 0.00
b7aa0fc8-ef28-4afd-8331-1cc7a52d9af8 AUTHORISED 2024-08-22 00:00:00 332.50 INV-89 0.00

Connect your other accounts

Now, follow a similar process to connect your other Xero accounts. SyncHub will store the data in the same database, but in different database schemas. This gives you the best of both worlds, where your data is demarcated at the connection level, but you can access everything from within a single query.

Step two - Consolidating your schemas

Now that you have your data in your database, we need a way to merge it into a single consolidated view. This is where our Insights platform comes into play. Using Insights, we can write a simple SQL query that merges the data from all of our schemas. Because each schema has an identical format, this is trivial:

SQL

select 'Xero 1' as [ConnectionName], [InvoiceID], [Status], [Date], [Total], [InvoiceNumber], [AmountPaid]

from schema_xero_1.Invoice

UNION

select 'Xero 2' as [ConnectionName], [InvoiceID], [Status], [Date], [Total], [InvoiceNumber], [AmountPaid]

from schema_xero_2.Invoice

UNION

select 'Xero 3' as [ConnectionName], [InvoiceID], [Status], [Date], [Total], [InvoiceNumber], [AmountPaid]

from schema_xero_3.Invoice

Note: We're using SQL Server syntax here, but you'll need to tweak it a little depending on your database type

Insights stores your query results in a database table under the sh_report_cache schema alongside the raw data we've downloaded from Xero. You can call this table whatever you like, so let's use something self-explanatory like xero_invoice_consolidated. We can then query it from our reporting tool as simply as this:

SQL

select * from sh_report_cache.xero_invoice_consolidated

Conclusion

As you've seen, SyncHub's consistent data structure and background syncing makes it trivial to report from multiple Xero. You can use new your consolidated database table directly from your reporting tool, or use our own Insights platform to build charts and dashboards from within SyncHub itself.

SyncHub offers a fully functional free trial, so feel free to try out this walkthrough for yourself, using your own data.

Happy reporting everybody.