> ## Documentation Index
> Fetch the complete documentation index at: https://docs.threetone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Data collection

> Define primitive analysis fields and inspect values already stored with a conversation.

Data collection defines the facts you want a conversation review to extract. Use a narrow field such as a requested appointment date instead of asking for an unrestricted copy of the transcript.

<Note>
  Field definitions persist, and conversation reads expose stored collection results. Automatic extraction and rerunning analysis are unavailable in the current analysis execution path.
</Note>

You need agent edit access. Definitions live in `platform_settings.data_collection`, keyed by a stable field ID.

| Field | What to author |
| - | - |
| `type` | `boolean`, `string`, `integer`, or `number` |
| `description` | The fact to extract and how to recognize it |
| `name` | An optional readable label |
| `enum` | Optional allowed string values |
| `llm` | Optional per-field analysis model preference |

<Steps>
  <Step title="Define a small field set" id="collection-define-fields">
    Choose stable IDs and primitive types. Object and array results are not supported by this property contract. Include only information needed for the review.
  </Step>

  <Step title="Save and inspect the definition" id="collection-save-definition">
    Use Analysis settings or an [agent draft](/api-reference/agents-platform/create-agent-draft). `data_collection_scopes` can set each field to `conversation` or `agent`; missing entries default to conversation scope.
  </Step>

  <Step title="Inspect stored values" id="collection-inspect-values">
    Read `analysis.data_collection_results` from [conversation details](/api-reference/agents-platform/get-conversation-details). Compare `value` and `rationale` with the transcript. Keep missing values distinct from false, zero, and an empty string.
  </Step>
</Steps>

<AccordionGroup>
  <Accordion title="Can one property return a nested customer object?" id="collection-faq-object">No. Use separate primitive fields with clearly defined purposes.</Accordion>
  <Accordion title="Does saving a field backfill old conversations?" id="collection-faq-backfill">No. The saved definition does not trigger extraction or update prior results.</Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.