# Conversation

> `docs/plans/public-api-and-sdks.md` §6.4 — built by `services/conversation_object`.

`docs/plans/public-api-and-sdks.md` §6.4 — built by `services/conversation_object`.

| Field | Type | Description |
|---|---|---|
| `agent_id` | string (uuid) |  |
| `agent_version` | integer or null | The newest version of the agent published when the conversation started. |
| `analysis` | [Analysis](/reference/objects/Analysis) or null |  |
| `analysis_status` | string | `disabled`, `pending`, `completed`, `failed` or `skipped`. New words may be added. |
| `answered_at` | string (date-time) or null |  |
| `caller` | string | What the phone network sent as the caller. Anyone can set it. |
| `campaign_id` | string (uuid) or null |  |
| `changed_at` | string (date-time) |  |
| `channel` | string | Where it happened. One of: `voice`, `chat`, `phone`, `whatsapp`. New words may be added. |
| `collected` | object |  |
| `context` | [Context](/reference/objects/Context) or null | What the context lookup made of this call; null where none ran. |
| `direction` | string or null | Phone calls only. One of: `inbound`, `outbound`. New words may be added. |
| `disposition` | string or null | What happened on the phone line. One of: `answered`, `no_answer`, `busy`, `declined`, `failed`, `unreachable`, `voicemail`, `voicemail_left`. New words may be added. |
| `duration_seconds` | number or null |  |
| `end_reason` | string |  |
| `ended_at` | string (date-time) or null |  |
| `ended_by` | string or null | What ended it. One of: `agent`, `caller`, `system`, `transfer`, `operator`, `failure`, `api`. New words may be added. |
| `error` | string |  |
| `error_code` | string or null | A stable reason a failed conversation failed. |
| `external_id` | string or null | Your own id for it, as you sent it. |
| `form_complete` | boolean or null |  |
| `from_number` | string or null |  |
| `handoff` | [Handoff](/reference/objects/Handoff) or null |  |
| `id` | string (uuid) |  |
| `ignored_variables` | array of string |  |
| `language` | string or null |  |
| `livemode` | boolean |  |
| `metadata` | object |  |
| `mode` | string | `sandbox` is made by a test key, not real. One of: `test`, `live`, `sandbox`. New words may be added. |
| `object` | `conversation` |  |
| `phone_number_id` | string (uuid) or null |  |
| `project_id` | string (uuid) |  |
| `recording_status` | string | `none`, `pending` or `available`. |
| `revision` | integer | Goes up each time we send an event about it. |
| `sip_status_code` | integer or null |  |
| `started_at` | string (date-time) |  |
| `status` | string | Where it stands. One of: `pending`, `active`, `completed`, `failed`. New words may be added. |
| `to_number` | string or null |  |
| `turn_count` | integer |  |
| `variable_sources` | object |  |
| `variables` | object |  |
