Categories
Blog

Connecting QuickBooks Online to Power BI Desktop

In mid 2020, Microsoft posted an update to the documentation for the Power BI QuickBooks Online connector  

Beginning on August 1, 2020, Intuit will no longer support Microsoft Internet Explorer 11 (IE 11) for QuickBooks Online. When you use OAuth2 for authorizing QuickBooks Online, after August 1, 2020, only the following browsers will be supported

The list of supported browsers included Internet Explorer 11.  What this means, though it is not explicitly mentioned, is that if you were using an existing connection to QuickBooks online as a data source in Power BI, and needed to edit your credentials, or if you needed to create a new connection, you would not be able to.  This is because under the covers, Power Query uses IE11 to handle OAuth2 connections, a detail that is abstracted to users of Power BI Desktop.

Chris Webb posted a link to an update to the documentation today

Enabling OAuth Authentication in Power BI Desktop

Starting in December 2021 Power BI Desktop:

  • Install the new Edge Chromium browser, (at least beta) from https://www.microsoftedgeinsider.com/en-us/download.
  • In your Environment Variables, set the System variable PQ_EnableEdgeChromiumOAuth to true . Once that is set it will use Edge Chromium for only QuickBooksOnline. For this release, only QuickBooksOnline is enabled by default.
  • You should now be able to log in to QuickBooks Online.

This is great news, and the technique above works as expected!  However, there are two Power BI supports two connectors to QuickBooks online.  The visible one that you get when you select QuickBooks Online from the Get Data menu, and an “old”, but invisible via the GUI, one that I first learned about when trying to get data from the General Ledger table, a seemingly common requirement for users of QuickBooks data.  This second connector is mentioned here 

The default connector uses QuickBooksOnline.Tables()

As described, to access the old connector, in the Advanced Editor in Power Query, use the source QuickBooks.Tables()

let
Source = QuickBooks.Tables(),
generalledger = Source{[Key=”generalledger”]}[Data]
in
generalledger

This old connector, though making many other QBO objects visible, was not fixed with the recent Edge Beta workaround!  The included a different set of instructions for addressing the same OAuth2 issue when using the Salesforce Objects connector.

  • In your Environment Variables, set the System variable PQ_EnableEdgeChromiumOAuth to true . Once that is set it will use Edge Chromium for only QuickBooksOnline. For this release, only QuickBooksOnline is enabled by default.
  • To set it for Salesforce, in System Environment Variables set PQ_ExtendEdgeChromiumOAuthAllowList to Salesforce

You can use this same set of instructions to get the old QBO Quickbooks.Tables() connector to work, though it might be unsupported.  Follow the instructions for Salesforce Objects, but, instead set the value of the environment variable PQ_ExtendEdgeChromiumOAuthAllowList to QuickBooks *note that this value is case sensitive*.

Environment Variables

Once you have done that, re-open Power BI Desktop, and edit the connections on your connection to QBO, this time, you will get a new-looking window that asks for credentials.  You may also get an error.

Error when connecting

When I clicked Continue, I was then presented with the usual QBO login screen, and was able to connect!

QBO Login After Environment Variable

One reply on “Connecting QuickBooks Online to Power BI Desktop”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.