> 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.

# Simuler une conversation (flux)

POST https://api.elevenlabs.io/v1/convai/agents/{agent_id}/simulate-conversation/stream
Content-Type: application/json

Obsolète. Ce point de terminaison sera supprimé le 31 octobre 2026. Utilisez les points de terminaison `/v1/convai/agent-testing/create` et `/v1/convai/agents/:agent_id/run-tests` pour créer et exécuter des simulations. Exécutez une conversation entre l'agent et un utilisateur simulé, puis diffusez la réponse en continu. La réponse est renvoyée sous forme de listes partielles de messages à concaténer et, une fois la conversation terminée, un unique message final contenant l'analyse de la conversation est envoyé.

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/agents/simulate-conversation-stream

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Path parameters

- `agent_id` (string, required) — L’ID d’un agent. Il est renvoyé lors de la création de l’agent.

### Body (application/json)

This endpoint expects an object.

- `simulation_specification` (ConversationSimulationSpecification, required) — Une spécification détaillant la manière dont la conversation doit être simulée
- `extra_evaluation_criteria` (list of PromptEvaluationCriteria, optional) — Liste des critères d’évaluation à tester.
- `new_turns_limit` (integer, optional, default: 100) — Nombre maximal de nouveaux tours à générer dans la simulation de conversation

## Errors

### 422 Agents Simulate Conversation Stream Request Unprocessable Entity Error

Erreur de validation

- `detail` (list of ValidationError, optional)

## Types

### ConversationSimulationSpecification

Une spécification qui sera utilisée pour simuler une conversation entre un agent et un utilisateur IA.

- `simulated_user_config` (AgentConfig, required)
- `tool_mock_config` (map from string to ToolMockConfig, optional)
- `partial_conversation_history` (list of ConversationHistoryTranscriptCommonModelInput, optional) — Un historique partiel de conversation à partir duquel démarrer la simulation. S'il est vide, la simulation démarre sans historique.
- `dynamic_variables` (map from string to any, optional)

### PromptEvaluationCriteria

Une évaluation utilisant la transcription et un prompt pour obtenir une réponse oui/non

- `id` (string, required) — L’identifiant unique du critère d’évaluation.
- `name` (string, required)
- `conversation_goal_prompt` (string, required) — Le prompt que l’agent doit utiliser pour évaluer la conversation
- `type` ("prompt", optional) — Le type de critère d’évaluation.
- `use_knowledge_base` (boolean, optional, default: false) — Indique si la base de connaissances de l’agent doit être utilisée lors de l’évaluation du prompt.
- `scope` (enum, optional, default: conversation) — La portée du contexte de transcription utilisée pour évaluer ce critère. « conversation » utilise la transcription complète ; « agent » utilise uniquement la partie durant laquelle l'agent défini était actif.
  - Allowed values: `conversation`, `agent`
- `llm` (enum, optional) — LLM model to use for this evaluation criteria. If not set, uses agent's analysis_llm default.
  - Allowed values: `gpt-4o-mini`, `gpt-4o`, `gpt-4`, `gpt-4-turbo`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-5`, `gpt-5.1`, `gpt-5.2`, `gpt-5.2-chat-latest`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano`, `gpt-5.5`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-6-astra`, `gpt-6-sol`, `gpt-6-luna`, `gpt-6.1-sol`, `gpt-5-mini`, `gpt-5-nano`, `gpt-3.5-turbo`, `gemini-1.5-pro`, `gemini-1.5-flash`, `gemini-2.0-flash`, `gemini-2.0-flash-lite`, `gemini-2.5-flash-lite`, `gemini-2.5-flash`, `gemini-3-pro-preview`, `gemini-3-flash-preview`, `gemini-3.1-pro-preview`, `gemini-3.1-flash-lite-preview`, `gemini-3.1-flash-lite`, `gemini-3.5-flash`, `gemini-3.5-flash-lite`, `gemini-3.6-flash`, `gemini-3.7-flash`, `gemini-3.8-flash`, `gemini-4-argon`, `claude-sonnet-4-5`, `claude-opus-4-6`, `claude-opus-4-7`, `claude-opus-4-8`, `claude-opus-5`, `claude-opus-5-5`, `claude-sonnet-4-6`, `claude-sonnet-5`, `claude-sonnet-5-5`, `claude-sonnet-4`, `claude-haiku-4-5`, `claude-haiku-5-5`, `claude-3-7-sonnet`, `claude-3-5-sonnet`, `claude-3-5-sonnet-v1`, `claude-3-haiku`, `grok-beta`, `custom-llm`, `qwen3-4b`, `qwen3-30b-a3b`, `qwen36-35b-a3b`, `qwen35-397b-a17b`, `gpt-oss-20b`, `gpt-oss-120b`, `glm-45-air-fp8`, `glm-52`, `deepseek-v41-flash`, `nemotron-35-super-vl-nvfp4`, `gemini-2.5-flash-preview-09-2025`, `gemini-2.5-flash-lite-preview-09-2025`, `gemini-2.5-flash-preview-05-20`, `gemini-2.5-flash-preview-04-17`, `gemini-2.5-flash-lite-preview-06-17`, `gemini-2.0-flash-lite-001`, `gemini-2.0-flash-001`, `gemini-1.5-flash-002`, `gemini-1.5-flash-001`, `gemini-1.5-pro-002`, `gemini-1.5-pro-001`, `claude-sonnet-4@20250514`, `claude-sonnet-4-5@20250929`, `claude-haiku-4-5@20251001`, `claude-3-7-sonnet@20250219`, `claude-3-5-sonnet@20240620`, `claude-3-5-sonnet-v2@20241022`, `claude-3-haiku@20240307`, `gpt-5-2025-08-07`, `gpt-5.1-2025-11-13`, `gpt-5.2-2025-12-11`, `gpt-5.4-2026-03-05`, `gpt-5.4-mini-2026-03-17`, `gpt-5.4-nano-2026-03-17`, `gpt-5.5-2026-04-23`, `gpt-5-mini-2025-08-07`, `gpt-5-nano-2025-08-07`, `gpt-4.1-2025-04-14`, `gpt-4.1-mini-2025-04-14`, `gpt-4.1-nano-2025-04-14`, `gpt-4o-mini-2024-07-18`, `gpt-4o-2024-11-20`, `gpt-4o-2024-08-06`, `gpt-4o-2024-05-13`, `gpt-4-0613`, `gpt-4-0314`, `gpt-4-turbo-2024-04-09`, `gpt-3.5-turbo-0125`, `gpt-3.5-turbo-1106`, `watt-tool-8b`, `watt-tool-70b`
- `scoring_mode` (enum, optional, default: binary) — Mode d’évaluation de ce critère. 'binary' produit success/failure/unknown. 'numeric_uniform' renvoie un nombre sur l’échelle [0, max_score], normalisé en pourcentage global de réussite de la conversation.
  - Allowed values: `binary`, `numeric_uniform`
- `max_score` (integer, optional, default: 100) — Maximum value of the numeric score scale (minimum is always 0). Only used when scoring_mode is 'numeric_uniform'.
- `score_instructions` (string, optional) — Instructions facultatives en texte libre indiquant comment attribuer des valeurs sur l'échelle numérique. Utilisées uniquement lorsque scoring_mode est défini sur 'numeric_uniform'.

### ValidationError

- `loc` (list of ValidationErrorLocItem, required)
- `msg` (string, required)
- `type` (string, required)

### AgentConfig

- `first_message` (string, optional, default: ) — S’il n’est pas vide, premier message que l’agent prononcera. S’il est vide, l’agent attend que l’utilisateur commence la discussion.
- `language` (string, optional, default: en) — Langue de l'agent, utilisée pour l'ASR et le TTS
- `hinglish_mode` (boolean, optional, default: false) — Lorsqu’elle est activée, l’agent intègre des mots et des expressions en anglais dans les réponses en hindi, en malayalam, en télougou ou en kannada.
- `dynamic_variables` (any, optional)
- `disable_first_message_interruptions` (boolean, optional, default: false) — Si true, l’utilisateur ne pourra pas interrompre l’agent pendant la diffusion du premier message.
- `max_conversation_duration_message` (string, optional, default: ) — S’il n’est pas vide, message que l’agent enverra lorsque la durée maximale de la conversation sera atteinte.
- `text_behavior_overrides` (map from string to BehaviorOverride, optional) — Remplacements du comportement de réponse par canal pour les conversations textuelles. Les valeurs par défaut intégrées au canal s’appliquent lorsqu’aucune valeur n’est définie.
- `prompt` (PromptAgentApiModelOutput, optional) — Le prompt de l’agent

### ToolMockConfig

- `default_return_value` (string, optional, default: Tool Called.)
- `default_is_error` (boolean, optional, default: false)

### ConversationHistoryTranscriptCommonModelInput

- `role` (enum, required)
  - Allowed values: `user`, `agent`
- `time_in_call_secs` (integer, required)
- `agent_metadata` (AgentMetadata, optional)
- `message` (string, optional)
- `multivoice_message` (ConversationHistoryMultivoiceMessageModel, optional) — Représente un message provenant d'un agent à plusieurs voix.
- `tool_calls` (list of ConversationHistoryTranscriptToolCallCommonModelInput, optional)
- `tool_results` (list of ConversationHistoryTranscriptCommonModelInputToolResultsItem, optional)
- `feedback` (UserFeedback, optional)
- `llm_override` (string, optional)
- `producing_llm` (string, optional)
- `conversation_turn_metrics` (ConversationTurnMetrics, optional)
- `rag_retrieval_info` (RagRetrievalInfo, optional)
- `llm_usage` (LlmUsageInput, optional)
- `interrupted` (boolean, optional, default: false)
- `ignored_as_backchannel` (boolean, optional, default: false)
- `platform_event` (enum, optional)
  - Allowed values: `user_turn_timeout`, `skip_turn_wait_elapsed`
- `original_message` (string, optional)
- `reasoning` (list of ConversationReasoningModel, optional)
- `source_medium` (enum, optional)
  - Allowed values: `audio`, `dtmf`, `text`, `image`, `file`
- `source_event_id` (integer, optional)
- `used_static_kb_document_ids` (list of string, optional)
- `user_identifier` (string, optional)
- `id` (string, optional)
- `triggered_guardrails` (list of TriggeredGuardrailCommonModel, optional)

### ValidationErrorLocItem

- string
- integer

### BehaviorOverride

- `verbosity` (enum, optional) — Remplacement du niveau de verbosité. La valeur par défaut sous-jacente s’applique lorsqu’aucune valeur n’est définie.
  - Allowed values: `auto`, `concise`, `thorough`
- `output_format` (enum, optional) — Remplacement du format de sortie. La valeur par défaut sous-jacente s'applique s'il n'est pas défini.
  - Allowed values: `mp3_22050_32`, `mp3_44100_32`, `mp3_44100_64`, `mp3_44100_96`, `mp3_44100_128`, `mp3_44100_192`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `ulaw_8000`
- `interaction_budget` (enum, optional) — Remplacement du budget d’interaction. La valeur par défaut sous-jacente s’applique si non défini.
  - Allowed values: `realtime`, `5_minutes`, `10_minutes`, `1_hour`

### PromptAgentApiModelOutput

- `prompt` (string, optional, default: ) — Le prompt de l’agent
- `llm` (enum, optional) — Le LLM à interroger avec le prompt et l’historique de discussion. En cas de résidence des données européenne, le LLM doit être pris en charge dans l’environnement de résidence des données.
  - Allowed values: `gpt-4o-mini`, `gpt-4o`, `gpt-4`, `gpt-4-turbo`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-5`, `gpt-5.1`, `gpt-5.2`, `gpt-5.2-chat-latest`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano`, `gpt-5.5`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-6-astra`, `gpt-6-sol`, `gpt-6-luna`, `gpt-6.1-sol`, `gpt-5-mini`, `gpt-5-nano`, `gpt-3.5-turbo`, `gemini-1.5-pro`, `gemini-1.5-flash`, `gemini-2.0-flash`, `gemini-2.0-flash-lite`, `gemini-2.5-flash-lite`, `gemini-2.5-flash`, `gemini-3-pro-preview`, `gemini-3-flash-preview`, `gemini-3.1-pro-preview`, `gemini-3.1-flash-lite-preview`, `gemini-3.1-flash-lite`, `gemini-3.5-flash`, `gemini-3.5-flash-lite`, `gemini-3.6-flash`, `gemini-3.7-flash`, `gemini-3.8-flash`, `gemini-4-argon`, `claude-sonnet-4-5`, `claude-opus-4-6`, `claude-opus-4-7`, `claude-opus-4-8`, `claude-opus-5`, `claude-opus-5-5`, `claude-sonnet-4-6`, `claude-sonnet-5`, `claude-sonnet-5-5`, `claude-sonnet-4`, `claude-haiku-4-5`, `claude-haiku-5-5`, `claude-3-7-sonnet`, `claude-3-5-sonnet`, `claude-3-5-sonnet-v1`, `claude-3-haiku`, `grok-beta`, `custom-llm`, `qwen3-4b`, `qwen3-30b-a3b`, `qwen36-35b-a3b`, `qwen35-397b-a17b`, `gpt-oss-20b`, `gpt-oss-120b`, `glm-45-air-fp8`, `glm-52`, `deepseek-v41-flash`, `nemotron-35-super-vl-nvfp4`, `gemini-2.5-flash-preview-09-2025`, `gemini-2.5-flash-lite-preview-09-2025`, `gemini-2.5-flash-preview-05-20`, `gemini-2.5-flash-preview-04-17`, `gemini-2.5-flash-lite-preview-06-17`, `gemini-2.0-flash-lite-001`, `gemini-2.0-flash-001`, `gemini-1.5-flash-002`, `gemini-1.5-flash-001`, `gemini-1.5-pro-002`, `gemini-1.5-pro-001`, `claude-sonnet-4@20250514`, `claude-sonnet-4-5@20250929`, `claude-haiku-4-5@20251001`, `claude-3-7-sonnet@20250219`, `claude-3-5-sonnet@20240620`, `claude-3-5-sonnet-v2@20241022`, `claude-3-haiku@20240307`, `gpt-5-2025-08-07`, `gpt-5.1-2025-11-13`, `gpt-5.2-2025-12-11`, `gpt-5.4-2026-03-05`, `gpt-5.4-mini-2026-03-17`, `gpt-5.4-nano-2026-03-17`, `gpt-5.5-2026-04-23`, `gpt-5-mini-2025-08-07`, `gpt-5-nano-2025-08-07`, `gpt-4.1-2025-04-14`, `gpt-4.1-mini-2025-04-14`, `gpt-4.1-nano-2025-04-14`, `gpt-4o-mini-2024-07-18`, `gpt-4o-2024-11-20`, `gpt-4o-2024-08-06`, `gpt-4o-2024-05-13`, `gpt-4-0613`, `gpt-4-0314`, `gpt-4-turbo-2024-04-09`, `gpt-3.5-turbo-0125`, `gpt-3.5-turbo-1106`, `watt-tool-8b`, `watt-tool-70b`
- `reasoning_effort` (enum, optional) — Effort de raisonnement du modèle. Disponible uniquement pour certains modèles.
  - Allowed values: `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max`
- `thinking_budget` (integer, optional) — Nombre maximal de jetons utilisés pour le raisonnement. Utilisez 0 pour le désactiver si le modèle le prend en charge.
- `enable_reasoning_summary` (boolean, optional, default: false) — Activez les résumés du raisonnement du modèle. Lorsqu’ils sont désactivés, nous ne demandons pas de résumés au fournisseur lorsque cela est possible, afin de réduire le TTFB. Non compatible avec ZRM.
- `temperature` (double, optional) — La température du LLM. La valeur par défaut est 0. Définissez-la sur null pour omettre entièrement le paramètre de la requête au LLM, ce qui est utile pour les LLM personnalisés qui refusent le champ de température.
- `max_tokens` (integer, optional, default: -1) — S’il est supérieur à 0, nombre maximal de jetons que le LLM peut prédire
- `tool_ids` (list of string, optional) — Liste des ID des outils utilisés par l’agent.
- `tool_ids_strict` (boolean, optional, default: false) — Only applies as a conversation override, allowed whenever tool_ids may be overridden. When true, the overridden tool_ids is the full list of tools allowed in the conversation, including tools on workflow nodes. Ignored when set on the agent.
- `built_in_tools` (BuiltInToolsOutput, optional) — Outils système intégrés à utiliser par l'agent
- `enable_parallel_tool_calls` (boolean, optional, default: true) — Activez les appels d’outils parallèles. Lorsqu’ils sont activés, l’agent peut exécuter plusieurs outils en parallèle au cours d’un même tour. Cette option n’est pas prise en charge par tous les modèles.
- `mcp_server_ids` (list of string, optional) — Liste des identifiants de serveurs MCP à utiliser par l'agent
- `native_mcp_server_ids` (list of string, optional) — Liste des identifiants de serveurs MCP natifs à utiliser par l'agent
- `knowledge_base` (list of KnowledgeBaseLocator, optional) — Liste des bases de connaissances à utiliser par l'agent
- `custom_llm` (CustomLlm, optional) — Définition d'un LLM personnalisé si le champ LLM est défini sur « CUSTOM_LLM »
- `ignore_default_personality` (boolean, optional) — Indique s'il faut supprimer les lignes de personnalité par défaut du prompt système.
- `rag` (RagConfigOutput, optional) — Configuration pour RAG
- `timezone` (string, optional) — Fuseau horaire utilisé pour afficher l’heure actuelle dans le prompt système. S’il est défini, l’heure actuelle sera incluse dans le prompt système à l’aide de ce fuseau horaire. Doit être un nom de fuseau horaire valide, par exemple « America/New_York », « Europe/London » ou « UTC ». Recommandé pour des réponses tenant compte de l’heure avec précision. Sans cela, l’agent ne connaît ni la date ni l’heure actuelles, sauf si vous les fournissez via des variables dynamiques ou des outils, ce qui peut entraîner des références temporelles incorrectes ou inventées.
- `backup_llm_config` (PromptAgentApiModelOutputBackupLlmConfig, optional) — Configuration du basculement en cascade des LLM de secours. Peut être désactivée, utiliser les valeurs par défaut du système ou spécifier un ordre personnalisé.
- `cascade_timeout_seconds` (double, optional, default: 4) — Délai, en secondes, avant le basculement vers le LLM de secours. Doit être compris entre 2 et 15 secondes.
- `tools` (list of PromptAgentApiModelOutputToolsItem, optional, deprecated) — Liste des outils que l'agent peut utiliser au cours de la conversation, utilisez plutôt tool_ids.

### AgentMetadata

- `agent_id` (string, required)
- `branch_id` (string, optional)
- `workflow_node_id` (string, optional)
- `version_id` (string, optional)

### ConversationHistoryMultivoiceMessageModel

Représente un message provenant d'un agent à plusieurs voix.

- `parts` (list of ConversationHistoryMultivoiceMessagePartModel, required)

### ConversationHistoryTranscriptToolCallCommonModelInput

- `request_id` (string, required)
- `tool_name` (string, required)
- `params_as_json` (string, required)
- `tool_has_been_called` (boolean, required)
- `type` (enum, optional)
  - Allowed values: `system`, `webhook`, `client`, `mcp`, `workflow`, `api_integration_webhook`, `smb`
- `tool_id` (string, optional) — ID de l’outil appelé. Non défini pour les outils sans ID, tels que les outils système.
- `tool_details` (ConversationHistoryTranscriptToolCallCommonModelInputToolDetails, optional)

### ConversationHistoryTranscriptCommonModelInputToolResultsItem

- Conversation History Transcript Other Tools Result Common Model: ConversationHistoryTranscriptOtherToolsResultCommonModel
- Conversation History Transcript System Tool Result Common Model Input: ConversationHistoryTranscriptSystemToolResultCommonModelInput
- Conversation History Transcript API Integration Webhook Tools Result Common Model Input: ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelInput
- Conversation History Transcript Workflow Tools Result Common Model Input: ConversationHistoryTranscriptWorkflowToolsResultCommonModelInput

### UserFeedback

- `score` (enum, required)
  - Allowed values: `like`, `dislike`
- `time_in_call_secs` (integer, required)

### ConversationTurnMetrics

- `metrics` (map from string to MetricRecord, optional)
- `convai_asr_provider` (string, optional)
- `convai_tts_model` (string, optional)
- `convai_tts_cascade` (string, optional)
- `voice_id` (string, optional)

### RagRetrievalInfo

- `chunks` (list of RagChunkMetadata, required)
- `embedding_model` (enum, required, default: e5_mistral_7b_instruct)
  - Allowed values: `e5_mistral_7b_instruct`, `multilingual_e5_large_instruct`
- `retrieval_query` (string, required)
- `rag_latency_secs` (double, required)
- `used_chunk_ids` (list of string, optional)

### LlmUsageInput

- `model_usage` (map from string to LlmInputOutputTokensUsage, optional)

### ConversationReasoningModel

- `summary` (string, optional)
- `provider_redact` (boolean, optional, default: false)

### TriggeredGuardrailCommonModel

- `guardrail_type` (enum, required)
  - Allowed values: `custom`, `prompt_injection`, `self_harm_intent`, `violence_graphic`, `sexual`, `violence`, `harassment`, `sexual_minors`, `self_harm`, `self_harm_instructions`, `harassment_threatening`, `hate`, `hate_threatening`, `profanity`, `religion_or_politics`, `medical_and_legal`, `guardrail`
- `guardrail_name` (string, optional)

### BuiltInToolsOutput

Outils système pouvant être attribués à un agent conversationnel. Ils ne sont délibérément pas nommés ConversationalBuiltInTools : BuiltInToolsInput et BuiltInToolsOutput font partie de la spécification publique de l’API et des SDK générés.

- `transfer_to_agent` (SystemToolConfigOutput, optional) — L’outil de transfert vers un agent.
- `end_call` (SystemToolConfigOutput, optional) — L’outil de fin d’appel
- `language_detection` (SystemToolConfigOutput, optional) — L’outil de détection de langue
- `transfer_to_number` (SystemToolConfigOutput, optional) — L’outil de transfert vers un numéro.
- `skip_turn` (SystemToolConfigOutput, optional) — L'outil d'ignorance de tour
- `play_keypad_touch_tone` (SystemToolConfigOutput, optional) — L’outil de lecture DTMF
- `voicemail_detection` (SystemToolConfigOutput, optional) — L’outil de détection de messagerie vocale

### KnowledgeBaseLocator

- `type` (enum, required) — Le type de base de connaissances.
  - Allowed values: `file`, `url`, `text`, `folder`
- `name` (string, required) — Le nom de la base de connaissances
- `id` (string, required) — L’ID de la base de connaissances
- `usage_mode` (enum, optional, default: auto) — Le mode d’utilisation de la base de connaissances
  - Allowed values: `prompt`, `auto`

### CustomLlm

- `url` (string, required) — L’URL du point de terminaison compatible avec Chat Completions
- `model_id` (string, optional) — L’ID du modèle à utiliser si l’URL dessert plusieurs modèles
- `api_key` (CustomLlmApiKey, optional) — Clé API utilisée pour l’authentification. Il peut s’agir d’une référence à un secret du Workspace \{'secret\_id': '...'} ou d’une référence à une variable d’environnement \{'env\_var\_label': '...'}.
- `auth_connection` (CustomLlmAuthConnection, optional) — Connexion d'authentification facultative du Workspace. Seules les connexions d'authentification produisant un jeton Authorization Bearer sont prises en charge ; les connexions d'authentification Basic, mTLS, par en-tête personnalisé et par secret d'URL ne sont pas prises en charge.
- `request_headers` (map from string to CustomLlmRequestHeadersValue, optional) — En-têtes à inclure dans la requête.
- `api_version` (string, optional) — Version de l’API à utiliser pour la requête
- `api_type` (enum, optional, default: chat_completions) — Type d’API à utiliser (chat_completions, responses ou websocket)
  - Allowed values: `chat_completions`, `responses`, `websocket`

### RagConfigOutput

- `enabled` (boolean, optional, default: false)
- `embedding_model` (enum, optional, default: e5_mistral_7b_instruct)
  - Allowed values: `e5_mistral_7b_instruct`, `multilingual_e5_large_instruct`
- `max_vector_distance` (double, optional, default: 0.6) — Distance vectorielle maximale des fragments récupérés.
- `max_documents_length` (integer, optional, default: 50000) — Longueur totale maximale des fragments de document récupérés depuis RAG.
- `max_retrieved_rag_chunks_count` (integer, optional, default: 20) — Nombre maximal de fragments de document RAG à récupérer initialement depuis la base vectorielle. Ils sont ensuite filtrés selon la distance vectorielle et la longueur totale.
- `num_candidates` (integer, optional) — Nombre de candidats évalués dans la recherche vectorielle ANN. Une valeur plus élevée améliore les résultats, mais augmente la latence. La valeur minimale recommandée est 100. Si cette option est désactivée, la valeur par défaut est utilisée.
- `query_rewrite_prompt_override` (string, optional) — Prompt personnalisé pour reformuler les requêtes utilisateur avant la récupération RAG. L'historique de la conversation est automatiquement ajouté à la fin. S'il n'est pas défini, le prompt par défaut est utilisé.
- `knowledge_base_tool_info` (KnowledgeBaseToolInfo, optional) — Lorsqu’il est défini, l’agent utilise l’outil knowledge_base au lieu de l’ancien outil knowledge_base_rag. None signifie que l’agent n’y a pas adhéré.

### PromptAgentApiModelOutputBackupLlmConfig

Configuration du basculement en cascade des LLM de secours. Peut être désactivée, utiliser les valeurs par défaut du système ou spécifier un ordre personnalisé.

- `preference`: `default`
- `preference`: `disabled`
- `preference`: `override`
  - `order` (list of enum, required)
    - Allowed values: `gpt-4o-mini`, `gpt-4o`, `gpt-4`, `gpt-4-turbo`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-5`, `gpt-5.1`, `gpt-5.2`, `gpt-5.2-chat-latest`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano`, `gpt-5.5`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-6-astra`, `gpt-6-sol`, `gpt-6-luna`, `gpt-6.1-sol`, `gpt-5-mini`, `gpt-5-nano`, `gpt-3.5-turbo`, `gemini-1.5-pro`, `gemini-1.5-flash`, `gemini-2.0-flash`, `gemini-2.0-flash-lite`, `gemini-2.5-flash-lite`, `gemini-2.5-flash`, `gemini-3-pro-preview`, `gemini-3-flash-preview`, `gemini-3.1-pro-preview`, `gemini-3.1-flash-lite-preview`, `gemini-3.1-flash-lite`, `gemini-3.5-flash`, `gemini-3.5-flash-lite`, `gemini-3.6-flash`, `gemini-3.7-flash`, `gemini-3.8-flash`, `gemini-4-argon`, `claude-sonnet-4-5`, `claude-opus-4-6`, `claude-opus-4-7`, `claude-opus-4-8`, `claude-opus-5`, `claude-opus-5-5`, `claude-sonnet-4-6`, `claude-sonnet-5`, `claude-sonnet-5-5`, `claude-sonnet-4`, `claude-haiku-4-5`, `claude-haiku-5-5`, `claude-3-7-sonnet`, `claude-3-5-sonnet`, `claude-3-5-sonnet-v1`, `claude-3-haiku`, `grok-beta`, `custom-llm`, `qwen3-4b`, `qwen3-30b-a3b`, `qwen36-35b-a3b`, `qwen35-397b-a17b`, `gpt-oss-20b`, `gpt-oss-120b`, `glm-45-air-fp8`, `glm-52`, `deepseek-v41-flash`, `nemotron-35-super-vl-nvfp4`, `gemini-2.5-flash-preview-09-2025`, `gemini-2.5-flash-lite-preview-09-2025`, `gemini-2.5-flash-preview-05-20`, `gemini-2.5-flash-preview-04-17`, `gemini-2.5-flash-lite-preview-06-17`, `gemini-2.0-flash-lite-001`, `gemini-2.0-flash-001`, `gemini-1.5-flash-002`, `gemini-1.5-flash-001`, `gemini-1.5-pro-002`, `gemini-1.5-pro-001`, `claude-sonnet-4@20250514`, `claude-sonnet-4-5@20250929`, `claude-haiku-4-5@20251001`, `claude-3-7-sonnet@20250219`, `claude-3-5-sonnet@20240620`, `claude-3-5-sonnet-v2@20241022`, `claude-3-haiku@20240307`, `gpt-5-2025-08-07`, `gpt-5.1-2025-11-13`, `gpt-5.2-2025-12-11`, `gpt-5.4-2026-03-05`, `gpt-5.4-mini-2026-03-17`, `gpt-5.4-nano-2026-03-17`, `gpt-5.5-2026-04-23`, `gpt-5-mini-2025-08-07`, `gpt-5-nano-2025-08-07`, `gpt-4.1-2025-04-14`, `gpt-4.1-mini-2025-04-14`, `gpt-4.1-nano-2025-04-14`, `gpt-4o-mini-2024-07-18`, `gpt-4o-2024-11-20`, `gpt-4o-2024-08-06`, `gpt-4o-2024-05-13`, `gpt-4-0613`, `gpt-4-0314`, `gpt-4-turbo-2024-04-09`, `gpt-3.5-turbo-0125`, `gpt-3.5-turbo-1106`, `watt-tool-8b`, `watt-tool-70b`

### PromptAgentApiModelOutputToolsItem

Le type d’outil.

- `type`: `api_integration_webhook`
  - `api_integration_connection_id` (string, required)
  - `api_integration_id` (string, required)
  - `assignments` (list of DynamicVariableAssignment, required) — Configuration permettant d'extraire des valeurs des réponses d'outils et de les attribuer à des variables dynamiques
  - `description` (string, required) — Description des situations dans lesquelles l’outil doit être utilisé et de ce qu’il fait.
  - `dynamic_variables` (DynamicVariablesConfig, required) — Configuration des variables dynamiques
  - `execution_mode` (enum, required, default: immediate) — Détermine quand et comment l’outil s’exécute : 'immediate' exécute l’outil immédiatement lorsqu’il est demandé par le LLM, 'post_tool_speech' attend que l’agent ait fini de parler avant de l’exécuter, et 'async' exécute l’outil en arrière-plan sans bloquer, idéal pour les opérations longues.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `interruption_mode` (enum, required, default: allow) — Détermine si l'utilisateur peut interrompre l'agent lors de cet appel d'outil. « allow » (valeur par défaut) permet à l'utilisateur d'interrompre à tout moment, « disable_during_tool » bloque les interruptions uniquement pendant l'exécution de l'outil et « disable_during_tool_and_turn » les bloque pendant l'exécution de l'outil et pour la réponse suivante de l'agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `name` (string, required)
  - `pre_tool_speech` (enum, required, default: auto) — Détermine si l'agent parle avant l'appel de cet outil. « auto » (valeur par défaut) décide selon la latence récente de l'outil, « force » demande toujours à l'agent de parler et « off » désactive entièrement cette fonction, quelle que soit la latence.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, required, default: 20) — Le délai maximal, en secondes, avant la fin de l’appel d’outil. Doit être compris entre 5 et 300 secondes, incluses.
  - `tool_call_sound_behavior` (enum, required, default: auto) — Détermine quand le son d’appel de l’outil doit être joué. 'auto' le joue uniquement lorsqu’une parole précède l’outil, tandis que 'always' le joue pour chaque appel d’outil.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, required, default: auto) — Contrôle le traitement des erreurs d'outil avant leur partage avec l'agent. « auto » détermine le traitement selon le type d'outil, avec un résumé pour les intégrations natives et le masquage pour les autres ; « summarized » envoie un résumé généré par un LLM, « passthrough » envoie l'erreur brute et « hide » ne partage pas l'erreur avec l'agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `tool_version` (string, required, default: 1.0.0) — La version de l’outil d’intégration API
  - `disable_interruptions` (boolean, required, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `interruption_mode`. Si la valeur est true, l'utilisateur ne pourra pas interrompre l'agent pendant l'exécution de cet outil.
  - `force_pre_tool_speech` (boolean, required, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `pre_tool_speech`. Si la valeur est true, l'agent parlera avant l'appel de l'outil.
  - `api_schema_overrides` (ApiIntegrationWebhookOverrides, optional) — Substitutions utilisateur appliquées en complément du api_schema de base
  - `tool_call_sound` (enum, optional) — Type de son d’appel d’outil prédéfini à diffuser lors de l’exécution de l’outil. S’il n’est pas spécifié, aucun son d’appel d’outil ne sera diffusé.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `type`: `client`
  - `description` (string, required) — Description des situations dans lesquelles l’outil doit être utilisé et de ce qu’il fait.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuration permettant d'extraire des valeurs des réponses d'outils et de les attribuer à des variables dynamiques
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuration des variables dynamiques
  - `execution_mode` (enum, optional, default: immediate) — Détermine quand et comment l’outil s’exécute : 'immediate' exécute l’outil immédiatement lorsqu’il est demandé par le LLM, 'post_tool_speech' attend que l’agent ait fini de parler avant de l’exécuter, et 'async' exécute l’outil en arrière-plan sans bloquer, idéal pour les opérations longues.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — Si true, l’appel de cet outil doit bloquer la conversation jusqu’à ce que le client fournisse une réponse, qui est transmise au LLM. Si false, la conversation se poursuit sans attendre la réponse du client. Cela permet d’afficher du contenu à un utilisateur sans bloquer la conversation.
  - `interruption_mode` (enum, optional, default: allow) — Détermine si l'utilisateur peut interrompre l'agent lors de cet appel d'outil. « allow » (valeur par défaut) permet à l'utilisateur d'interrompre à tout moment, « disable_during_tool » bloque les interruptions uniquement pendant l'exécution de l'outil et « disable_during_tool_and_turn » les bloque pendant l'exécution de l'outil et pour la réponse suivante de l'agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaPropertyOutput, optional) — Schéma des paramètres à transmettre au client
  - `pre_tool_speech` (enum, optional, default: auto) — Détermine si l'agent parle avant l'appel de cet outil. « auto » (valeur par défaut) décide selon la latence récente de l'outil, « force » demande toujours à l'agent de parler et « off » désactive entièrement cette fonction, quelle que soit la latence.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — Durée maximale, en secondes, d’attente de la fin de l’appel d’outil. Doit être comprise entre 1 et 120 secondes (incluses), ou égale à -1 pour attendre indéfiniment la réponse du client (nécessite expects_response).
  - `tool_call_sound` (enum, optional) — Type de son d’appel d’outil prédéfini à diffuser lors de l’exécution de l’outil. S’il n’est pas spécifié, aucun son d’appel d’outil ne sera diffusé.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Détermine quand le son d’appel de l’outil doit être joué. 'auto' le joue uniquement lorsqu’une parole précède l’outil, tandis que 'always' le joue pour chaque appel d’outil.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Contrôle le traitement des erreurs d'outil avant leur partage avec l'agent. « auto » détermine le traitement selon le type d'outil, avec un résumé pour les intégrations natives et le masquage pour les autres ; « summarized » envoie un résumé généré par un LLM, « passthrough » envoie l'erreur brute et « hide » ne partage pas l'erreur avec l'agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `interruption_mode`. Si la valeur est true, l'utilisateur ne pourra pas interrompre l'agent pendant l'exécution de cet outil.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `pre_tool_speech`. Si la valeur est true, l'agent parlera avant l'appel de l'outil.
- `type`: `mcp`
  - `value` (any, required)
- `type`: `smb`
  - `value` (any, required)
- `type`: `system`
  - `name` (string, required)
  - `params` (SystemToolConfigOutputParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuration permettant d'extraire des valeurs des réponses d'outils et de les attribuer à des variables dynamiques
  - `description` (string, optional, default: ) — Description des situations dans lesquelles l’outil doit être utilisé et de ce qu’il fait. Laissez ce champ vide pour utiliser la description par défaut, optimisée pour le type d’outil concerné.
  - `interruption_mode` (enum, optional, default: allow) — Détermine si l'utilisateur peut interrompre l'agent lors de cet appel d'outil. « allow » (valeur par défaut) permet à l'utilisateur d'interrompre à tout moment, « disable_during_tool » bloque les interruptions uniquement pendant l'exécution de l'outil et « disable_during_tool_and_turn » les bloque pendant l'exécution de l'outil et pour la réponse suivante de l'agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Détermine si l'agent parle avant l'appel de cet outil. « auto » (valeur par défaut) décide selon la latence récente de l'outil, « force » demande toujours à l'agent de parler et « off » désactive entièrement cette fonction, quelle que soit la latence.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — Le délai maximal, en secondes, avant la fin de l’appel d’outil.
  - `tool_call_sound` (enum, optional) — Type de son d’appel d’outil prédéfini à diffuser lors de l’exécution de l’outil. S’il n’est pas spécifié, aucun son d’appel d’outil ne sera diffusé.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Détermine quand le son d’appel de l’outil doit être joué. 'auto' le joue uniquement lorsqu’une parole précède l’outil, tandis que 'always' le joue pour chaque appel d’outil.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Contrôle le traitement des erreurs d'outil avant leur partage avec l'agent. « auto » détermine le traitement selon le type d'outil, avec un résumé pour les intégrations natives et le masquage pour les autres ; « summarized » envoie un résumé généré par un LLM, « passthrough » envoie l'erreur brute et « hide » ne partage pas l'erreur avec l'agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `interruption_mode`. Si la valeur est true, l'utilisateur ne pourra pas interrompre l'agent pendant l'exécution de cet outil.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `pre_tool_speech`. Si la valeur est true, l'agent parlera avant l'appel de l'outil.
- `type`: `webhook`
  - `api_schema` (WebhookToolApiSchemaConfigOutput, required) — Le schéma du webhook sortant, y compris les paramètres et la spécification de l'URL
  - `description` (string, required) — Description des situations dans lesquelles l’outil doit être utilisé et de ce qu’il fait.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuration permettant d'extraire des valeurs des réponses d'outils et de les attribuer à des variables dynamiques
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuration des variables dynamiques
  - `execution_mode` (enum, optional, default: immediate) — Détermine quand et comment l’outil s’exécute : 'immediate' exécute l’outil immédiatement lorsqu’il est demandé par le LLM, 'post_tool_speech' attend que l’agent ait fini de parler avant de l’exécuter, et 'async' exécute l’outil en arrière-plan sans bloquer, idéal pour les opérations longues.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — Indique s'il faut suivre une redirection depuis le point de terminaison et renvoyer la réponse finale. Une seule redirection est suivie, sous la forme d'une requête GET sans corps de requête ; aucun élément configuré sur cet outil, comme les en-têtes, l'authentification ou le certificat client, n'est envoyé à la cible de redirection. Le point de terminaison et la cible de redirection doivent tous deux utiliser HTTPS. Non pris en charge pour les outils d'intégration d'API.
  - `follow_redirects_allowed_domains` (list of string, optional) — Domaines vers lesquels une redirection peut pointer, par exemple 'test.example.com'. Requis pour suivre les redirections, toute cible hors de cette liste étant refusée.
  - `interruption_mode` (enum, optional, default: allow) — Détermine si l'utilisateur peut interrompre l'agent lors de cet appel d'outil. « allow » (valeur par défaut) permet à l'utilisateur d'interrompre à tout moment, « disable_during_tool » bloque les interruptions uniquement pendant l'exécution de l'outil et « disable_during_tool_and_turn » les bloque pendant l'exécution de l'outil et pour la réponse suivante de l'agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Détermine si l'agent parle avant l'appel de cet outil. « auto » (valeur par défaut) décide selon la latence récente de l'outil, « force » demande toujours à l'agent de parler et « off » désactive entièrement cette fonction, quelle que soit la latence.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — Le délai maximal, en secondes, avant la fin de l’appel d’outil. Doit être compris entre 5 et 300 secondes, incluses.
  - `tool_call_sound` (enum, optional) — Type de son d’appel d’outil prédéfini à diffuser lors de l’exécution de l’outil. S’il n’est pas spécifié, aucun son d’appel d’outil ne sera diffusé.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Détermine quand le son d’appel de l’outil doit être joué. 'auto' le joue uniquement lorsqu’une parole précède l’outil, tandis que 'always' le joue pour chaque appel d’outil.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Contrôle le traitement des erreurs d'outil avant leur partage avec l'agent. « auto » détermine le traitement selon le type d'outil, avec un résumé pour les intégrations natives et le masquage pour les autres ; « summarized » envoie un résumé généré par un LLM, « passthrough » envoie l'erreur brute et « hide » ne partage pas l'erreur avec l'agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `interruption_mode`. Si la valeur est true, l'utilisateur ne pourra pas interrompre l'agent pendant l'exécution de cet outil.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `pre_tool_speech`. Si la valeur est true, l'agent parlera avant l'appel de l'outil.

### ConversationHistoryMultivoiceMessagePartModel

Représente une partie vocale unique d'un message à plusieurs voix.

- `text` (string, required)
- `voice_label` (string, optional)
- `time_in_call_secs` (integer, optional)

### ConversationHistoryTranscriptToolCallCommonModelInputToolDetails

- `type`: `api_integration_webhook`
  - `webhook_details` (ConversationHistoryTranscriptToolCallWebhookDetails, required)
  - `credential_id` (string, optional, default: )
  - `integration_connection_id` (string, optional, default: )
  - `integration_id` (string, optional, default: )
- `type`: `client`
  - `parameters` (string, required)
- `type`: `mcp`
  - `approval_policy` (string, required)
  - `integration_type` (string, required)
  - `mcp_server_id` (string, required)
  - `mcp_server_name` (string, required)
  - `mcp_tool_description` (string, optional, default: )
  - `mcp_tool_name` (string, optional, default: )
  - `parameters` (map from string to string, optional)
  - `requires_approval` (boolean, optional, default: false)
- `type`: `webhook`
  - `method` (string, required)
  - `url` (string, required)
  - `body` (string, optional)
  - `headers` (map from string to string, optional)
  - `path_params` (map from string to string, optional)
  - `query_params` (map from string to string, optional)

### ConversationHistoryTranscriptOtherToolsResultCommonModel

- `request_id` (string, required)
- `tool_name` (string, required)
- `result_value` (string, required)
- `is_error` (boolean, required)
- `tool_has_been_called` (boolean, required)
- `is_blocked` (boolean, optional, default: false)
- `tool_latency_secs` (double, optional, default: 0)
- `error_type` (string, optional, default: )
- `raw_error_message` (string, optional, default: )
- `dynamic_variable_updates` (list of DynamicVariableUpdateCommonModel, optional)
- `type` (enum, optional)
  - Allowed values: `client`, `webhook`, `mcp`, `code`

### ConversationHistoryTranscriptSystemToolResultCommonModelInput

- `request_id` (string, required)
- `tool_name` (string, required)
- `result_value` (string, required)
- `is_error` (boolean, required)
- `tool_has_been_called` (boolean, required)
- `type` ("system", required)
- `is_blocked` (boolean, optional, default: false)
- `tool_latency_secs` (double, optional, default: 0)
- `error_type` (string, optional, default: )
- `raw_error_message` (string, optional, default: )
- `dynamic_variable_updates` (list of DynamicVariableUpdateCommonModel, optional)
- `result` (ConversationHistoryTranscriptSystemToolResultCommonModelInputResult, optional)

### ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelInput

- `request_id` (string, required)
- `tool_name` (string, required)
- `result_value` (string, required)
- `is_error` (boolean, required)
- `tool_has_been_called` (boolean, required)
- `type` ("api_integration_webhook", required)
- `is_blocked` (boolean, optional, default: false)
- `tool_latency_secs` (double, optional, default: 0)
- `error_type` (string, optional, default: )
- `raw_error_message` (string, optional, default: )
- `dynamic_variable_updates` (list of DynamicVariableUpdateCommonModel, optional)
- `integration_id` (string, optional, default: )
- `credential_id` (string, optional, default: )
- `integration_connection_id` (string, optional, default: )

### ConversationHistoryTranscriptWorkflowToolsResultCommonModelInput

- `request_id` (string, required)
- `tool_name` (string, required)
- `result_value` (string, required)
- `is_error` (boolean, required)
- `tool_has_been_called` (boolean, required)
- `type` ("workflow", required)
- `is_blocked` (boolean, optional, default: false)
- `tool_latency_secs` (double, optional, default: 0)
- `error_type` (string, optional, default: )
- `raw_error_message` (string, optional, default: )
- `dynamic_variable_updates` (list of DynamicVariableUpdateCommonModel, optional)
- `result` (WorkflowToolResponseModelInput, optional) — Modèle commun pour les réponses d’outils de workflow.

### MetricRecord

- `elapsed_time` (double, required)

### RagChunkMetadata

- `document_id` (string, required)
- `chunk_id` (string, required)
- `vector_distance` (double, required)

### LlmInputOutputTokensUsage

- `input` (LlmTokensCategoryUsage, optional)
- `input_cache_read` (LlmTokensCategoryUsage, optional)
- `input_cache_write` (LlmTokensCategoryUsage, optional)
- `output_total` (LlmTokensCategoryUsage, optional)

### SystemToolConfigOutput

Un outil système permet d'appeler une méthode système sur le serveur

- `name` (string, required)
- `params` (SystemToolConfigOutputParams, required)
- `type` ("system", optional) — Le type d’outil.
- `description` (string, optional, default: ) — Description des situations dans lesquelles l’outil doit être utilisé et de ce qu’il fait. Laissez ce champ vide pour utiliser la description par défaut, optimisée pour le type d’outil concerné.
- `response_timeout_secs` (integer, optional, default: 20) — Le délai maximal, en secondes, avant la fin de l’appel d’outil.
- `interruption_mode` (enum, optional, default: allow) — Détermine si l'utilisateur peut interrompre l'agent lors de cet appel d'outil. « allow » (valeur par défaut) permet à l'utilisateur d'interrompre à tout moment, « disable_during_tool » bloque les interruptions uniquement pendant l'exécution de l'outil et « disable_during_tool_and_turn » les bloque pendant l'exécution de l'outil et pour la réponse suivante de l'agent.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `pre_tool_speech` (enum, optional, default: auto) — Détermine si l'agent parle avant l'appel de cet outil. « auto » (valeur par défaut) décide selon la latence récente de l'outil, « force » demande toujours à l'agent de parler et « off » désactive entièrement cette fonction, quelle que soit la latence.
  - Allowed values: `auto`, `force`, `off`
- `assignments` (list of DynamicVariableAssignment, optional) — Configuration permettant d'extraire des valeurs des réponses d'outils et de les attribuer à des variables dynamiques
- `tool_call_sound` (enum, optional) — Type de son d’appel d’outil prédéfini à diffuser lors de l’exécution de l’outil. S’il n’est pas spécifié, aucun son d’appel d’outil ne sera diffusé.
  - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `tool_call_sound_behavior` (enum, optional, default: auto) — Détermine quand le son d’appel de l’outil doit être joué. 'auto' le joue uniquement lorsqu’une parole précède l’outil, tandis que 'always' le joue pour chaque appel d’outil.
  - Allowed values: `auto`, `always`
- `tool_error_handling_mode` (enum, optional, default: auto) — Contrôle le traitement des erreurs d'outil avant leur partage avec l'agent. « auto » détermine le traitement selon le type d'outil, avec un résumé pour les intégrations natives et le masquage pour les autres ; « summarized » envoie un résumé généré par un LLM, « passthrough » envoie l'erreur brute et « hide » ne partage pas l'erreur avec l'agent.
  - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
- `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `interruption_mode`. Si la valeur est true, l'utilisateur ne pourra pas interrompre l'agent pendant l'exécution de cet outil.
- `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLÈTE : utilisez plutôt `pre_tool_speech`. Si la valeur est true, l'agent parlera avant l'appel de l'outil.

### CustomLlmApiKey

Clé API utilisée pour l’authentification. Il peut s’agir d’une référence à un secret du Workspace \{'secret\_id': '...'} ou d’une référence à une variable d’environnement \{'env\_var\_label': '...'}.

- Conv AI Secret Locator: ConvAiSecretLocator
- Conv AI Env Var Locator: ConvAiEnvVarLocator

### CustomLlmAuthConnection

Connexion d'authentification facultative du Workspace. Seules les connexions d'authentification produisant un jeton Authorization Bearer sont prises en charge ; les connexions d'authentification Basic, mTLS, par en-tête personnalisé et par secret d'URL ne sont pas prises en charge.

- Auth Connection Locator: AuthConnectionLocator
- Environment Auth Connection Locator: EnvironmentAuthConnectionLocator

### CustomLlmRequestHeadersValue

- string
- Conv AI Secret Locator: ConvAiSecretLocator
- Conv AI Dynamic Variable: ConvAiDynamicVariable
- Conv AI Env Var Locator: ConvAiEnvVarLocator

### KnowledgeBaseToolInfo

- `enabled_strategies` (list of enum, optional) — Stratégies de recherche exposées au modèle. Ne peut pas être vide.
  - Allowed values: `cat`, `keyword`, `semantic`, `ls`

### DynamicVariableAssignment

Configuration permettant d'extraire des valeurs des réponses d'outils et de les attribuer à des variables dynamiques.

- `dynamic_variable` (string, required) — Le nom de la variable dynamique à laquelle attribuer la valeur extraite
- `value_path` (string, required) — Chemin en notation pointée permettant d’extraire la valeur de la source, par exemple 'user.name' ou 'data.0.id'.
- `source` ("response", optional) — La source dont extraire la valeur. Seul « response » est actuellement pris en charge.
- `sanitize` (boolean, optional, default: false) — Si true, la valeur de cette affectation sera retirée de la réponse de l’outil avant son envoi au LLM et à la transcription, mais restera traitée pour l’affectation de variables.
- `preserve_native_type` (boolean, optional, default: false) — Si true, les valeurs non scalaires, comme les listes et objets, extraites de la réponse de l’outil sont stockées dans leur type natif au lieu d’être converties en chaînes JSON. Activez cette option pour utiliser directement les tableaux extraits comme variables dynamiques de liste.

### DynamicVariablesConfig

- `dynamic_variable_placeholders` (map from string to any, optional) — Dictionnaire des espaces réservés de variables dynamiques et de leurs valeurs.

### ApiIntegrationWebhookOverrides

- `schema_overrides` (map from string to ApiIntegrationWebhookOverridesSchemaOverridesValue, optional)
- `response_filter_mode` (enum, optional, default: all) — Contrôle le filtrage des réponses d'outil avant qu'elles ne soient visibles par l'agent.
  - Allowed values: `all`, `allow`, `hide_all`
- `response_filters` (list of string, optional)
- `request_headers` (map from string to ApiIntegrationWebhookOverridesRequestHeadersValue, optional)

### ObjectJsonSchemaPropertyOutput

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Lorsqu’il est défini, l’intégralité du paramètre est renseignée à partir de cette variable dynamique à l’exécution. S’exclut mutuellement avec description (valeur fournie par le LLM), constant_value et is_omitted.
- `constant_value` (map from string to any, optional) — Lorsqu’elle est définie, l’intégralité de l’objet utilise cette valeur JSON constante à l’exécution. S’exclut mutuellement avec description (objet fourni par le LLM), dynamic_variable et is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si true, ce paramètre sera entièrement omis de la requête. Valide uniquement pour les paramètres facultatifs. Mutuellement exclusif avec description, dynamic_variable et constant_value.
- `type` ("object", optional)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyOutputPropertiesValue, optional)
- `required_constraints` (RequiredConstraints, optional) — Conteneur pour les contraintes de composition anyOf/allOf limitées aux champs obligatoires.

### SystemToolConfigOutputParams

- `system_tool_type`: `end_call`
- `system_tool_type`: `end_procedure`
  - `procedures` (map from string to EndProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `knowledge_base`
  - `enabled_strategies` (list of enum, optional)
    - Allowed values: `cat`, `keyword`, `semantic`, `ls`
- `system_tool_type`: `knowledge_base_rag`
- `system_tool_type`: `language_detection`
  - `only_at_conversation_start` (boolean, optional, default: false) — Si aucun changement de langue ne se produit lors des 2 premiers tours de l’utilisateur, les tentatives ultérieures échouent et la conversation reste dans la langue actuelle. Si la langue change pendant ces tours, les changements ultérieurs restent possibles. Activez cette option pour réduire le risque de changement erroné.
- `system_tool_type`: `play_keypad_touch_tone`
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — Si true, l’agent ne générera plus de parole après avoir émis des tonalités DTMF. Cela empêche la parole de l’agent d’interférer avec les systèmes IVR.
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — Envoie les tonalités DTMF comme événements RTP hors bande (RFC 4733) plutôt que comme audio dans la bande. Fonctionne uniquement pour les numéros importés depuis un trunk SIP.
- `system_tool_type`: `skip_turn`
  - `wait_timeout_secs` (double, optional, default: -1) — Secondes à attendre après skip_turn avant que l’agent ne génère une relance contextuelle. Le minuteur « Terminer la conversation après un silence » est suspendu pendant l’attente. La valeur -1 désactive l’attente : après skip_turn, l’agent reste silencieux jusqu’à ce que l’appelant parle, et ce minuteur continue de s’écouler. S’applique uniquement aux conversations vocales.
- `system_tool_type`: `start_procedure`
  - `procedures` (map from string to StartProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `transfer_to_agent`
  - `transfers` (list of AgentTransferOutput, required)
- `system_tool_type`: `transfer_to_number`
  - `transfers` (list of PhoneNumberTransfer, required)
  - `enable_client_message` (boolean, optional, default: true) — Indique s'il faut diffuser un message au client pendant qu'il attend le transfert. La valeur par défaut est true pour assurer la rétrocompatibilité.
- `system_tool_type`: `voicemail_detection`
  - `voicemail_message` (string, optional) — Message facultatif à laisser sur la messagerie vocale lorsqu'elle est détectée. Si aucun message n'est fourni, l'appel se termine immédiatement lors de la détection de la messagerie vocale. Prend en charge les variables dynamiques, par exemple \{\{system\_\_time}}, \{\{system\_\_call\_duration\_secs}}, \{\{custom\_variable}}.

### WebhookToolApiSchemaConfigOutput

- `url` (string, required) — L’URL à laquelle le webhook sera envoyé. Peut inclure des paramètres de chemin, par exemple [https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigOutputRequestHeadersValue, optional) — En-têtes à inclure dans la requête.
- `method` (enum, optional, default: GET) — La méthode HTTP à utiliser pour le webhook
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — Schéma des paramètres de chemin, le cas échéant. Les clés doivent correspondre aux espaces réservés dans l’URL.
- `query_params_schema` (QueryParamsJsonSchemaOutput, optional) — Schéma des paramètres de requête, le cas échéant. Ils sont ajoutés à la fin de l’URL comme paramètres de requête. Remarque : les propriétés d’un paramètre de requête doivent toutes être de types littéraux.
- `request_body_schema` (ObjectJsonSchemaPropertyOutput, optional) — Schéma des paramètres du corps, le cas échéant. Utilisé pour les requêtes POST/PATCH/PUT. Le schéma doit être un objet envoyé comme corps JSON.
- `response_body_schema` (ObjectJsonSchemaPropertyOutput, optional) — Schéma décrivant la structure attendue du corps de réponse. À des fins de documentation uniquement ; non exposé au LLM.
- `response_filter` (ResponseFilter, optional) — Filtre de liste blanche facultatif appliqué à la réponse avant que le LLM ne la voie, afin que les réponses volumineuses ne polluent pas le contexte. Par défaut, la réponse complète est utilisée.
- `content_type` (enum, optional, default: application/json) — Type de contenu du corps de la requête. S'applique uniquement aux requêtes POST/PUT/PATCH.
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — Espaces réservés de l’URL résolus depuis la connexion d’authentification, par exemple les secrets injectés via UrlSecretAuthConnection, plutôt que depuis path_params_schema.
- `auth_connection` (WebhookToolApiSchemaConfigOutputAuthConnection, optional) — Connexion d'authentification facultative à utiliser avec ce webhook

### ConversationHistoryTranscriptToolCallWebhookDetails

- `method` (string, required)
- `url` (string, required)
- `type` ("webhook", optional)
- `headers` (map from string to string, optional)
- `path_params` (map from string to string, optional)
- `query_params` (map from string to string, optional)
- `body` (string, optional)

### DynamicVariableUpdateCommonModel

Enregistre une mise à jour de variable dynamique survenue pendant l’exécution de l’outil.

- `variable_name` (string, required)
- `new_value` (string, required)
- `updated_at` (double, required)
- `tool_name` (string, required)
- `tool_request_id` (string, required)
- `old_value` (string, optional)

### ConversationHistoryTranscriptSystemToolResultCommonModelInputResult

- `result_type`: `dummy`
- `result_type`: `end_call_success`
  - `message` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `end_procedure_error`
  - `message` (string, required)
  - `status` (enum, required)
    - Allowed values: `not_found`, `invalid_id`
  - `procedure_id` (string, optional)
- `result_type`: `end_procedure_success`
  - `procedure_id` (string, required)
  - `procedure_name` (string, required)
  - `message` (string, optional, default: )
  - `status` ("success", optional)
- `result_type`: `knowledge_base_rag_success`
  - `chunk_count` (integer, optional, default: 0) — Nombre de segments pertinents récupérés
  - `chunks` (list of KnowledgeBaseRagChunkModel, optional) — Fragments récupérés, renseignés uniquement en mode rag-result-in-tool-result
  - `message` (string, optional, default: Referenced knowledge base.) — Statut lisible destiné au LLM concernant les résultats de recherche
  - `status` (enum, optional, default: success)
    - Allowed values: `success`, `no_documents`, `no_results`
- `result_type`: `knowledge_base_success`
  - `chunk_count` (integer, optional, default: 0)
  - `message` (string, optional, default: Referenced knowledge base.)
  - `status` (enum, optional, default: success)
    - Allowed values: `success`, `no_matching_documents`, `no_results`
- `result_type`: `language_detection_success`
  - `language` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `play_dtmf_error`
  - `error` (string, required)
  - `details` (string, optional)
  - `status` ("error", optional)
- `result_type`: `play_dtmf_success`
  - `dtmf_tones` (string, required)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `skip_turn_success`
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `start_procedure_error`
  - `message` (string, required)
  - `status` (enum, required)
    - Allowed values: `not_found`, `invalid_name`, `already_active`
  - `procedure_id` (string, optional)
- `result_type`: `start_procedure_success`
  - `procedure_id` (string, required)
  - `procedure_name` (string, required)
  - `message` (string, optional, default: Procedure is now started. Follow its instructions from the <active-procedures> section of your system prompt.)
  - `procedure_entry_workflow_node` (string, optional)
  - `procedure_return_workflow_node` (string, optional)
  - `status` ("success", optional)
- `result_type`: `testing_tool_result`
  - `reason` (string, optional, default: Skipping tool call in test mode)
  - `status` ("success", optional)
  - `to_agent` (string, optional)
  - `to_node` (string, optional)
- `result_type`: `transfer_to_agent_error`
  - `error` (string, required)
  - `from_agent` (string, required)
  - `status` ("error", optional)
- `result_type`: `transfer_to_agent_success`
  - `condition` (string, required)
  - `from_agent` (string, required)
  - `to_agent` (string, required)
  - `branch_info` (TransferToAgentToolResultSuccessModelInputBranchInfo, optional)
  - `delay_ms` (integer, optional, default: 0)
  - `enable_transferred_agent_first_message` (boolean, optional, default: false)
  - `preserve_client_tts_overrides` (boolean, optional, default: false)
  - `preserve_voice_settings` (boolean, optional, default: false)
  - `status` ("success", optional)
  - `to_node` (string, optional)
  - `transfer_message` (string, optional)
- `result_type`: `transfer_to_number_amazon_connect_success`
  - `client_message` (string, optional) — Message prononcé à l’appelant avant que la session ne soit rendue à Amazon Connect.
  - `note` (string, optional) — Défini lorsque l’agent a répété une option non valide et que la seule option configurée a été utilisée.
  - `reason` (string, optional) — Motif de l’escalade par l’agent, envoyé à Amazon Connect avec le résultat Escalate.
  - `status` ("success", optional)
- `result_type`: `transfer_to_number_error`
  - `error` (string, required)
  - `details` (string, optional)
  - `status` ("error", optional)
- `result_type`: `transfer_to_number_exotel_success`
  - `transfer_number` (string, required)
  - `agent_message` (string, optional)
  - `note` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `transfer_to_number_sip_success`
  - `transfer_number` (string, required)
  - `note` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `transfer_to_number_twilio_success`
  - `agent_message` (string, required)
  - `conference_name` (string, required)
  - `transfer_number` (string, required)
  - `client_message` (string, optional)
  - `note` (string, optional)
  - `post_dial_digits` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `voicemail_detection_success`
  - `reason` (string, optional)
  - `status` ("success", optional)
  - `voicemail_message` (string, optional)

### WorkflowToolResponseModelInput

Modèle commun pour les réponses d’outils de workflow.

- `steps` (list of WorkflowToolResponseModelInputStepsItem, optional)

### LlmTokensCategoryUsage

- `tokens` (integer, optional, default: 0)
- `price` (double, optional, default: 0)

### ConvAiSecretLocator

Utilisé pour référencer un secret du stockage de secrets de l’agent.

- `secret_id` (string, required)

### ConvAiEnvVarLocator

Utilisé pour référencer une variable d’environnement par son libellé.

- `env_var_label` (string, required)

### AuthConnectionLocator

Utilisé pour référencer une connexion d’authentification depuis le stockage de connexions d’authentification du Workspace.

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

Référence, par son libellé, une variable d’environnement de type « auth_connection ». Lors de l’exécution, elle est résolue en connexion d’authentification pour l’environnement actuel, avec repli sur l’environnement par défaut.

- `env_var_label` (string, required)

### ConvAiDynamicVariable

Utilisé pour référencer une variable dynamique.

- `variable_name` (string, required)

### ApiIntegrationWebhookOverridesSchemaOverridesValue

- `source`: `constant`
  - `constant_value` (ConstantSchemaOverrideConstantValue, optional) — Valeur constante à utiliser
- `source`: `dynamic_variable`
  - `dynamic_variable` (string, required) — Le nom de la variable dynamique à utiliser
- `source`: `llm`
  - `prompt` (string, optional) — Remplacement du prompt pour le LLM. S’il n’est pas fourni, la description du schéma d’origine est utilisée.
- `source`: `omit`

### ApiIntegrationWebhookOverridesRequestHeadersValue

- string
- Conv AI Dynamic Variable: ConvAiDynamicVariable

### ObjectJsonSchemaPropertyOutputPropertiesValue

- Literal JSON Schema Property: LiteralJsonSchemaProperty
- Object JSON Schema Property Output: ObjectJsonSchemaPropertyOutput
- Array JSON Schema Property Output: ArrayJsonSchemaPropertyOutput

### RequiredConstraints

Conteneur pour les contraintes de composition anyOf/allOf limitées aux champs obligatoires.

- `any_of` (list of RequiredConstraint, optional)
- `all_of` (list of RequiredConstraint, optional)

### EndProcedureToolConfigProceduresValue

- Procedure Version Ref: ProcedureVersionRef
- Procedure Draft Ref: ProcedureDraftRef

### StartProcedureToolConfigProceduresValue

- Procedure Version Ref: ProcedureVersionRef
- Procedure Draft Ref: ProcedureDraftRef

### AgentTransferOutput

- `condition` (string, required)
- `agent_id` (string, optional)
- `branch_id` (string, optional)
- `node_id` (string, optional)
- `delay_ms` (integer, optional, default: 0)
- `transfer_message` (string, optional)
- `enable_transferred_agent_first_message` (boolean, optional, default: false)
- `is_workflow_node_transfer` (boolean, optional, default: false)
- `preserve_client_tts_overrides` (boolean, optional, default: false) — Définit si les remplacements côté client du TTS doivent être transférés vers l'agent cible.
- `preserve_voice_settings` (boolean, optional, default: false) — Définit si la voix de base, le modèle TTS et les paramètres vocaux doivent être transférés vers l'agent cible.

### PhoneNumberTransfer

- `transfer_destination` (PhoneNumberTransferTransferDestination, required)
- `condition` (string, required)
- `custom_sip_headers` (list of PhoneNumberTransferCustomSipHeadersItem, optional) — En-têtes SIP personnalisés à inclure lors du transfert de l'appel. Chaque en-tête peut être une valeur statique ou une référence de variable dynamique.
- `transfer_type` (enum, optional, default: conference)
  - Allowed values: `blind`, `conference`, `sip_refer`
- `sip_refer_play_dialtone` (boolean, optional, default: true) — Lorsque la valeur est True, une tonalité est diffusée sur la branche d’appel d’origine pendant l’exécution d’un transfert SIP REFER. La tonalité est transmise via RTP au pair SIP exécutant le REFER ; désactivez cette option si le système destinataire, par exemple un SBC ou un centre de contact, ne doit pas l’entendre. Lorsqu’elle est désactivée, l’appelant entend le silence jusqu’à la fin du transfert. Uniquement pour les transferts SIP REFER.
- `uui` (UuiTransferConfig, optional) — Informations d’utilisateur à utilisateur (RFC 7433) à joindre aux transferts SIP REFER. Transmet le contexte de l’appel, tel que les identifiants CRM ou le motif d’escalade, lors du transfert.
- `post_dial_digits` (PhoneNumberTransferPostDialDigits, optional) — Chiffres DTMF à envoyer après la connexion de l’appel, par exemple 'ww1234' pour un poste. Peut correspondre à une valeur statique ou à une référence de variable dynamique. Utilisez 'w' pour une pause de 0,5 s. Pris en charge uniquement pour les transferts Twilio.
- `phone_number` (string, optional, deprecated)

### WebhookToolApiSchemaConfigOutputRequestHeadersValue

- string
- Conv AI Secret Locator: ConvAiSecretLocator
- Conv AI Dynamic Variable: ConvAiDynamicVariable
- Conv AI Env Var Locator: ConvAiEnvVarLocator

### LiteralJsonSchemaProperty

Propriété de schéma pour les types JSON littéraux. IMPORTANT : UN SEUL des champs suivants peut être défini : description (le LLM fournit la valeur), dynamic_variable (valeur issue d’une variable), is_system_provided (le système fournit la valeur), constant_value (valeur fixe) ou is_omitted (le paramètre est omis). Ils sont mutuellement exclusifs.

- `type` (LiteralJsonSchemaPropertyType, required)
- `description` (string, optional, default: ) — La description de la propriété. Lorsqu’elle est définie, le LLM fournit la valeur à partir de cette description. S’exclut mutuellement avec dynamic_variable, is_system_provided, constant_value et is_omitted.
- `enum` (list of string, optional) — List of allowed string values for string type parameters
- `is_system_provided` (boolean, optional, default: false) — Si true, la valeur sera renseignée par le système au moment de l’exécution. Utilisé par les outils Webhook d’intégration API pour le templating. Mutuellement exclusif avec description, dynamic_variable, constant_value et is_omitted.
- `dynamic_variable` (string, optional, default: ) — Le nom de la variable dynamique à utiliser pour la valeur de cette propriété. S’exclut mutuellement avec description, is_system_provided, constant_value et is_omitted.
- `allowed_values` (AllowedValues, optional) — Garde-fou de rejet côté serveur pour une valeur fournie par un LLM : l’environnement d’exécution rejette toute valeur en dehors de l’ensemble autorisé désigné par cet objet, et cet ensemble n’est pas communiqué au LLM comme une énumération. Pris en charge uniquement lorsque la source de la valeur est `description` ; toute combinaison avec dynamic_variable, is_system_provided, constant_value ou is_omitted est rejetée.
- `constant_value` (LiteralJsonSchemaPropertyConstantValue, optional) — Valeur constante à utiliser pour cette propriété. S’exclut mutuellement avec description, dynamic_variable, is_system_provided et is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si true, ce paramètre sera entièrement omis de la requête. Valide uniquement pour les paramètres facultatifs. Mutuellement exclusif avec description, dynamic_variable, is_system_provided et constant_value.
- `allowed_values_dynamic_variable` (string, optional, default: , deprecated) — OBSOLÈTE : utilisez plutôt `allowed_values`. Lorsqu'il est défini, le LLM fournit la valeur, mais l'environnement d'exécution rejette toute valeur absente de la liste contenue dans cette variable dynamique (doit être un tableau JSON tel que ["ws_alpha", "ws_beta"]). Utilisez-le pour permettre au LLM de choisir dans un ensemble vérifié par le serveur, par exemple les ID auxquels l'utilisateur actuel est autorisé à accéder. Requiert description ; mutuellement exclusif avec dynamic_variable, is_system_provided, constant_value et is_omitted.

### QueryParamsJsonSchemaOutput

- `properties` (map from string to LiteralJsonSchemaProperty, required)
- `required` (list of string, optional)

### ResponseFilter

Configuration permettant de filtrer les réponses d'outils avant qu'elles ne soient visibles par l'agent.

- `mode` (enum, optional, default: all) — Contrôle le filtrage des réponses d'outil. « all » renvoie l'intégralité de la réponse, « allow » renvoie uniquement les chemins spécifiés et « hide_all » masque toute la réponse.
  - Allowed values: `all`, `allow`, `hide_all`
- `filters` (list of string, optional) — Chemins en notation pointée à inclure lorsque le mode est 'allow', par exemple ['ticket.id', 'ticket.status'].
- `content_type` ("application/json", optional) — Type de contenu pour le filtrage des réponses. Seules les réponses « application/json » sont filtrées.

### WebhookToolApiSchemaConfigOutputAuthConnection

Connexion d'authentification facultative à utiliser avec ce webhook

- Auth Connection Locator: AuthConnectionLocator
- Environment Auth Connection Locator: EnvironmentAuthConnectionLocator

### KnowledgeBaseRagChunkModel

- `chunk_id` (string, required)
- `document_id` (string, required)
- `content` (string, required)

### TransferToAgentToolResultSuccessModelInputBranchInfo

- `branch_reason`: `configured`
  - `branch_id` (string, required)
- `branch_reason`: `defaulting_to_main`
  - `branch_id` (string, required)
- `branch_reason`: `traffic_split`
  - `branch_id` (string, required)
  - `traffic_percentage` (double, required)

### WorkflowToolResponseModelInputStepsItem

- `type`: `edge`
  - `edge_id` (string, required)
  - `step_latency_secs` (double, required)
  - `target_node_id` (string, required)
- `type`: `max_iterations_exceeded`
  - `max_iterations` (integer, required)
  - `step_latency_secs` (double, required)
- `type`: `nested_tools`
  - `is_successful` (boolean, required)
  - `node_id` (string, required)
  - `requests` (list of ConversationHistoryTranscriptToolCallCommonModelInput, required)
  - `results` (list of WorkflowToolNestedToolsStepModelInputResultsItem, required)
  - `step_latency_secs` (double, required)

### ConstantSchemaOverrideConstantValue

Valeur constante à utiliser

- string
- integer
- double
- boolean
- list of any
- map from string to any

### ArrayJsonSchemaPropertyOutput

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Lorsqu’il est défini, l’intégralité du paramètre est renseignée à partir de cette variable dynamique à l’exécution. S’exclut mutuellement avec description (valeur fournie par le LLM), constant_value et is_omitted.
- `constant_value` (list of any, optional) — Lorsqu’elle est définie, l’intégralité du tableau utilise cette valeur constante à l’exécution. S’exclut mutuellement avec description (tableau fourni par le LLM), dynamic_variable et is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si true, ce paramètre sera entièrement omis de la requête. Valide uniquement pour les paramètres facultatifs. Mutuellement exclusif avec description, dynamic_variable et constant_value.
- `type` ("array", optional)
- `items` (ArrayJsonSchemaPropertyOutputItems, optional) — Schéma des éléments du tableau.

### RequiredConstraint

Un ensemble de champs qui doivent tous être présents pour satisfaire cette contrainte.

- `required` (list of string, required)

### ProcedureVersionRef

- `procedure_id` (string, required) — ID de la procédure
- `version_id` (string, required) — ID de version de la version de la procédure.

### ProcedureDraftRef

- `procedure_id` (string, required) — ID de la procédure
- `version_id` (any, optional)

### PhoneNumberTransferTransferDestination

- `type`: `phone`
  - `phone_number` (string, required)
- `type`: `phone_dynamic_variable`
  - `phone_number` (string, required)
- `type`: `sip_uri`
  - `sip_uri` (string, required)
- `type`: `sip_uri_dynamic_variable`
  - `sip_uri` (string, required)

### PhoneNumberTransferCustomSipHeadersItem

- `type`: `dynamic`
  - `key` (string, required) — Le nom de l'en-tête SIP (par exemple, « X-Customer-ID »)
  - `value` (string, required) — Le nom de la variable dynamique à résoudre
- `type`: `static`
  - `key` (string, required) — Le nom de l'en-tête SIP (par exemple, « X-Customer-ID »)
  - `value` (string, required) — La valeur de l’en-tête

### UuiTransferConfig

Enveloppe User-to-User Information pour les transferts SIP REFER (RFC 7433). Les charges utiles sortantes sont encodées en hexadécimal, le seul encodage défini par la RFC 7433. L’axe de discrimination du protocole permet d’exprimer les formats propres à chaque plateforme (Talkdesk, Genesys, etc.) par configuration, plutôt que par des indicateurs de transfert dispersés. D’autres axes, comme l’encodage ASCII, le nom de l’en-tête ou les paramètres de finalité et de contenu, peuvent être ajoutés ici sans modifier le modèle de transfert.

- `data` (string, required) — Charge utile UUI à envoyer lors des transferts SIP REFER. Prend en charge les variables dynamiques intégrées et est encodée en hexadécimal au moment du transfert.
- `protocol_discriminator` (string, optional) — Discriminateur de protocole facultatif sur un octet, composé de deux chiffres hexadécimaux, par exemple '00'. Requis par des plateformes telles que Genesys Cloud, qui suppriment sinon le premier octet de la charge utile. Ne le définissez pas pour les plateformes comme Talkdesk qui attendent une charge utile hexadécimale brute.
- `protocol_discriminator_mode` (enum, optional, default: prefix) — Méthode d’ajout de protocol\_discriminator. 'prefix' ajoute l’octet avant la charge utile hexadécimale (User-to-User=XX\<hex>;encoding=hex). 'pd\_parameter' l’envoie comme paramètre distinct (User-to-User=\<hex>;pd=XX;encoding=hex). Ignoré lorsque protocol\_discriminator n’est pas défini.
  - Allowed values: `prefix`, `pd_parameter`

### PhoneNumberTransferPostDialDigits

- `type`: `dynamic`
  - `value` (string, required) — Le nom de la variable dynamique à résoudre
- `type`: `static`
  - `value` (string, required) — Chiffres DTMF à envoyer après la connexion de l’appel, par exemple 'ww1234' pour un poste.

### LiteralJsonSchemaPropertyType

- "boolean"
- "string"
- "integer"
- "number"
- list of string

### AllowedValues

- `dynamic_variable` (string, required) — Nom d’une variable dynamique qui doit correspondre à un tableau JSON de valeurs autorisées, par exemple ["ws_alpha", "ws_beta"]. Les variables système ne fonctionnent que si elles correspondent à une liste.

### LiteralJsonSchemaPropertyConstantValue

Valeur constante à utiliser pour cette propriété. S’exclut mutuellement avec description, dynamic_variable, is_system_provided et is_omitted.

- string
- integer
- double
- boolean

### WorkflowToolNestedToolsStepModelInputResultsItem

- Conversation History Transcript Other Tools Result Common Model: ConversationHistoryTranscriptOtherToolsResultCommonModel
- Conversation History Transcript System Tool Result Common Model Input: ConversationHistoryTranscriptSystemToolResultCommonModelInput
- Conversation History Transcript API Integration Webhook Tools Result Common Model Input: ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelInput
- Conversation History Transcript Workflow Tools Result Common Model Input: ConversationHistoryTranscriptWorkflowToolsResultCommonModelInput

### ArrayJsonSchemaPropertyOutputItems

Schéma des éléments du tableau.

- Literal JSON Schema Property: LiteralJsonSchemaProperty
- Object JSON Schema Property Output: ObjectJsonSchemaPropertyOutput
- Array JSON Schema Property Output: ArrayJsonSchemaPropertyOutput

## Examples

**Request**

```json
{
  "simulation_specification": {
    "simulated_user_config": {
      "first_message": "Hello, how can I help you today?",
      "language": "en",
      "disable_first_message_interruptions": false
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/simulate-conversation/stream"

payload = { "simulation_specification": { "simulated_user_config": {
            "first_message": "Hello, how can I help you today?",
            "language": "en",
            "disable_first_message_interruptions": False
        } } }
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/simulate-conversation/stream';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"simulation_specification":{"simulated_user_config":{"first_message":"Hello, how can I help you today?","language":"en","disable_first_message_interruptions":false}}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/simulate-conversation/stream"

	payload := strings.NewReader("{\n  \"simulation_specification\": {\n    \"simulated_user_config\": {\n      \"first_message\": \"Hello, how can I help you today?\",\n      \"language\": \"en\",\n      \"disable_first_message_interruptions\": false\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/simulate-conversation/stream")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"simulation_specification\": {\n    \"simulated_user_config\": {\n      \"first_message\": \"Hello, how can I help you today?\",\n      \"language\": \"en\",\n      \"disable_first_message_interruptions\": false\n    }\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/simulate-conversation/stream")
  .header("Content-Type", "application/json")
  .body("{\n  \"simulation_specification\": {\n    \"simulated_user_config\": {\n      \"first_message\": \"Hello, how can I help you today?\",\n      \"language\": \"en\",\n      \"disable_first_message_interruptions\": false\n    }\n  }\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/simulate-conversation/stream', [
  'body' => '{
  "simulation_specification": {
    "simulated_user_config": {
      "first_message": "Hello, how can I help you today?",
      "language": "en",
      "disable_first_message_interruptions": false
    }
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/simulate-conversation/stream");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"simulation_specification\": {\n    \"simulated_user_config\": {\n      \"first_message\": \"Hello, how can I help you today?\",\n      \"language\": \"en\",\n      \"disable_first_message_interruptions\": false\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["simulation_specification": ["simulated_user_config": [
      "first_message": "Hello, how can I help you today?",
      "language": "en",
      "disable_first_message_interruptions": false
    ]]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/simulate-conversation/stream")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```