Skip to main content

Intro

Domo’s JSON Webhook connector allows you to connect to data sources that push JSON-formatted data, such as IFTTT, Github, and Fitbit. Using JSON Webhooks, you can get access to real-time data from weather devices, vending machines, wearables, and more. The Webhook link includes a long-living single use token so anyone with the link can publish data to your DataSet. You set up your JSON Webhook connection by configuring options in the Data Center as well as in the third-party application, as described below.

Configure a JSON Webhook Connection

This section explains how to set up a JSON Webhook connection in Domo and in the third-party application. After you have set up a successful connection, you can use the same account any time you go to create a new JSON Webhook DataSet. You can manage connector accounts in the Accounts tab in the Data Center. For more information about this tab, see Managing User Accounts for Connectors. Follow these steps to configure a JSON Webhook connection:
  1. In the navigation header, select Appstore to open the Appstore.
  2. Search for and select the JSON Webhook connector to display its details page.
  3. Select Get the Data.
    get the data.jpg
  4. Copy Link.
  5. Paste the link you just copied into the appropriate location in your third-party application. The following screenshot comes from Github:
    json_webhook_3rd_party_url.png
    This location will usually be a field with a name like “Payload URL,” like in the above screenshot. However, there are exceptions. Please refer to the third-party application’s documentation if you are not sure. Also, be sure to follow the third-party application’s requirements for pasting the URL. In some applications, the token (the piece after the last backslash) must be pasted on a different line.
  6. Also in the third-party application, be sure to set the content type to “application/json.”
    json_webhook_3rd_party_content_type.png
  7. Configure other settings in the third-party application as necessary then save the webhook.
  8. Return to the JSON Webhook connector interface in Domo.
  9. (Optional) Enter a Webhook Secret if desired. If a Webhook Secret is specified, Domo will expect a X-Hub-Signature header with every post. The value of the X-Hub-Signature is the HMAC (hash-based message authentication code) of the request body using the Webhook Secret and either SHA1, SHA256 or SHA512 hash algorithms.
  10. (Optional) If you want to include metadata in the DataSet, such as IP and timestamp, select Yes in the last menu in the Details view; otherwise leave this set to No.
  11. (Optional) If you want to use “Replace” instead of “Append” when the DataSet is updated, click Change update settings, select Replace in the menu, then click Save.
  12. Select Next.
  13. Enter a DataSet name and description (optional) in the correct fields.
  14. Select Save.
You should now have a functional connector that collects data continuously from the third-party application and updates to Domo every 15 minutes.

Details Pane

This pane contains a primary menu, along with various other menus which may or may not appear depending on the report type you select.

Menu

Description

Webhook URL

Copy the Webhook URL created from the above steps.

Webhook Secret

If your data provider supports secrets in the X-Hub signature, use sha1=(sha1 hashed payload, using secret as key). Create your own secret and enter it here.

Webhook Signature Header

Enter your webhook secret header. By default, X-Hub Signature is used.

Include Metadata about the Request, including the IP and Timestamp

Select the appropriate option to include or exclude Metadata about the Request including the IP and Timestamp.

Enable Flattening

Select this checkbox to expand the list in the response.

Update Method

When Domo retrieves your data from the source, you can determine how that new data is imported into the current DataSet.

Learn more about update methods .

Reset Schema

Select this checkbox to reset the schema according to the current data.

FAQ

JSON-formatted data.
Because the connector creates a record for each row, if a row does not include data, that row appears blank in your DataSet.
The Webhook link includes a long-living single-use token, so anyone with the link can publish data to your DataSet.
The default is 25 calls per second. If you need more than 25 calls per second, contact Domo Support.
Yes, the Webhook accepts up to 100KB of data in a single call.
The connector currently supports packet sizes of 100Kb at a rate of 25 per second. That can be adjusted on a case-by-case basis.
Yes, the connector should be able to handle the addition of new columns, however, there is a limit of 500 columns that will cause the connector to fail if it exceeds that limit.
The default schedule is every 15 minutes, which is the minimum for most of our connectors.
The update schedule/refresh rate can be decreased for individual datasets through an approval center request.
We will return 200 “OK” response after we store the JSON file. If they get anything other than that, it indicates that we were not able to store the file. On the connector side, you will see an execution error if it runs into problems ingesting the data. During the next execution, it will attempt to process all the records since the last connector run.
Ideally, we would want to consume all the data during each connector execution, to prevent the queue from getting backed up with no chance of getting caught up. As mentioned, we can tweak the connector/dataset for packet size, rate, and scheduling to make sure that we are consistently pulling everything in the queue.
Yes, each JSON file is stored in a queue in the order that it is received. The next dataset execution will process the next JSON file in the queue.Video - Creating a JSON Webhook DataSet