Create an OData connector to use ODK Central as data source in Google Data Studio

1. What is the general goal of the feature?
With a connector for OData sources, ODK Central could be configured as a data source in Google Data Studio (GDS). GDS seems similar to Tableau and MS Power BI.

https://datastudio.withgoogle.com/ - apparently free (for now) and available (until Google kills it)
https://marketingplatform.google.com/about/resources/data-studio-product-overview/ - product overview
https://developers.google.com/datastudio - dev docs
https://developers.google.com/datastudio/connector/get-started - how to build a connector

2. What are some example use cases for this feature?
A non-technical user can connect GDS to ODK Central and generate reports and insight.
GDS could be a no-cost replacement for other proprietary GUI analytics platforms, such as Tableau.
Having a no-cost, fairly non-technical analytical platform available would make ODK Central more accessible.

3. What can you contribute to making this feature a reality?
UAT.
This feature might be a great first issue for someone looking to get involved.

Can you say clearer?

I'll try!

GDS allows users to configure data sources, and access and analyze data from these sources.
I wish ODK Central could be used as data source, and the following facts indicate it might be possible:
ODK Central has a (somewhat standard compliant) OData API.
GDS however doesn't have a "connector" for OData APIs. Yet.
My suggestion is to build a new GDS connector following https://developers.google.com/datastudio/connector which supports the ODK Central OData API.

Related, ruODK is an R client for the ODK Cental API (OData and RESTful), now peer-reviewed and released at https://docs.ropensci.org/ruODK/.

1 Like

Resources for anyone willing to give this a shot:

  1. Tools: https://developers.google.com/datastudio/connector/get-started
  2. Target: The ODK Central API docs https://odkcentral.docs.apiary.io/
  3. Test: Use the ODK Central Sandbox for testing, ask here or create an "Account request" (Disclaimer: I'm not ODK core, but like anyone with an account on the ODK Central Sandbox I can invite others)

I fear building an OData connector will require form introspection and parsing of each data type supported in ODK Central. A starting point might be the R implementation of "I've got the OData, now what" (docs and source).

1 Like

Hi @Florian_May. Thinking of picking this up - is it still open/in need of dev work? I notice it's tagged with pr-welcome, is there a place you had in mind to add the connector?

3 Likes

Hi @PieterBenjamin! If you have time, feel free to have a go! I put this idea here in the hope that someone would find time. I'd be happy to test and share any lessons implemented in ruODK if that helps.

2 Likes

I'm desperately looking for an automated (e.g. API-driven) way to get ODK submission data from ODK Central into Google Data Studio, or even into Google Sheets (using only Enketo). If you are taking this up, I'd be keen to test out the solution! Thanks!

2 Likes

Thanks for letting me know! Working on it with a few devs here.

3 Likes

Great work, and thanks for taking this up!

Minor feedback:

Looking forward to test drive when it's ready!

2 Likes

Also, we are moving to a token based method, instead of use base64 encoding scheme of username and password.
Now I can tokens, but how do I verify that the token I have is not expired, is there a URL that I can send a token to and get whether that token has expired or not? Thanks!

You can find the auth API in the ODK Central API docs (see my links above).
Leading question: Is there an endpoint in the token auth that would work to verify authentication on any ODK Central instance, independent of specific (or any) projects being present?