CONTACT US
Domo JSON Connector or Domo Custom Connector? How to Confidently Choose
When connecting to a third-party API with Domo there are two preferred methods; use a Domo JSON Connector or a Domo Custom Connector. Both have the same capabilities of utilizing standard API authentication methods, pagination, and parsing. So which should you use? In this article, we will delineate the key differences between the two so you come away knowing which to use as quickly as possible.
Domo JSON Connector and Domo Custom Connector: Required API Criteria
Bringing in data from a third-party API into Domo is a very common requirement. This can be intimidating and the effort can vary significantly from one API to another. While there are other ways to do this in Domo, the Domo JSON connector or a Domo custom connector should be your first choices as you are evaluating the optimal approach.
The following criteria help provide the necessary information to ultimately configure the connection and some context that will also influence your final decision:
- Authorization type of the API
- The authorization type is determined by the third-party API. This is most commonly found in their documentation, but if it isn’t apparent you may have to reach out to that third party.
- Both of these connectors are capable of Basic Authorization, Bearer Tokens, OAuth, etc, so this won’t be a factor to consider when choosing.
- Endpoints
- In order to get data into Domo, you will need to make sure the API you are connecting to has GET endpoints that return the data you want. You can think of “endpoints” as another word for URL, and GET is the type of HTTP request used to call that URL.
- Request Headers & Query Parameters
- Request Headers are often set once for all endpoints to an API and are capable of having different values.
- Query Parameters can differ from endpoint to endpoint, and are specified within the endpoint sting after a ‘?’. These often contain things like specific IDs and Boolean values in order to filter the data returned from the endpoint.
- Both of these are again determined by the API and found in their documentation.
- Pagination & Parsing
- Pagination is sending more than one request to an endpoint in order to receive all of the data that the endpoint has to offer. This is most commonly handled by adding some sort of Query Parameters or by grabbing a provided next link from the response from the previous endpoint.
- Depending on whether or not a next link is provided in the response, parsing is often required in order to convert the response structure into the preferred table schema.
- Parsing JSON responses is when your record has a JSON object as the contents of a cell and the data is transformed into the traditional table format.
- The best way to quickly understand the data structure of the response is to use a third- party tool like Postman to send an HTTP request to the desired API.
Both of these connector options are capable of handling all of the items above, but they will also have a role in making a final decision.
When to Choose the Domo JSON Connector
The Domo JSON Connector is usually the quickest and simplest way to bring in data from an API, so if it works, it should definitely be your first choice.
It’s also uniquely helpful if you don’t have much (or any) programming experience as you will still likely be able to read through Domo’s documentation and implement it within an hour or so (assuming you have the proper authorization established).
There are also options in the connector to parse and paginate, eliminating the need for having to program loops, further reducing any need for programming experience.
For example, without programming, this connector allows you to simply select the cell and break it out into columns and values based on the JSON key-value grouping as shown below:
When SHOULD I Not use the Domo JSON Connector?
If there is any sort of looping required by the API to obtain all of your data, the Domo JSON connector is not a fit.
For example, some APIs require specific query parameters to be entered per request which will then require looping. This could include things like location IDs, category types, date ranges, and other types of identifying or boolean variables. Let’s take a look at a very common example to further explain this looping constraint.
REAL-LIFE Example of A Looping Constraint
Suppose you are a retail business that needs to get a list of transactions from each store location. You have access to your transaction partner API and have an endpoint that returns this data.
You know there are at least 100,000 records to return per location id. The API limits each response to 100 records by default, but you could force this limit to 10,000 with a query parameter. Then, the API requires you to enter the store’s location ID as part of the endpoint, therefore only allowing for one store’s transactions to be queried at a time.
The URL would look something like this
https://your-api-endpoint.com/api/transactions/{storeID}?limit=10000 where {storeID} would be replaced for every store.
After the first request, you would then have to change the endpoint URL to include an offset, to ignore the previous 10,000 rows you already have.
https://your-api-endpoint.com/api/transactions/{storeID}?limit=10000&offset=10000
These 2 endpoints would get you the first 20,000 records for 1 store location.
The limit & offset maneuver we are doing above is referred to as a type of pagination. The Domo JSON Connector can handle this, however, it can not handle the storeID changing which requires looping. This is where the Domo JSON Connector has limitations. It can only handle one endpoint URL at a time.
The challenge is that often you have to call a specific endpoint to get a list of storeID’s, and then loop through that returned list calling the endpoints above for each ID. It can call these endpoints individually, but the Domo JSON connector can be limited in its ability to dynamically scale with your data in this case.
When to Choose a Domo Custom Connector
If you find you cannot use the Domo JSON connector due to more advanced requirements as described above, then oftentimes a Domo custom connector is the next best option.
A Domo Custom Connector is the most powerful and flexible way to bring JSON responses from APIs into Domo. Since Domo requires all custom connectors to be written in JavaScript, there is significantly more power and flexibility available to you. Any sort of looping, pagination, or repeating calls to endpoints can all be created programmatically.
However, this means you must have real software development experience, and should only consider this option if the Domo JSON Connector cannot be used. You also want to be sure you have an available software developer, whether that be internally or with a partner. These projects can require significant effort because you are essentially building another API (or an API mapping) for Domo to utilize as data comes in.
Note that custom connectors require you to create all of the pagination and parsing from scratch. Unlike the automatic parser in the Domo JSON connector, for the Domo custom connector, you will have to code for each endpoint that you need.
Keep an eye out for an upcoming blog article that dives into how to build and deploy a Domo custom connector.
Conclusion
Both of these are powerful and accessible options in Domo for connecting to most RESTful API‘s that you will come across. However, due to the knowledge and development time required for a Domo Custom connector, choose the Domo JSON Connector if you can, if it’s functionality can adequately suit your needs. There are also times when using Domo Worbench to consume your JSON data sources can work as well, click the previous link to find out more. Read here to understand in detail how to find a best-fit business intelligence consultant partner.
Learn more about our data analytics consulting services and how we empower team to maximize the impact of their data.
Helpful Domo / Analytics Resources
- Analytics maturity model
- Domo demo video
- What is Domo analytics?
- Domo Platform
- Domo dashboards (and dashboarding in general)
- Domo maps
- Domo analyzer (KPI builder and ad hoc UI)
- BI Reporting
- Domo variables
- Domo everywhere
- Create a Domo app
- Domo Google Analytics migration (GA3 to GA4)
- Creating an effective Domo custom connector
- What is ChatGPT?
- Analytics for ChatGPT
- What is Text Analytics?