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

# AI Voice Agent Webhook Events: Extracted Data Payloads

> Reference for CloudTalk's AI Voice Agent webhook event (voice_agent.extracted_data_ready) with an example payload and field definitions.

AI Voice Agent events hand over the results of [AI Voice Agent](https://www.cloudtalk.io/ai-voice-agents/) calls. All examples show the full request body, including the [envelope](/guides/webhooks/overview#the-event-envelope). Fields shown in **bold** are always present. A bold field nested inside an optional object is always present whenever that object is. Everything else is optional and is omitted from the payload when empty.

## voice\_agent.extracted\_data\_ready

Fires when an AI Voice Agent finishes analysing a call and has structured data to hand over: the fields you configured the agent to capture, such as a callback number, the reason for calling, or a message taken for your team. Use it to push those details straight into your CRM, helpdesk, or automation tools without polling.

<Note>
  This event fires only for calls where the AI Voice Agent is configured to run analysis, extract data, or take messages.
</Note>

<Warning>
  **Not the same as the agent's own Send via Webhook option.** An AI Voice Agent can be configured with a **Call Results Endpoint** and **Send via Webhook** switched on, which posts extracted data straight from the agent to that URL. That is a separate delivery path with its own payload: it is not signed with the [signature scheme](/guides/webhooks/verify-signatures) described in these guides, and none of the [retry, replay or retention](/guides/webhooks/delivery) behaviour applies to it. The `voice_agent.extracted_data_ready` event documented below is the account-level webhook, delivered to endpoints you register under **Account → Webhooks**. You can use either, or both.
</Warning>

```json Example theme={"system"}
{
  "event_id": "018f4c2a-7b3d-8c22-9a1b-2c3d4e5f6073",
  "type": "voice_agent.extracted_data_ready",
  "version": "v1",
  "occurred_at": "2026-08-17T09:32:44.087Z",
  "company_id": "123456",
  "data": {
    "call_uuid": "018f9a3e-5b7c-4d21-9e8f-aa12bb34cc56",
    "voice_agent_id": "66f1a2b3c4d5e6f7a8b9c0d1",
    "voice_agent_name": "Billing Receptionist",
    "extracted_data": {
      "caller_number": "+12025550143",
      "caller_name": "Jane Doe",
      "reason": "billing",
      "callback_requested": true,
      "message": "Please call back about the August invoice."
    }
  }
}
```

| Field                | Type      | Description                                                                                                                                                                                                           |
| -------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`call_uuid`**      | string    | The analysed call. Use it to join with the [call events](/guides/webhooks/events/calls) and [Conversation Intelligence events](/guides/webhooks/events/conversation-intelligence) for the same call.                  |
| `voice_agent_id`     | string    | The AI Voice Agent that handled the call: an opaque string id. Don't parse it or assume it is numeric. This is the stable reference to join on.                                                                       |
| `voice_agent_name`   | string    | The AI Voice Agent's name as configured in CloudTalk. Omitted when it cannot be resolved, for example when the agent was deleted, so join on `voice_agent_id` rather than on the name.                                |
| **`extracted_data`** | object    | The extraction result. Its keys are defined by your AI Voice Agent's own extraction configuration: CloudTalk does not define them, and the example above is illustrative. `{}` when the agent extracted nothing.      |
| `truncated`          | string\[] | Present as `["extracted_data"]` only when a very large extraction result had to be shortened to keep the event deliverable; a shortened text ends with the marker `…[truncated]`. Absent means nothing was shortened. |

<Note>
  Because `extracted_data` is shaped by your agent's configuration, don't rely on any specific key existing: validate the fields your workflow needs and handle `{}` gracefully.
</Note>


## Related topics

- [CloudTalk Webhooks](/guides/webhooks/overview.md)
- [Changelog](/changelog.md)
- [Conversation Intelligence Webhook Events: Transcripts and AI Analysis](/guides/webhooks/events/conversation-intelligence.md)
