OData Feeds

OData (Open Data Protocol) feeds is a standard protocol for consuming data services over the web, allowing for easy integration with a variety of analytics and reporting tools. OData is an open protocol that allows the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way. It enables real-time access to data within different systems and applications, facilitating the analysis, sharing, and manipulation of this data across various platforms.

At this point, CommCare supports up to 25 OData Feeds at one time.

Current Supported Integrations

Below are our supported integrations with OData Feeds. Please note that OData feeds are not recommended to be used with Microsoft Excel, and support will not be provided for workflows that utilize the method.

Are OData Feeds Right for Me?

OData Feeds presents a number of benefits for users.

  • Real-Time Data Access: OData feeds provide real-time access to CommCare data, enabling up-to-date analysis and reporting.

  • Easy Integration: Easily connect CommCare with popular data analysis tools without the need for custom API programming.

  • Flexible Data Queries: OData allows for flexible querying of data, enabling users to specify exactly which data they need from their CommCare projects.

  • Standardized Protocol: As a widely adopted standard, OData is supported by a range of tools and platforms, ensuring compatibility and ease of use.

Performance Considerations

  • OData feeds is our entry-level solution for integration. It has been optimized for ease of use, so that non technical users can build quick integrations. Because of this, 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.

  • If you are intersted in a data tool that can handle larger volume, we encourage you to check out the please consider using our https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143955952 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.

Setting Up OData Feeds in CommCare

  1. Log in to your CommCareHQ account.

  2. Navigate to the project space where you want to enable the OData feed.

  3. Go to Data > Export Data.

  4. Choose the type of data you want to create an OData feed for (e.g., Forms or Cases).

  5. Click on the + Create OData Feed button next to the relevant data export (just like you configure a Form or Case Export)

  6. Copy the OData feed/s 

  7. On Power BI / Tableau Desktop, select OData Feed/OData as your connection type. 

  8. Enter your OData feed/s, and login using your CommCare credentials

    1. Ensure you have the necessary authentication details, as OData feeds require authentication to access. 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.)

    2. For PowerBI, use Basic Authentication

    3. For Tableau Desktop: use authentication type 'Username and Password'

PowerBI Set-Up

Helpful Resources:

https://www.youtube.com/watch?v=HwiGwSc4hY8

Tableau Set Up

Helpful Resources:

OData Feeds Best Practices

As you get started, below are a few things to keep in mind.

Secure Your Data

Ensure that access to your OData feed is secured and only available to authorized users. One way that you can do this is by setting up a web user read-only role limited to read OData feeds. To do this

  • 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

image-20240403-195640.png

Data Tips & Tricks

Below are some tips in configuring your data in CommCare to work with OData Feeds

  • Number Column: 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.

  • Repeat Groups: If setting up an OData Feed for a form that contains , you will also need to reference the additional feeds created for that repeat group data if it is of interest. Each repeat group will have its own OData URL. When querying Repeat Group OData URLs, the limit and offset parameters operate at the form level, meaning limit=1 will return all responses within a repeat group for one form.

Bulk Delete Integration Feeds

The bulk delete OData 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