# August 24, 2026

### ElevenLabs CLI

The [ElevenLabs CLI v1.0.0](https://github.com/elevenlabs/cli/releases/tag/v1.0.0) is now available. Every ElevenLabs API operation is available as a subcommand, with JSON, table, YAML and CSV output, automatic pagination and shell completion.

The CLI also provides local configuration workflows for ElevenAgents. Store agent, tool and test configurations as files, synchronize them with push and pull commands, manage branches, run tests, install ElevenLabs UI components and select a data residency region.

::::card-grid
:::card{title="CLI documentation" href="/guides/elevenagents-operate-cli"}
Install the CLI, authenticate and manage agents as code.
:::
::::

### Procedures

Procedures are now generally available in ElevenAgents. A procedure contains task-specific instructions and a trigger that determines when they apply. During a conversation, the agent loads the relevant procedure, allowing one agent to handle distinct tasks without placing every instruction in its system prompt.

Use free-form procedures when the agent can adapt the wording or order of instructions. Use structured procedures when steps must run in a defined order. Both types can be used alongside workflows on the same agent.

::::card-grid
:::card{title="Procedures overview" href="/guides/elevenagents-customization-procedures"}
Learn when to use procedures and how they compare with prompts and workflows.
:::

:::card{title="Free-form procedures" href="/guides/elevenagents-customization-procedures-free-form-procedures"}
Write natural-language instructions that the agent can adapt to the conversation.
:::

:::card{title="Structured procedures" href="/guides/elevenagents-customization-procedures-structured-procedures"}
Define typed steps that the agent follows in a consistent order.
:::
::::

### ElevenAgents

- **Conversation triage tickets**: Added APIs for creating tickets about agent performance, creating manual follow-up tickets, listing tickets, assigning workspace members, updating status and assignee, and adding ticket-level or turn-level comments.
- **Conversation observability**: Realtime clients can receive a `context_usage` event after each completed agent turn. The event reports the model, prompt token count and model context limit.

### SDK Releases

#### JavaScript SDK

- [v2.65.0](https://github.com/elevenlabs/elevenlabs-js/releases/tag/v2.65.0) - Added clients and types for conversation triage tickets and lightweight conversation summaries. Conversation APIs add procedure, invalid-tool-call and sort filters; procedure APIs add agent version selection; topic APIs add evaluation detail controls and frustration sorting. The release also adds knowledge base refresh frequency, test environment and alerting integration fields, plus realtime Dubbing message types.

#### Python SDK

- [v2.65.0](https://github.com/elevenlabs/elevenlabs-python/releases/tag/v2.65.0) - Added clients and types for conversation triage tickets and lightweight conversation summaries. Conversation APIs add procedure, invalid-tool-call and sort filters; procedure APIs add agent version selection; topic APIs add evaluation detail controls and frustration sorting. The release also adds knowledge base refresh frequency, test environment and alerting integration fields, and preserves repeated multipart fields for Speech to Text `keyterms` and Dubbing `webhook_ids`.

#### Swift SDK

- [v3.3.0](https://github.com/elevenlabs/elevenlabs-swift-sdk/releases/tag/v3.3.0) - Added typed client error parsing, `expects_response` handling and type-safe tool results. WebRTC startup now becomes ready when the agent joins instead of waiting for audio-track subscription. The release also hardens URL handling, suppresses unknown-event noise and removes realtime-thread allocation from software mute processing.

#### Packages

- [@elevenlabs/client@1.19.1](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fclient%401.19.1), [@elevenlabs/react@1.12.3](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact%401.12.3), [@elevenlabs/react-native@1.2.21](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact-native%401.2.21), [@elevenlabs/convai-widget-core@0.16.2](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.16.2) and [@elevenlabs/convai-widget-embed@0.16.2](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-embed%400.16.2) - WebRTC output capture now uses self-hosted AudioWorklet paths under strict content security policies. Worklet caching includes the requested source, preventing an earlier inline URL from replacing a self-hosted path. React Native setup errors now point to `@elevenlabs/react-native`.
- [@elevenlabs/client@1.20.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fclient%401.20.0), [@elevenlabs/react@1.12.4](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact%401.12.4), [@elevenlabs/react-native@1.2.22](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact-native%401.2.22), [@elevenlabs/convai-widget-core@0.16.3](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.16.3) and [@elevenlabs/convai-widget-embed@0.16.3](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-embed%400.16.3) - Added optional `webRtc.iceTransportPolicy`. Set it to `relay` to restrict WebRTC ICE candidates to TURN relays on networks that block direct UDP traffic.
- [@elevenlabs/client@1.21.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fclient%401.21.0), [@elevenlabs/react@1.13.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact%401.13.0), [@elevenlabs/types@0.21.1](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Ftypes%400.21.1), [@elevenlabs/react-native@1.2.23](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact-native%401.2.23), [@elevenlabs/convai-widget-core@0.16.4](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.16.4) and [@elevenlabs/convai-widget-embed@0.16.4](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-embed%400.16.4) - Added the `onContextUsage` callback and `ContextUsageEvent` type. React exposes the callback through `useConversation`. React Native now resolves through its package export condition instead of browser-global detection.
- [@elevenlabs/client@1.22.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fclient%401.22.0), [@elevenlabs/react@1.14.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact%401.14.0), [@elevenlabs/types@0.22.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Ftypes%400.22.0), [@elevenlabs/react-native@1.2.24](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact-native%401.2.24), [@elevenlabs/convai-widget-core@0.17.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.17.0) and [@elevenlabs/convai-widget-embed@0.17.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-embed%400.17.0) - Added first-message rich content with attributed button responses, `onExternalAgentDisconnected` and `onMCPToolApprovalRequest`. WebRTC now uses the selected input device, preserves mute state when switching microphones and fails setup if initiation data cannot be sent. The widget adds concurrency queue status, optional language selection on the collapsed trigger and first-message rendering for agents that support both text and voice.

### API

:::accordion{title="View API changes"}
## New Endpoints

### ElevenAgents

- Added nine conversation triage ticket endpoints:
  - [Create conversation ticket](https://elevenlabs.io/docs/api-reference/triage-tickets/create-agent-conversation-ticket-route) - `POST /v1/convai/triage-tickets`. The request requires `conversation_id` (string) and accepts `qa_comment` (nullable string, 1–10,000 characters) and up to 200 turn comments.
  - [List tickets](https://elevenlabs.io/docs/api-reference/triage-tickets/list-agent-conversation-tickets-route) - `GET /v1/convai/agents/{agent_id}/triage-tickets`, with cursor pagination.
  - [Create manual ticket](https://elevenlabs.io/docs/api-reference/triage-tickets/create-manual-agent-ticket-route) - `POST /v1/convai/agents/{agent_id}/triage-tickets`. The request requires `qa_comment` (string, 1–10,000 characters).
  - [List assignable users](https://elevenlabs.io/docs/api-reference/triage-tickets/get-assignable-users-route) - `GET /v1/convai/agents/{agent_id}/triage-tickets/assignable-users`. The response lists non-service-account workspace members and whether each member has access to the agent.
  - [Get ticket](https://elevenlabs.io/docs/api-reference/triage-tickets/get-agent-conversation-ticket-route) - `GET /v1/convai/triage-tickets/{agentqa_ticket_id}`.
  - [Update ticket](https://elevenlabs.io/docs/api-reference/triage-tickets/update-agent-conversation-ticket-route) - `PATCH /v1/convai/triage-tickets/{agentqa_ticket_id}`. The request accepts optional `status` and nullable `assignee_user_id`.
  - [Delete ticket](https://elevenlabs.io/docs/api-reference/triage-tickets/delete-agent-conversation-ticket-route) - `DELETE /v1/convai/triage-tickets/{agentqa_ticket_id}`.
  - [Add comment](https://elevenlabs.io/docs/api-reference/triage-tickets/add-ticket-comment-route) - `POST /v1/convai/triage-tickets/{agentqa_ticket_id}/comments`. The request requires `comment` (string, 1–10,000 characters).
  - [Add turn comment](https://elevenlabs.io/docs/api-reference/triage-tickets/add-turn-comment-route) - `POST /v1/convai/triage-tickets/{agentqa_ticket_id}/turn-comments`. The request requires zero-based `turn_index` (integer) and `comment` (string, 1–10,000 characters).

## Updated Endpoints

### ElevenAgents

- [Get signed URL](/guides/changelog-api-reference-conversations-get-signed-url) - `GET /v1/convai/conversation/get-signed-url`
  - Added optional `debug_events_request` (boolean, default `false`). Debug events require editor access to the agent.
- [Get WebRTC token](/guides/changelog-api-reference-conversations-get-webrtc-token) - `GET /v1/convai/conversation/token`
  - Added optional `debug_events_request` (boolean, default `false`). The legacy `GET /v1/convai/conversation/get_signed_url` route accepts the same parameter.
- [List conversations](/guides/changelog-api-reference-conversations-list) - `GET /v1/convai/conversations`
  - Added optional `triggered_procedure_ids` (nullable string array, maximum 50) to match conversations where any specified procedure ran.
  - Added optional `include_invalid_tool_calls` (boolean, default `false`) to include tool calls that did not run.
  - Added optional `sort_direction` (`asc` or `desc`, default `desc`) for call start time.
- [Text search conversation messages](/guides/changelog-api-reference-conversations-messages-text-search) - `GET /v1/convai/conversations/messages/text-search`
  - Added optional `triggered_procedure_ids` (nullable string array, maximum 50).
  - Added optional `include_invalid_tool_calls` (boolean, default `false`).
- [Get agent conversation topics](/guides/changelog-api-reference-conversations-topics-get) - `GET /v1/convai/agents/{agent_id}/topics`
  - Added optional `include_evaluation_criteria` (boolean, default `true`).
  - Added `frustration` to `sort_by`.
  - Topic responses add nullable `success_rate` (number), while the overall response adds `aggregated_run_count` (integer, default `0`).
  - `from_unix_secs` is floored to the start of its UTC day. A bounded range aggregates completed daily discovery runs; omitting both bounds returns the latest run.
- [List procedures](/guides/changelog-api-reference-agents-procedures-list) (`GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures`) and [Get procedure](/guides/changelog-api-reference-agents-procedures-get) (`GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id}`)
  - Added optional nullable `agent_version_id` (string) to retrieve procedures from a specific agent version.
- [Create test](/guides/changelog-api-reference-tests-create) and [Update test](https://elevenlabs.io/docs/api-reference/tests/update)
  - Added optional nullable `environment` (string) to response, simulation and tool-call unit test schemas. The value selects environment-specific URLs, headers and auth connections; it defaults to `production`.
- [Create URL document](/guides/changelog-api-reference-knowledge-base-create-from-url), [Create crawl job](/guides/changelog-api-reference-knowledge-base-create-crawl-job) and [Create folder](/guides/changelog-api-reference-knowledge-base-create-folder)
  - Added optional nullable `minimum_frequency_days` (integer, 1–180) for auto-sync. The default is `7`, and a stricter parent-folder frequency takes precedence.

### Music

- [List Music Finetunes](/guides/changelog-api-reference-music-finetunes-list) - `GET /v1/music/finetunes`
  - Increased the maximum `page_size` from 100 to 150. The default remains 50.

## Schema Changes

### ElevenAgents

- Agent update requests add optional nullable `procedures` (`object<string, ProcedureVersionRef>`). Each value requires `procedure_id` and `version_id` (strings). An empty object removes all procedures.
- Conversation initiation configuration adds `enable_procedure_ids_from_client` (boolean, default `false`). Initiation data adds optional nullable `procedure_ids` (string array); an empty array disables all procedures for the starting agent.
- `ClientEvent` adds `context_usage`.
- Soft-timeout overrides add optional nullable `additional_soft_timeout_messages` (string array).
- Constant values in analysis and schema override models now accept `null`.
- Widget configuration defaults for `mic_muting_enabled` and `transcript_enabled` changed from `false` to `true`. Set them explicitly to `false` to preserve the previous behavior.

### Workspace

- [Get user](/guides/changelog-api-reference-user-get) responses removed `xi_api_key` from `UserResponseModel`.
- `ResourceMetadataResponseModel.role_to_group_ids` now accepts custom role IDs as keys instead of restricting keys to `admin`, `editor`, `commenter` and `viewer`.
- Direct publishing responses add optional nullable `restricted_to_user_email_domains` (string array).
- Pending subscription switch responses add `go` to `next_tier`.
:::

## Related pages

- [Administration](./administration-index.md)
- [API reference](./api-reference-index.md)
- [Changelog](./changelog-index.md)
- [ElevenAgents](./elevenagents-index.md)
- [ElevenAPI](./elevenapi-index.md)
- [ElevenCreative](./elevencreative-index.md)
- [ElevenLabs Documentation Docs](../index.md)
- [General Troubleshooting FAQ](./troubleshooting-index.md)
- [General Website FAQ](./website-index.md)
- [Help Center](./help-center-2-index.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
