Claude
Skills
Sign in
Back

commcare

Included with Lifetime
$97 forever

CommCare integration. Manage data, records, and automate workflows. Use when the user wants to interact with CommCare data.

General

What this skill does


# CommCare

CommCare is a mobile data collection and service delivery platform. It's used by community health workers and field staff, primarily in low-resource settings, to track and support clients.

Official docs: https://commcare-hq.readthedocs.io/

## CommCare Overview

- **Case**
  - **Case Property**
- **Form**
- **Application**
- **User**
- **Group**
- **Location**
- **Mobile Worker**
- **Web User**
- **Application Build**
- **CommCare Project**
- **Subscription**
- **API Usage**
- **Bulk Export**
- **Data Export**
- **Multimedia**
- **Report**
- **Schedule**
- **SMS Message**
- **Project Setting**
- **Download**
- **Project Transfer**
- **Domain**
- **App Release**
- **Linked Project**
- **Data File**
- **User Role**
- **Location Type**
- **Custom Data Field**
- **Case Search**
- **Fixture**
- **Call Center**
- **OTP Authenticator**
- **Audit Event**
- **Report Configuration**
- **User History**
- **Form History**
- **Case History**
- **Application History**
- **SMS History**
- **Bulk Migration**
- **Short Code**
- **Keyword**
- **Data Dictionary**
- **Remote App User**
- **CommCare Supply Point**
- **Stock Transaction**
- **Ledger**
- **Supply Point Group**
- **Program**
- **Product**
- **Stock**
- **Workflow**
- **Integration**
- **Service**
- **Task**
- **Lookup Table**
- **Lookup Table Item**
- **User Invitation**
- **Role**
- **Application Version**
- **Menu**
- **Module**
- **Form Image**
- **Case Export**
- **Form Export**
- **SMS Opt-Out**
- **App User**
- **User Group**
- **Form Question**
- **Case Index**
- **Data Source**
- **Data Source Column**
- **Dashboard**
- **Dashboard Item**
- **Report Email**
- **User Action History**
- **Case Attachment**
- **Form Attachment**
- **Data Export Group**
- **Data Export Column**
- **Case Rule**
- **Form Rule**
- **User Role Assignment**
- **Location Assignment**
- **Mobile Worker Assignment**
- **Web User Assignment**
- **Group Assignment**
- **Data Export Schedule**
- **Case Search Property**
- **Form Search Property**
- **User Search Property**
- **Location Search Property**
- **Mobile Worker Search Property**
- **Web User Search Property**
- **Group Search Property**
- **Data Export Search Property**
- **Case Rule Schedule**
- **Form Rule Schedule**
- **User Role Assignment Schedule**
- **Location Assignment Schedule**
- **Mobile Worker Assignment Schedule**
- **Web User Assignment Schedule**
- **Group Assignment Schedule**
- **Data Export Schedule Schedule**
- **Case Search Schedule**
- **Form Search Schedule**
- **User Search Schedule**
- **Location Search Schedule**
- **Mobile Worker Search Schedule**
- **Web User Search Schedule**
- **Group Search Schedule**
- **Data Export Search Schedule**
- **Case Rule Search**
- **Form Rule Search**
- **User Role Assignment Search**
- **Location Assignment Search**
- **Mobile Worker Assignment Search**
- **Web User Assignment Search**
- **Group Assignment Search**
- **Data Export Schedule Search**
- **Case Search Search**
- **Form Search Search**
- **User Search Search**
- **Location Search Search**
- **Mobile Worker Search Search**
- **Web User Search Search**
- **Group Search Search**
- **Data Export Search Search**
- **Case Rule Export**
- **Form Rule Export**
- **User Role Assignment Export**
- **Location Assignment Export**
- **Mobile Worker Assignment Export**
- **Web User Assignment Export**
- **Group Assignment Export**
- **Data Export Schedule Export**
- **Case Search Export**
- **Form Search Export**
- **User Search Export**
- **Location Search Export**
- **Mobile Worker Search Export**
- **Web User Search Export**
- **Group Search Export**
- **Data Export Search Export**
- **Case Rule Import**
- **Form Rule Import**
- **User Role Assignment Import**
- **Location Assignment Import**
- **Mobile Worker Assignment Import**
- **Web User Assignment Import**
- **Group Assignment Import**
- **Data Export Schedule Import**
- **Case Search Import**
- **Form Search Import**
- **User Search Import**
- **Location Search Import**
- **Mobile Worker Search Import**
- **Web User Search Import**
- **Group Search Import**
- **Data Export Search Import**

Use action names and parameters as needed.

## Working with CommCare

This skill uses the Membrane CLI to interact with CommCare. Membrane handles authentication and credentials refresh automatically — so you can focus on the integration logic rather than auth plumbing.

### Install the CLI

Install the Membrane CLI so you can run `membrane` from the terminal:

```bash
npm install -g @membranehq/cli@latest
```

### Authentication

```bash
membrane login --tenant --clientName=<agentType>
```

This will either open a browser for authentication or print an authorization URL to the console, depending on whether interactive mode is available.

**Headless environments:** The command will print an authorization URL. Ask the user to open it in a browser. When they see a code after completing login, finish with:

```bash
membrane login complete <code>
```

Add `--json` to any command for machine-readable JSON output.

**Agent Types** : claude, openclaw, codex, warp, windsurf, etc. Those will be used to adjust tooling to be used best with your harness

### Connecting to CommCare

Use `membrane connection ensure` to find or create a connection by app URL or domain:

```bash
membrane connection ensure "https://www.dimagi.com/commcare/" --json
```
The user completes authentication in the browser. The output contains the new connection id.

This is the fastest way to get a connection. The URL is normalized to a domain and matched against known apps. If no app is found, one is created and a connector is built automatically.

If the returned connection has `state: "READY"`, skip to **Step 2**.

#### 1b. Wait for the connection to be ready

If the connection is in `BUILDING` state, poll until it's ready:

```bash
npx @membranehq/cli connection get <id> --wait --json
```

The `--wait` flag long-polls (up to `--timeout` seconds, default 30) until the state changes. Keep polling until `state` is no longer `BUILDING`.

The resulting state tells you what to do next:

- **`READY`** — connection is fully set up. Skip to **Step 2**.
- **`CLIENT_ACTION_REQUIRED`** — the user or agent needs to do something. The `clientAction` object describes the required action:
  - `clientAction.type` — the kind of action needed:
    - `"connect"` — user needs to authenticate (OAuth, API key, etc.). This covers initial authentication and re-authentication for disconnected connections.
    - `"provide-input"` — more information is needed (e.g. which app to connect to).
  - `clientAction.description` — human-readable explanation of what's needed.
  - `clientAction.uiUrl` (optional) — URL to a pre-built UI where the user can complete the action. Show this to the user when present.
  - `clientAction.agentInstructions` (optional) — instructions for the AI agent on how to proceed programmatically.

  After the user completes the action (e.g. authenticates in the browser), poll again with `membrane connection get <id> --json` to check if the state moved to `READY`.

- **`CONFIGURATION_ERROR`** or **`SETUP_FAILED`** — something went wrong. Check the `error` field for details.

### Searching for actions

Search using a natural language description of what you want to do:

```bash
membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json
```

You should always search for actions in the context of a specific connection.

Each result includes `id`, `name`, `description`, `inputSchema` (what parameters the action accepts), and `outputSchema` (what it returns).

## Popular actions

| Name | Key | Description |
| --- | --- | --- |
| List Location Types | list-location-types | List location types defined in a CommCare domain |
| List Fixtures | list-fixtures | List lookup tables (fixtures) in a CommCare domain |
| Get Group | get-group | Retrieve a specific group by its ID |
| List Groups | list-groups | List user groups in a CommCa
Files: 1
Size: 11.2 KB
Complexity: 19/100
Category: General

Related in General