> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

### ElevenAgents

- **WhatsApp branch and environment overrides**: [Outbound WhatsApp messages](/docs/api-reference/whats-app/outbound-message) and [outbound calls](/docs/api-reference/whats-app/outbound-call) now honor `branch_id` and `environment` passed in `conversation_initiation_client_data`. Overrides are validated before anything is sent — an unknown branch or environment is rejected with an error — and persist for the conversation, so a customer's reply resumes on the requested [branch](/docs/eleven-agents/operate/versioning) and [environment](/docs/eleven-agents/integrate/environment-variables). See the [WhatsApp guide](/docs/eleven-agents/whatsapp) for examples.
- **Procedure APIs**: Added eight public, branch-scoped operations for managing [procedures](/docs/eleven-agents/customization/procedures). You can create, list, retrieve and remove procedures; create, retrieve or discard draft changes; and compile procedure drafts into an agent workflow. Procedure creation accepts `name`, `content`, `type` and `trigger`. An empty `trigger` creates a sub-procedure, while an omitted or `null` trigger is derived from the procedure content.
- **Knowledge base crawl jobs**: Added APIs to create, list, inspect and cancel crawl jobs. Create requests require `url` (string) and support crawl depth, page limits, URL patterns, sitemap URLs, folder placement, automatic synchronization and removal of unavailable documents.
- **Bulk knowledge base management**: Added [bulk dependency checks](/docs/api-reference/knowledge-base/dependent-agents-multiple) and [bulk deletion](/docs/api-reference/knowledge-base/bulk-delete) for 1–20 unique document or folder IDs. Dependency checks support pagination and `dependent_type`; deletion returns an independent success or failure for each ID. Setting `force: true` also removes dependencies and recursively deletes non-empty folders.
- **Batch call result export**: Added [Export batch call results](/docs/api-reference/batch-calling/export) to download recipients and conversation results from a terminal batch as CSV.
- **Conversation filters and analysis data**: [List conversations](/docs/api-reference/conversations/list) and [Text search conversation messages](/docs/api-reference/conversations/messages/text-search) add optional `visited_agent_ids` and `visited_agent_branch_ids` array filters, each limited to 50 values. List requests also accept `data_collection_ids` and `evaluation_criteria_ids` to include corresponding results in each conversation summary. Summaries add optional `data_collection_results`, `evaluation_criteria_results` and `tag_ids`.
- **Referenced analysis configuration**: Agent platform settings add the optional, nullable `analysis_items` field, typed as `AgentAnalysisItems`, to attach evaluation and data-collection items by reference. A `null` value indicates that the agent still uses the legacy inline fields; an empty value indicates a migrated agent with no attached items.
- **Procedure dependency metadata**: Procedure references add `trigger` (string) and arrays for `referenced_tool_ids`, `referenced_kb_ids`, `referenced_procedure_ids` and `referenced_dynamic_variables`.
- **WebRTC token response**: [Get WebRTC token](/docs/api-reference/conversations/get-webrtc-token) responses now require `conversation_id` (string) in addition to `token`. This is a breaking schema change for clients that validate or deserialize the response shape.
- **Knowledge base RAG results**: `KnowledgeBaseRagToolResultModel` adds `chunks` (`KnowledgeBaseRagChunkModel[]`) for RAG-result-in-tool-result mode.

### Studio

- **Draft project status**: `ProjectCreationMetaResponseModel.status` adds `draft`. The project creation type now uses the shared `ProjectCreationMetaType` enum with the same existing values.

### Voices

- **Voice accents**: Added `GET /v1/voices/accents` to list the accents available in the shared voice library. Results can be filtered by `language` and `model_id`, and each accent returns its `accent`, `language`, `code` and human-readable `name`. The `accent` value can be passed to the `accent` query parameter on [Get shared voices](/docs/api-reference/voices/voice-library/get-shared) to filter shared voices.

### Workspaces

- **Webhook usage reporting**: `WebhookUsageType` adds `Flows`.

### SDK Releases

#### JavaScript SDK

- [v2.60.0](https://github.com/elevenlabs/elevenlabs-js/releases/tag/v2.60.0) - Added `voices.accents.get` to list voice accents in the shared voice library, along with the ElevenAgents procedure, knowledge base crawl job and bulk management APIs and the referenced analysis configuration from the latest schema.

#### Python SDK

- [v2.60.0](https://github.com/elevenlabs/elevenlabs-python/releases/tag/v2.60.0) - Added the voice accents, ElevenAgents procedure, knowledge base crawl job and bulk management APIs from the latest schema. Also fixed `AsyncConversation` startup so it no longer blocks, and corrected list-of-primitive multipart fields to be sent as repeated form fields.

#### Packages

- [@elevenlabs/client@1.15.2](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fclient%401.15.2) - Fixed `onAudioAlignment` on WebRTC transports by forwarding alignment metadata from audio messages while leaving audio playback on the LiveKit track.
- [@elevenlabs/react@1.10.2](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact%401.10.2), [@elevenlabs/react-native@1.2.16](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact-native%401.2.16), [@elevenlabs/convai-widget-core@0.14.12](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.14.12) and [@elevenlabs/convai-widget-embed@0.14.12](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-embed%400.14.12) - Updated dependencies to include the WebRTC alignment fix from `@elevenlabs/client@1.15.2`.

### API

<Accordion title="View API changes">

## New Endpoints

### ElevenAgents

- `POST /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures`
  - Creates a procedure and returns its `procedure_id` (string)
  - Accepts optional `name` (string, maximum 200 characters), `content` (string), `type` (`ProcedureType`, default `free_form`) and `trigger` (nullable string)
- `GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures`
  - Lists branch procedures with `procedure_id`, `version_id`, `name`, `type`, `trigger` and `has_draft`
  - Excludes procedure content; retrieve an individual procedure to read its content
- `GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id}`
  - Accepts optional `version_id` (string); otherwise returns the version at the branch head
  - Returns `name`, `content`, `type` and `trigger`
- `DELETE /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id}`
  - Removes the procedure from the branch's draft working set
- `GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id}/draft`
  - Returns the current procedure draft
- `PATCH /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id}/draft`
  - Creates or updates a draft
  - Requires `name` (string, maximum 200 characters), `content` (string, maximum 50,000 characters) and `type` (`ProcedureType`); accepts optional `trigger` (nullable string)
- `DELETE /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id}/draft`
  - Discards draft changes and resets the procedure to its committed version
- `POST /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/compile`
  - Compiles procedure drafts into an `AgentWorkflowResponseModel`
- [Create crawl job](/docs/api-reference/knowledge-base/create-crawl-job) - `POST /v1/convai/knowledge-base/crawl`
  - Requires `url` (string)
  - Accepts optional `max_depth` (integer, 1–5, default `3`), `max_pages` (integer, 1–10,000, default `1000`), `pattern` (string), `sitemap_urls` (string array), `parent_folder_id` (string), `enable_auto_sync` (boolean, default `false`) and `auto_remove` (boolean, default `false`)
- [List crawl jobs](/docs/api-reference/knowledge-base/list-crawl-jobs) - `GET /v1/convai/knowledge-base/crawl`
  - Accepts optional `include_job_ids` (string array), `page_size` (integer, 1–100, default `30`) and `cursor` (string)
- [Get crawl job](/docs/api-reference/knowledge-base/get-crawl-job) - `GET /v1/convai/knowledge-base/crawl/{crawl_job_id}`
- [Cancel crawl job](/docs/api-reference/knowledge-base/cancel-crawl-job) - `POST /v1/convai/knowledge-base/crawl/{crawl_job_id}/cancel`
- [Get dependent agents for multiple documents](/docs/api-reference/knowledge-base/dependent-agents-multiple) - `POST /v1/convai/knowledge-base/dependent-agents`
  - Requires `document_ids` (array of 1–20 unique strings)
  - Accepts optional `dependent_type` (`KnowledgeBaseDependentType`, default `all`), `page_size` (integer, 1–100, default `30`) and `cursor` (string)
- [Bulk delete knowledge base documents](/docs/api-reference/knowledge-base/bulk-delete) - `POST /v1/convai/knowledge-base/bulk-delete`
  - Requires `document_ids` (array of 1–20 unique strings)
  - Accepts optional `force` (boolean, default `false`)
  - Returns a success or failure result for each document ID
- [Export batch call results](/docs/api-reference/batch-calling/export) - `GET /v1/convai/batch-calling/{batch_id}/export`
  - Returns terminal batch recipients and conversation results as CSV

### Voices

- `GET /v1/voices/accents`
  - Lists the accents available in the shared voice library
  - Accepts optional `language` (string) and `model_id` (string) query parameters
  - Each accent returns `accent`, `language`, `code` and `name`

## Updated Endpoints

### ElevenAgents

- [List conversations](/docs/api-reference/conversations/list) - `GET /v1/convai/conversations`
  - Added optional `visited_agent_ids` and `visited_agent_branch_ids` string array filters, each limited to 50 values
  - Added optional `data_collection_ids` and `evaluation_criteria_ids` string arrays to select analysis results for each summary
  - Response summaries add the optional object fields `data_collection_results` and `evaluation_criteria_results`, plus the string array `tag_ids`
- [Text search conversation messages](/docs/api-reference/conversations/messages/text-search) - `GET /v1/convai/conversations/messages/text-search`
  - Added optional `visited_agent_ids` and `visited_agent_branch_ids` string array filters, each limited to 50 values
- [Get WebRTC token](/docs/api-reference/conversations/get-webrtc-token) - `GET /v1/convai/conversation/token`
  - Responses now require `conversation_id` (string)
  - Breaking: strict response validators and deserializers must accept the new required field

## Schema Changes

### ElevenAgents

- Agent platform request and response settings add the optional, nullable `analysis_items` field, typed as `AgentAnalysisItems`, for referenced evaluation and data-collection configuration
- Procedure references add `trigger` (string), `referenced_tool_ids` (string array), `referenced_kb_ids` (string array), `referenced_procedure_ids` (string array) and `referenced_dynamic_variables` (string array)
- `KnowledgeBaseRagToolResultModel` adds `chunks` (`KnowledgeBaseRagChunkModel[]`)

### Studio

- `ProjectCreationMetaResponseModel.status` adds `draft`
- `ProjectCreationMetaResponseModel.type` now references the shared `ProjectCreationMetaType` enum

### Workspaces

- `WebhookUsageType` adds `Flows`

</Accordion>