Microsoft Power BI and Tableau Integration

Integrating your CommCare data with Power BI or Tableau has never been this easy!

  • Step 1: Configure your OData feed (just like you configure a Form or Case Export)

  • Step 2: Copy the OData feed/s 

  • Step 3: On Power BI / Tableau Desktop, select OData Feed/OData as your connection type. 

  • Step 4: Enter your OData feed/s, and login using your CommCare credentials (Note: If you are using 2FA or SSO, specify your API key as the password. Your API Key can be found under your My Account Settings.) 

    • Power BI Desktop: Use Basic Authentication

    • Tableau Desktop: Use authentication type 'Username and Password'

You can also follow along in the video below to see how the integration is set up with Tableau:

Useful docs from Microsoft and Tableau:

Important:

  • If you are using 2FA or SSO, please enter your email address and your API Key (as password) when Power BI/Tableau Desktop asks for credentials. 

  • OData feeds are not recommended to be used with MS Excel, and support will not be provided for workflows that utilize the method.

  • The "number" column in the OData feeds will export the case_id or form_id of the case instead of a serial number. This is because “numbers” usually shift around with pagination and when data being continuously updated. Case_ids or form_ids are the only ID that remain constant, and hence we’re using the case or form ids in the number column, so that when a refresh is done, the export is able to identify case or form ids that were previously exported, which then prevents duplicates.

 Performance Considerations: 

  • OData feeds is our entry-level solution for integration with PowerBi and Tableau. It has been optimized for ease of use, so that non technical users can build quick integrations. 

  • However, OData feeds do not support incremental refresh, i.e. each time you refresh, the entire dataset is refreshed. You can mitigate performance issues by publishing the data viz/report from Tableau/PowerBi Desktop to Tableau Online or PowerBI Service, where you can configure the data viz/report to refresh automatically on a schedule defined by you. If you are still unhappy with the performance, please consider using our Data Export Tool to build a CommCare → SQL DB → PowerBi/Tableau data pipeline. Our Data Export tool supports incremental refresh and is designed for enabling performant data pipelines. Performance can vary depending on the data model, but generally speaking we have started to see performance issues start around 500,000 rows per case or form export configured via the OData feed.

Useful Tips

Set-up a web user read-only role limited to read OData feeds:

  • Navigate to Users / Roles & Permissions

  • Click +Add Role at the bottom of the page

  • Provide a name to this role: e.g. Read-Only OData

  • Unselect all permissions except the ones below:

    • Export Form Data (if necessary)

    • Export Case Data (if necessary)

    • PowerBI/Tableau Integration

    • Allow role to access data from all locations

  • Save and assign this role to a user


Community Resources: 

https://www.youtube.com/watch?v=ngC-dM_Vy6c&t=2s


Troubleshooting common error messages on Power BI

Error Message and Plausible root cause

Example Screenshot

Steps to Fix the error

Error Message and Plausible root cause

Example Screenshot

Steps to Fix the error

Error:
Unable to connect



Plausible root cause:

A checkbox question could be causing an issue in your feed.

You may need to either de-select the checkbox questions option, or add a delimiter option for the erroring property.

Solution 1

  1. Navigate to the feed that is causing the error on CommCare HQ

  2. Click on Copy & Edit Feed button and uncheck the Expanded Checkbox Questions checkbox

  3. Then use the edited feed in the integration with Power BI

 

Solution 2

  1. Navigate to the OData feed that is causing an error on CommCare HQ

  2. Click on Copy & Edit Feed button

  3. Then change the display field of the question causing the error to contain the word {option} as a delimiter

  4. Then use the edited feed in the integration with Power BI



Error:

There was an error processing your dataset



Plausible root cause:

If you have a large number of feeds or data, the request may be timing out.

You may need to increase the timeout period for the query.



  1. Open the Advanced Editor for your query in the Desktop App

  2. Then change the settings as follows in the Implementation box for each feed included in your query:
    let
        Source = OData.Feed("https://www.commcarehq.org/a/[domain]/api/v0.5/odata/cases/[uuid]/feed"", null, [Implementation="2.0", Timeout=#duration(0, 0, 90, 0) ])in
        Source

  3. Then click on Done once finished with making the changes.

Source: https://community.powerbi.com/t5/Desktop/How-to-set-command-timeout-option/m-p/920420

Bulk delete Power BI/Tableau Integration Feeds

The bulk delete Power BI/Tableau integration feed gives you the option to bulk delete multiple exports at once. 

These are the steps to bulk delete form export

  • In the Export Dashboard you will find a check box to select all or specific exports

  • On checking the box, you will notice a "Delete Selected Export" button becomes available on the left side of the page

  • Click on the "Delete Selected Export" button and you will be promoted to confirm the bulk delete action

  • Once Delete Export is clicked it will bulk delete the exports selected at once