SyncHub Blog

View Original

How to query your Xero data from Google Sheets

Xero is a sophisticated and comprehensive cloud-based accounting platform. For many, the built-in reports and analysis that Xero offers is enough for our day-to-day needs. However, if you need something a little more customized, or you need to aggregate your data over multiple Xero accounts, or you need to cross-reference your Xero data with other cloud services, then you’re going to have to build it yourself. And what better way than using the tool you’re already familiar with - Google Sheets.

In this article, I’ll take you through the steps to connect Google Sheets to your Xero data, and get started customizing the reports you need.

First - grab your SyncHub Credentials

If you don’t already have a SyncHub account, you can grab a free trial here - go on, I’ll wait - it only takes a minute and you can cancel as soon as you’ve finished this tutorial if you like.

Ready? Now, a quick reminder - SyncHub works by staging your Xero data in a relational database. This gives us a huge advantage over other connectors which query the Xero API directly, but I won’t go in to them here (check this blog post if you need convincing). The point is, once you have connected your Xero account, querying from Google Sheets is trivial as you are just using it’s native JDBC Connector.

So, once you’re connected, go to your SyncHub Dashboard and grab your new database credentials:

As you can see, there are four main parts to your connection - the server and database, and the username/password. You’ll need them all for the next parts.

Reading your Xero data from Google Sheets

We now just need to tell Google Sheets where to find your data, and for this we use the built-in JDBC connector via a customized Apps Script. Visit the Extensions -> Apps Script menu:

The script editor will open with a default template. Delete everything you see, and replace with the following, taking special note to replace the information with data from your connection above:

See this content in the original post

Important: Don’t forget to update the script above with the database credentials you grabbed earlier from your SyncHub dashboard.

The final script should look a little something like this (we have highlighted the portions which you need to replace with your own data:

Now, just hit the Save, then the Run buttons. You’ll be prompted to authorize the Apps Script, and then….voila - your Sheet will be populated with the data from your query:

Efficiently downloading complex queries

Rather than building complex queries in your script, you can use our Insights module. Insights allows you to pre-calculate complex queries and store them in a dedicated database table, which is highly performant.

Creating Xero reports in Google Sheets

From here, it’s easy. Just use your regular Google Sheets skills to slice and dice the data as required for your reports. You can bring in multiple tables into different tabs, or if you modify our script, you can even dump your Xero data inline on a specific sheet.

As you can see, Google Sheets does all the heavy lifting for you - all you need is the right data in the first place. With SyncHub, you can pull down information from different tables and join according to our data model. For example, you might build a report to show Payments by Customer, just by using lookups between the Payments table and the Invoice table, and then to the Customer table. With the raw data provided by SyncHub, your options are almost unlimited.

Keeping your data up-to-date

SyncHub updates it’s staged data from Xero in near-realtime, so it’s always available. However the script above will only update your Google Sheet when it is executed. You can either run the script on-demand, as required, or with a minor addition, you can have it run for you automatically - this keeping your Google Sheets reports up to date with realtime data.

To add automatic updates, simply add this to the bottom of your script:

See this content in the original post

Beyond Xero

Xero-specific reports are essential, but the true power of SyncHub comes when you augment your Xero data with additional information:

  • SyncHub allows you to pull in data from multiple Xero accounts, and compare/report/aggregate from within the same Google Sheet

  • Most businesses use multiple cloud platforms. SyncHub provides connectors to a wide range of popular cloud platforms - Deputy, Tanda, Unleashed, Pipedrive, Teamwork, simPRO, Wrike….and many many more. Imagine the insights you could gather by consolidating this information into a single dashboard (or see this case study for real-world examples).

So what are you waiting for? Grab a free trial of SyncHub here and see what you can do. In ten minutes from now, you could be reporting against your Xero data and taking your first steps towards a data-driven business.