Skip to content

CommCare

The Commcare modules allow you to watch the forms, and cases in your Commcare account.

Getting Started with Commcare

Prerequisites

  • A Commcare account

In order to use Commcare with Ibexa Connect, it is necessary to have a CommCare account. If you do not have one, you can create a Commcare account at dimagi.com/commcare.

Note

The module dialog fields that are displayed in bold (in the Ibexa Connect scenario, not in this documentation article) are mandatory!

Connecting Commcare to Ibexa Connect

To connect your Commcare account to Ibexa Connect you need to obtain the API Key from your CommCare account and insert it in the Create a connection dialog in the Ibexa Connect module.

  1. Log in to your CommCare account.

  2. Click Settings (the cog-wheel) > My Account Settings > API Keys.

    61d5ae4c91507.gif

  3. Enter a name for the API Key, select the permissions, and click Generate API Key.

    61d5ae4f0e7e1.png

  4. Copy the API key to your clipboard.

    61d5ae500caa8.png

  5. Go to Ibexa Connect and open the CommCare module's Create a connection dialog.

    61d5ae51284c9.gif

  6. In the Connection name field, enter a name for the connection.

  7. In the Username field, enter your account's username.

  8. In the API Key field, enter the API details copied in step 4 and Continue.

The connection has been established.

Forms

To trigger the watch modules, see Setting Up the CommCare Webhooks.

Watch New Form Submissions

Triggers when a new form is submitted.

Webhook Name Enter a name for the webhook.

Cases

To trigger the watch modules, see Setting Up the CommCare Webhooks.

Watch New Cases

Triggers when a new case is created.

Webhook Name Enter a name for the webhook.

Watch New or Updated Case

Triggers when a new case is created or an existing case is modified.

Webhook Name Enter a name for the webhook.

Watch Updated Case

Triggers when an existing case is modified.

Webhook Name Enter a name for the webhook.

Other

Make an API Call

Performs an arbitrary authorized API call.

URL

Enter a path relative to https://api.commcarehq.org/. For example: /a/project/api/v0.5/web-user

For the list of available endpoints, refer to the CommCare API Documentation.

Method

Select the HTTP method you want to use:

GET to retrieve information for an entry.

POST to create a new entry.

PUT to update/replace an existing entry.

PATCH to make a partial entry update.

DELETE to delete an entry.

Headers

Enter the desired request headers. You don't have to add authorization headers; we already did that for you.

Query String

Enter the request query string.

Body

Enter the body content for your API call.

Example of Use - Get Users

The following API call returns users of the specified project from your CommCare account:

URL: /a/telecommute/api/v0.5/web-user/

Method: GET

61d5ae5346a44.png

Matches of the search can be found in the module's Output under Bundle > Body > objects. In our example, 1 user details were returned:

61d5ae545935a.png

Setting up the CommCare Webhooks

  1. Open any Watch module, establish a connection, click Save, and copy the URL address to your clipboard. Click OK and save the trigger.

    61d5ae559ff82.gif

  2. Log in to your CommCare account. From the Dashboard, click Settings > Connection Settings > Add Connection Settings.

    61d5ae581af0e.gif

  3. Enter the details for the connection and click Save.

    Name

    Enter a name for the webhook.

    Address to send notifications

    Enter the email address to which you want to send the trigger notifications.

    URL

    Enter the URL address copied in step 1.

    Auth Type

    Select the authentication type and enter the details:

    • None

    • HTTP Basic

    • HTTP Digest

    • Bearer Token

    • OAuth1

    • OAuth 2.0 Password Grant

    Skip Certificate Verification

    Select the checkbox to skip the certificate verification.

    61d5ae5a6e2ce.png

You have created the connection successfully.

61d5ae5b98a23.png

Once you have created the webhook connection, setup the required data forwarding as mentioned here.