> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/other/commcare/data-overview.md).

# Data Overview

CommCare exposes two core entities through Coupler.io: **Forms** and **Cases**. Together they cover the full picture of field program activity — what was collected and who or what was tracked.

## Entities

| Entity | What it contains                                                                      |
| ------ | ------------------------------------------------------------------------------------- |
| Forms  | One row per form submission — all question responses, metadata, and system fields     |
| Cases  | One row per case — current properties, status, open/close dates, and linked user info |

## Forms

Forms represent individual data collection events. Each row is one submission from a mobile worker.

#### Form metadata fields

| Field                | Description                                                         |
| -------------------- | ------------------------------------------------------------------- |
| `form_id`            | Unique identifier for the submission                                |
| `xmlns`              | The form definition namespace (identifies which form type was used) |
| `received_on`        | Timestamp when the server received the submission                   |
| `server_modified_on` | Last modified timestamp on the server                               |
| `app_id`             | The CommCare app that generated the submission                      |
| `build_id`           | Specific app build version used                                     |
| `user_id`            | ID of the mobile worker who submitted the form                      |
| `username`           | Username of the mobile worker                                       |
| `device_id`          | Device identifier                                                   |
| `version`            | Form version                                                        |

#### Form response fields

Question responses are included as individual columns. The exact column names depend on your form definition — each question in your CommCare form becomes a column in the exported data.

## Cases

Cases track individuals, households, or other entities over time. Each row represents one case with its current state.

#### Case fields

| Field                  | Description                                    |
| ---------------------- | ---------------------------------------------- |
| `case_id`              | Unique identifier for the case                 |
| `case_type`            | Type of case (e.g., patient, household, farm)  |
| `case_name`            | Human-readable name for the case               |
| `owner_id`             | User or group that owns the case               |
| `opened_on`            | When the case was first created                |
| `closed_on`            | When the case was closed (if applicable)       |
| `closed`               | Boolean — whether the case is currently closed |
| `server_last_modified` | Last time the case was updated on the server   |
| `external_id`          | Optional external reference ID                 |
| `indices`              | Linked parent case references                  |

#### Case properties

Like form responses, case properties depend on your CommCare project configuration. Custom case properties you've defined in your app appear as additional columns.

## Common data combinations

* **Join Forms + Cases** on `case_id` to connect individual submissions to the cases they updated
* **Append Forms** from multiple project spaces into one sheet to compare activity across regions or programs
* **Aggregate Forms** by `username` and date to build mobile worker performance summaries

## Use cases by role

{% tabs %}
{% tab title="Program managers" %}

* Track case status and closure rates across field teams
* Monitor form submission volumes by worker or location over time
* Identify gaps in data collection by filtering cases with no recent form updates
  {% endtab %}

{% tab title="Data analysts" %}

* Join form submissions to cases to build longitudinal datasets
* Aggregate survey responses to calculate program indicators (e.g., vaccination rates, visit completion)
* Feed CommCare data into BigQuery for SQL-based analysis alongside other program data sources
  {% endtab %}

{% tab title="Field supervisors" %}

* Pull daily form submissions into Google Sheets to review worker activity
* Use ChatGPT or Claude as an AI destination to summarize field reports or flag anomalies
* Monitor open case counts by owner to manage workload distribution
  {% endtab %}
  {% endtabs %}

## Platform-specific notes

* Column names for form responses and case properties vary by project — your export will only contain the fields defined in your specific CommCare app
* The `start_date` filter applies to the `received_on` field for Forms and `server_last_modified` for Cases
* Archived or deleted cases may not appear in exports depending on your CommCare HQ plan and API access level
* Multi-select question responses are typically returned as space-separated strings


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/other/commcare/data-overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
