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

# Actualizar agente

PATCH https://api.elevenlabs.io/v1/convai/agents/{agent_id}
Content-Type: application/json

Actualiza parcialmente la configuración de un agente

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/agents/update

## 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) — El ID de un agente. Se devuelve al crear el agente.

### Query parameters

- `enable_versioning_if_not_enabled` (boolean, optional, default: true, deprecated) — Obsoleto: todos los agentes tienen versiones. Este parámetro se ignora.
- `branch_id` (string, optional) — El ID de la rama que se usará
- `include_procedure_generated_workflow_elements` (boolean, optional, default: true) — Indica si se deben incluir los nodos y las conexiones del workflow generados a partir de procedimientos estructurados. Cuando es false, el workflow solo contiene elementos creados manualmente.

### Body (application/json)

This endpoint expects an object.

- `conversation_config` (ConversationalConfig, optional) — Configuración de conversación para un agente
- `platform_settings` (AgentPlatformSettingsRequestModel, optional) — La configuración de plataforma del agente incluye toda la configuración que no está relacionada con la orquestación y el contenido de la conversación.
- `workflow` (AgentWorkflowRequestModel, optional) — Workflow del agente. Se utiliza para definir el flujo de la conversación y cómo interactúa el agente con las herramientas.
- `name` (string, optional) — Un nombre para encontrar al agente más fácilmente
- `tags` (list of string, optional) — Etiquetas para ayudar a clasificar y filtrar el agente.
- `version_description` (string, optional) — Descripción de esta versión al publicar cambios (solo aplicable a agentes versionados)
- `procedures` (map from string to ProcedureVersionRef, optional) — Versiones de procedimientos que se publicarán, indexadas por procedure_id. Cuando se proporciona, este mapa sustituye los procedimientos del borrador actual o de la punta de la rama. Cuando se omite o es null, se usan las ediciones de procedimientos sin publicar, si existen; de lo contrario, se conservan los procedimientos de la punta de la rama. Pasa un objeto vacío para eliminar todos los procedimientos.

## Response

### 200

Respuesta correcta.

- `agent_id` (string, required) — El ID del agente
- `name` (string, required) — El nombre del agente
- `conversation_config` (ConversationalConfig, required) — La configuración de conversación del agente
- `metadata` (AgentMetadataResponseModel, required) — Los metadatos del agente
- `platform_settings` (AgentPlatformSettingsResponseModel, optional) — La configuración de la plataforma del agente
- `phone_numbers` (list of GetAgentResponseModelPhoneNumbersItem, optional) — Los números de teléfono del agente
- `whatsapp_accounts` (list of GetWhatsAppAccountResponse, optional) — Cuentas de WhatsApp asignadas al agente
- `workflow` (AgentWorkflowResponseModel, optional) — El workflow del agente
- `access_info` (ResourceAccessInfo, optional) — La información de acceso del agente para el usuario.
- `tags` (list of string, optional) — Etiquetas del agente usadas para categorizarlo
- `version_id` (string, optional) — El ID de la versión en la que se encuentra el agente
- `branch_id` (string, optional) — El ID de la rama en la que está el agente
- `main_branch_id` (string, optional) — El ID de la rama principal de este agente
- `procedures` (map from string to ProcedureRefResponseModel, optional) — Procedimientos indexados por procedure_id.
- `default_hold_audio_url` (string, optional, default: https://eleven-public-cdn-common.elevenlabs.io/convai/ambient-audio-assets/elevator1.mp3) — URL del tono de espera predeterminado que se reproduce a quienes llaman en cola cuando no se ha subido un audio de espera personalizado, para que el panel pueda previsualizarlo.

## Errors

### 422 Agents Update Request Unprocessable Entity Error

Error de validación

- `detail` (list of ValidationError, optional)

## Types

### ConversationalConfig

- `asr` (AsrConversationalConfig, optional) — Configuración de la transcripción conversacional
- `turn` (TurnConfig, optional) — Configuración de la detección de turnos
- `tts` (TtsConversationalConfigOutput, optional) — Configuración de Texto a Voz conversacional
- `conversation` (ConversationConfigOutput, optional) — Configuración de eventos conversacionales
- `language_presets` (map from string to LanguagePresetOutput, optional) — Preajustes de idioma para conversaciones
- `vad` (VadConfig, optional) — Configuración de la detección de actividad de voz
- `agent` (AgentConfig, optional) — Configuración específica del agente

### AgentPlatformSettingsRequestModel

- `evaluation` (EvaluationSettingsInput, optional) — Configuración de evaluación
- `widget` (WidgetConfig, optional) — Configuración del widget
- `data_collection` (map from string to AnalysisProperty, optional) — Configuración de recopilación de datos
- `data_collection_scopes` (map from string to enum, optional) — Ámbito por ID de elemento de recopilación de datos. Las claves que falten usarán de forma predeterminada el ámbito de conversación.
  - Allowed values: `conversation`, `agent`
- `analysis_items` (AgentAnalysisItemsInput, optional) — Elementos de evaluación y recopilación de datos vinculados por referencia. None significa que el agente aún no se ha migrado a elementos de análisis (lo que es distinto de un conjunto migrado vacío); en ese caso, las lecturas recurren a los campos heredados evaluation/data_collection.
- `overrides` (ConversationInitiationClientDataConfigInput, optional) — Anulaciones adicionales para el agente durante el inicio de la conversación
- `workspace_overrides` (AgentWorkspaceOverridesInput, optional) — Anulaciones del espacio de trabajo para el agente
- `testing` (AgentTestingSettings, optional) — Configuración de pruebas del agente.
- `archived` (boolean, optional, default: false) — Indica si el agente está archivado.
- `guardrails` (GuardrailsV1Input, optional) — Configuración de medidas de protección para el agente.
- `summary_language` (string, optional) — Idioma para todas las salidas de análisis de conversaciones (resúmenes, títulos, justificaciones de evaluación y justificaciones de recopilación de datos). Si no se establece, el idioma se inferirá de la conversación. Debe ser uno de los idiomas de conversación compatibles.
- `auto_translate_transcript_to_app_language` (boolean, optional) — When enabled, a conversation transcript is automatically translated to the viewer's application language when they open the transcript page. If not set or false, transcripts are shown in their original language unless the viewer manually selects a translation.
- `auth` (AuthSettings, optional) — Configuración de autenticación
- `call_limits` (AgentCallLimits, optional) — Límites de llamadas del agente
- `queueing_config` (AgentQueueingConfig, optional) — Configuración de la cola de espera por simultaneidad del agente
- `privacy` (PrivacyConfigInput, optional) — Configuración de privacidad del agente
- `trust_context` (enum, optional, default: unknown) — El contexto de confianza en el que opera el agente.
  - Allowed values: `unknown`, `low`, `high`
- `analysis_llm` (enum, optional) — Modelo LLM predeterminado para el análisis posterior a la llamada (evaluación y recopilación de datos)
  - 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`
- `topic_discovery` (TopicDiscoverySettings, optional) — Configuración de detección de temas por agente
- `sentiment_analysis` (SentimentAnalysisSettings, optional) — Configuración de análisis de sentimiento posterior a la llamada por agente
- `alerting` (AlertingSettings, optional) — Configuración de alertas a nivel de agente que anula la configuración del espacio de trabajo.

### AgentWorkflowRequestModel

- `edges` (map from string to WorkflowEdgeModelInput, optional)
- `nodes` (map from string to AgentWorkflowRequestModelNodesValue, optional)
- `prevent_subagent_loops` (boolean, optional, default: false) — Si se evitan los bucles en la ejecución del workflow.

### ProcedureVersionRef

- `procedure_id` (string, required) — ID del procedimiento
- `version_id` (string, required) — ID de versión de la versión del procedimiento.

### AgentMetadataResponseModel

- `created_at_unix_secs` (integer, required) — La hora de creación del agente en segundos Unix
- `updated_at_unix_secs` (integer, required) — La hora de la última actualización del agente en segundos Unix

### AgentPlatformSettingsResponseModel

- `evaluation` (EvaluationSettingsOutput, optional) — Configuración de evaluación
- `widget` (WidgetConfig, optional) — Configuración del widget
- `data_collection` (map from string to AnalysisProperty, optional) — Configuración de recopilación de datos
- `data_collection_scopes` (map from string to enum, optional) — Ámbito por ID de elemento de recopilación de datos. Las claves que falten usarán de forma predeterminada el ámbito de conversación.
  - Allowed values: `conversation`, `agent`
- `analysis_items` (AgentAnalysisItemsOutput, optional) — Elementos de evaluación y recopilación de datos vinculados por referencia. None significa que el agente aún no se ha migrado a elementos de análisis (lo que es distinto de un conjunto migrado vacío); en ese caso, las lecturas recurren a los campos heredados evaluation/data_collection.
- `overrides` (ConversationInitiationClientDataConfigOutput, optional) — Anulaciones adicionales para el agente durante el inicio de la conversación
- `workspace_overrides` (AgentWorkspaceOverridesOutput, optional) — Anulaciones del espacio de trabajo para el agente
- `testing` (AgentTestingSettings, optional) — Configuración de pruebas del agente.
- `archived` (boolean, optional, default: false) — Indica si el agente está archivado.
- `guardrails` (GuardrailsV1Output, optional) — Configuración de medidas de protección para el agente.
- `summary_language` (string, optional) — Idioma para todas las salidas de análisis de conversaciones (resúmenes, títulos, justificaciones de evaluación y justificaciones de recopilación de datos). Si no se establece, el idioma se inferirá de la conversación. Debe ser uno de los idiomas de conversación compatibles.
- `auto_translate_transcript_to_app_language` (boolean, optional) — When enabled, a conversation transcript is automatically translated to the viewer's application language when they open the transcript page. If not set or false, transcripts are shown in their original language unless the viewer manually selects a translation.
- `auth` (AuthSettings, optional) — Configuración de autenticación
- `call_limits` (AgentCallLimits, optional) — Límites de llamadas del agente
- `queueing_config` (AgentQueueingConfig, optional) — Configuración de la cola de espera por simultaneidad del agente
- `privacy` (PrivacyConfigOutput, optional) — Configuración de privacidad del agente
- `trust_context` (enum, optional, default: unknown) — El contexto de confianza en el que opera el agente.
  - Allowed values: `unknown`, `low`, `high`
- `analysis_llm` (enum, optional) — Modelo LLM predeterminado para el análisis posterior a la llamada (evaluación y recopilación de datos)
  - 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`
- `topic_discovery` (TopicDiscoverySettings, optional) — Configuración de detección de temas por agente
- `sentiment_analysis` (SentimentAnalysisSettings, optional) — Configuración de análisis de sentimiento posterior a la llamada por agente
- `alerting` (AlertingSettingsResponse, optional) — Configuración de alertas a nivel de agente que anula la configuración del espacio de trabajo.
- `safety` (SafetyResponseModel, optional)

### GetAgentResponseModelPhoneNumbersItem

- `provider`: `exotel`
  - `label` (string, required) — Etiqueta del número de teléfono
  - `phone_number` (string, required) — Número de teléfono
  - `phone_number_id` (string, required) — El ID del número de teléfono
  - `assigned_agent` (PhoneNumberAgentInfo, optional) — El agente asignado al número de teléfono.
  - `supports_inbound` (boolean, optional, default: true, deprecated) — Este campo está obsoleto y se eliminará en el futuro. Indica si este número de teléfono admite llamadas entrantes.
  - `supports_outbound` (boolean, optional, default: true, deprecated) — Este campo está obsoleto y se eliminará en el futuro. Indica si este número de teléfono admite llamadas salientes.
- `provider`: `sip_trunk`
  - `label` (string, required) — Etiqueta del número de teléfono
  - `livekit_stack` (enum, required, default: standard) — Tipo de pila de Livekit utilizada para este número.
    - Allowed values: `standard`, `static`
  - `phone_number` (string, required) — Número de teléfono
  - `phone_number_id` (string, required) — El ID del número de teléfono
  - `assigned_agent` (PhoneNumberAgentInfo, optional) — El agente asignado al número de teléfono.
  - `inbound_trunk` (GetPhoneNumberInboundSipTrunkConfigResponseModel, optional) — Configuración del troncal SIP entrante, si está configurado.
  - `outbound_trunk` (GetPhoneNumberOutboundSipTrunkConfigResponseModel, optional) — Configuración del troncal SIP saliente, si está configurado.
  - `store_sip_messages` (boolean, optional, default: true) — Si se almacenan los mensajes SIP de este número de teléfono.
  - `provider_config` (GetPhoneNumberOutboundSipTrunkConfigResponseModel, optional, deprecated) — Detalles de configuración del troncal SIP para un número de teléfono
  - `supports_inbound` (boolean, optional, default: true, deprecated) — Este campo está obsoleto y se eliminará en el futuro. Indica si este número de teléfono admite llamadas entrantes.
  - `supports_outbound` (boolean, optional, default: true, deprecated) — Este campo está obsoleto y se eliminará en el futuro. Indica si este número de teléfono admite llamadas salientes.
- `provider`: `twilio`
  - `label` (string, required) — Etiqueta del número de teléfono
  - `phone_number` (string, required) — Número de teléfono
  - `phone_number_id` (string, required) — El ID del número de teléfono
  - `assigned_agent` (PhoneNumberAgentInfo, optional) — El agente asignado al número de teléfono.
  - `supports_inbound` (boolean, optional, default: true, deprecated) — Este campo está obsoleto y se eliminará en el futuro. Indica si este número de teléfono admite llamadas entrantes.
  - `supports_outbound` (boolean, optional, default: true, deprecated) — Este campo está obsoleto y se eliminará en el futuro. Indica si este número de teléfono admite llamadas salientes.

### GetWhatsAppAccountResponse

- `business_account_id` (string, required)
- `phone_number_id` (string, required)
- `business_account_name` (string, required)
- `phone_number_name` (string, required)
- `phone_number` (string, required)
- `account_type` (enum, optional, default: cloud_api) — Qué flujo de registro integrado creó esta cuenta.
  - Allowed values: `cloud_api`, `coexistence`
- `assigned_agent_id` (string, optional)
- `enable_messaging` (boolean, optional, default: true)
- `enable_audio_message_response` (boolean, optional, default: true)
- `enable_typing_indicator` (boolean, optional, default: true)
- `assigned_agent_name` (string, optional)
- `is_token_expired` (boolean, optional, default: false)

### AgentWorkflowResponseModel

- `edges` (map from string to WorkflowEdgeModelOutput, required)
- `nodes` (map from string to AgentWorkflowResponseModelNodesValue, required)
- `prevent_subagent_loops` (boolean, required, default: false) — Si se evitan los bucles en la ejecución del workflow.

### ResourceAccessInfo

- `is_creator` (boolean, required) — Indica si el usuario que realiza la solicitud es el creador del agente
- `creator_name` (string, required) — Nombre del creador del agente
- `creator_email` (string, required) — Correo electrónico del creador del agente
- `role` (enum, required) — El rol del usuario que realiza la solicitud
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional) — El nivel de acceso para usuarios anónimos. Si es None, el recurso no se comparte públicamente.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional) — Por qué el usuario solicitante tiene acceso a este recurso. 'creator' = quien realiza la llamada es el propietario. 'explicit' = quien realiza la llamada (o uno de sus grupos del espacio de trabajo) figura en role_to_group_ids, además del grupo general de todos del espacio de trabajo. 'workspace_default' = el grupo general de todos del espacio de trabajo figura en role_to_group_ids (todos los miembros no anónimos del espacio de trabajo, incluidos los administradores, ven este recurso). 'workspace_admin' = quien realiza la llamada es administrador del espacio de trabajo y el puesto de administrador es la *única* vía de acceso; reservado para documentos que nadie más puede ver. Permite que la interfaz revele por qué un usuario que omite los permisos de administrador ve un documento que no se compartió explícitamente con él.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ProcedureRefResponseModel

- `procedure_id` (string, required) — ID del procedimiento
- `version_id` (string, optional) — ID de versión de una versión del procedimiento. Ninguno para un procedimiento que nunca se ha versionado.
- `name` (string, optional, default: ) — Nombre del procedimiento
- `type` (enum, optional, default: free_form) — Tipo de procedimiento
  - Allowed values: `free_form`, `deterministic`, `folder`
- `trigger` (string, optional, default: ) — Cuándo debe usar el agente este procedimiento. Una cadena vacía significa que es un subprocedimiento que solo debe iniciarse cuando otro procedimiento haga referencia a él.
- `referenced_tool_ids` (list of string, optional) — ID de herramientas referenciados en el contenido del procedimiento
- `referenced_kb_ids` (list of string, optional) — ID de bases de conocimientos a los que se hace referencia en el contenido del procedimiento
- `referenced_procedure_ids` (list of string, optional) — ID de procedimientos a los que se hace referencia en el contenido del procedimiento
- `referenced_dynamic_variables` (list of string, optional) — Nombres de variables dinámicas utilizados en el contenido del procedimiento
- `folder_parent_id` (string, optional) — ID del procedimiento de la carpeta en la que se encuentra este procedimiento. None significa raíz.

### ValidationError

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

### AsrConversationalConfig

- `quality` ("high", optional) — La calidad de la transcripción
- `provider` (enum, optional, default: scribe_realtime) — El proveedor del servicio de transcripción
  - Allowed values: `elevenlabs`, `scribe_realtime`, `scribe_v2_turbo`
- `user_input_audio_format` (enum, optional, default: pcm_16000) — El formato del audio que se va a transcribir
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `keywords` (list of string, optional) — Palabras clave para aumentar la probabilidad de predicción de

### TurnConfig

- `turn_timeout` (double, optional, default: 7) — Tiempo máximo de espera de la respuesta del usuario antes de volver a interactuar con él
- `initial_wait_time` (double, optional) — Cuánto tiempo esperará el agente a que el usuario inicie la conversación si el primer mensaje está vacío. Si no se establece, se usa el turn_timeout normal.
- `silence_end_call_timeout` (double, optional, default: -1) — Tiempo máximo de espera desde que el usuario habló por última vez antes de finalizar la llamada
- `turn_eagerness` (enum, optional, default: normal) — Controla la rapidez con la que el agente responde. Bajo = menos rápido (espera más), Estándar = rapidez predeterminada, Alto = más rápido (responde antes)
  - Allowed values: `patient`, `normal`, `eager`
- `spelling_patience` (enum, optional, default: auto) — Controla si el agente debe ser más paciente cuando el usuario está deletreando números y entidades con nombre propio. Auto = según el modelo, Off = nunca espera más tiempo
  - Allowed values: `auto`, `off`
- `speculative_turn` (boolean, optional, default: false) — Cuando está activado, empieza a generar respuestas del LLM durante el silencio antes de alcanzar una confianza total en el turno, lo que reduce la latencia percibida. Puede aumentar los costes del LLM.
- `retranscribe_on_turn_timeout` (boolean, optional, default: false) — Cuando se activa, si VAD no detecta voz, intenta volver a transcribir el audio acumulado cuando se agota el tiempo del turno. Desactiva la facturación con descuento por silencio mientras está activado para el agente o nodo de workflow activo.
- `turn_model` (enum, optional, default: turn_v3) — Versión del modelo de detección de turnos que se debe usar.
  - Allowed values: `turn_v2`, `turn_v3`
- `interruption_ignore_terms` (list of string, optional) — Lista de términos que no deben desencadenar una interrupción cuando los pronuncie el usuario (p. ej., 'gotcha', 'understood'). Utiliza coincidencia exacta sin distinguir mayúsculas de minúsculas.
- `interruption_ignore_term_languages` (list of string, optional) — Códigos de idioma para los que se han activado categorías predefinidas de términos que se deben ignorar. Se almacenan explícitamente para que la visualización no se infiera a partir de la coincidencia de términos.
- `merge_with_default_ignore_terms` (boolean, optional, default: false) — Cuando está activado, se usan los términos predeterminados seleccionados para interruption_ignore_term_languages además de interruption_ignore_terms.
- `transcribe_on_disabled_interruptions` (boolean, optional, default: false) — Cuando las interrupciones están desactivadas, transcribe igualmente lo que dice el usuario para incluirlo en el siguiente turno. Si está desactivado, se ignora el habla del usuario durante un turno no interrumpible y no activa un turno.
- `soft_timeout_config` (SoftTimeoutConfig, optional) — Configuración de la función de tiempo de espera flexible. Proporciona comentarios inmediatos durante respuestas más largas del LLM.

### TtsConversationalConfigOutput

- `model_id` (enum, optional, default: eleven_v4_turbo) — El modelo que se debe usar para TTS
  - Allowed values: `eleven_turbo_v2`, `eleven_turbo_v2_5`, `eleven_flash_v2`, `eleven_flash_v2_5`, `eleven_multilingual_v2`, `eleven_v3_conversational`, `eleven_v4`, `eleven_v4_turbo`
- `voice_id` (string, optional, default: cjVigY5qzO86Huf0OWal) — El ID de voz que se utilizará para TTS
- `supported_voices` (list of SupportedVoice, optional) — Voces compatibles adicionales para el agente
- `expressive_mode` (boolean, optional, default: true) — Cuando está activado, aplica el prompt de etiquetas de audio expresivas. Se desactiva automáticamente para modelos que no sean v3.
- `suggested_audio_tags` (list of SuggestedAudioTag, optional) — Etiquetas de audio sugeridas para potenciar una voz expresiva (para los modelos eleven_v3 y eleven_v3_conversational). El agente también puede usar otras etiquetas que no se incluyan aquí.
- `agent_output_audio_format` (enum, optional, default: pcm_16000) — El formato de audio que se usará para Texto a Voz
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `optimize_streaming_latency` (integer, optional) — Obsoleto: este campo no tiene efecto y se ignora.
- `stability` (double, optional, default: 0.5) — La estabilidad de la voz generada.
- `speed` (double, optional, default: 1) — La velocidad de la voz generada.
- `similarity_boost` (double, optional, default: 0.8) — El refuerzo de similitud para la voz generada
- `text_normalisation_type` (enum, optional, default: system_prompt) — Método para convertir números en palabras antes de convertir texto en voz. Si se establece en SYSTEM_PROMPT, el prompt del sistema se actualizará para incluir instrucciones de normalización. Si se establece en ELEVENLABS, el texto se normalizará después de la generación, lo que añadirá una ligera latencia.
  - Allowed values: `system_prompt`, `elevenlabs`
- `pronunciation_dictionary_locators` (list of PydanticPronunciationDictionaryVersionLocator, optional) — Los localizadores del diccionario de pronunciación
- `enable_phoneme_tags` (boolean, optional, default: true) — Activa el procesamiento de etiquetas de fonemas SSML para los modelos V3. Al activarlo, las etiquetas de fonemas, tanto en línea como de diccionarios de pronunciación, se analizan y convierten a IPA en línea antes de enviarse al modelo.
- `audio_effects` (EffectsSpecOutput, optional) — Especificación opcional de efectos de TTS: preajuste de filtro, distancia (ecualización de proximidad) y entorno (reverberación por convolución).

### ConversationConfigOutput

- `text_only` (boolean, optional, default: false) — Si se activa, el audio no se procesará y solo se utilizará texto. Úsalo para evitar los costes de audio.
- `max_duration_seconds` (integer, optional, default: 600) — La duración máxima de una conversación en segundos
- `client_events` (list of enum, optional) — Los eventos que se enviarán al cliente
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `file_input` (FileInputConfig, optional) — Configuración de la entrada de archivos (subidas de imágenes o PDF) durante las conversaciones.
- `monitoring_enabled` (boolean, optional, default: false) — Activa la monitorización en tiempo real de las conversaciones mediante WebSocket
- `monitoring_events` (list of enum, optional) — Los eventos que se enviarán a las conexiones de monitorización.
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `dtmf_input_settings` (DtmfInputConfig, optional) — Configura la recopilación de entradas DTMF (teclado) durante llamadas telefónicas
- `background_sound` (BackgroundSoundConfig, optional) — Configuración del sonido de fondo durante las conversaciones.
- `source_attribution` (boolean, optional, default: false) — Cuando está activado y hay contenido en la base de conocimientos, se indica al LLM que informe de las fuentes que ha utilizado.

### LanguagePresetOutput

- `overrides` (ConversationConfigClientOverrideOutput, required) — Las sustituciones para el preajuste de idioma
- `first_message_translation` (LanguagePresetTranslation, optional) — La traducción del primer mensaje
- `soft_timeout_translation` (LanguagePresetTranslation, optional) — La traducción del mensaje de tiempo de espera flexible

### VadConfig

### AgentConfig

- `first_message` (string, optional, default: ) — Si no está vacío, el primer mensaje que dirá el agente. Si está vacío, el agente espera a que el usuario inicie la conversación.
- `language` (string, optional, default: en) — Idioma del agente, usado para ASR y TTS
- `hinglish_mode` (boolean, optional, default: false) — Cuando está activado, el agente mezcla palabras y frases en inglés en las respuestas en hindi, malayalam, telugu o canarés.
- `dynamic_variables` (any, optional)
- `disable_first_message_interruptions` (boolean, optional, default: false) — Si es true, el usuario no podrá interrumpir al agente mientras se emite el primer mensaje.
- `max_conversation_duration_message` (string, optional, default: ) — Si no está vacío, el mensaje que enviará el agente cuando se alcance la duración máxima de la conversación.
- `text_behavior_overrides` (map from string to BehaviorOverride, optional) — Anulaciones del comportamiento de respuesta por canal para conversaciones de texto. Si no se establecen, se aplican los valores predeterminados integrados del canal.
- `prompt` (PromptAgentApiModelOutput, optional) — El prompt del agente

### EvaluationSettingsInput

Configuración para evaluar el rendimiento de un agente. Los agentes se evalúan según un conjunto de criterios, y el éxito se define como cumplir alguna combinación de dichos criterios.

- `criteria` (list of PromptEvaluationCriteria, optional) — Criterios individuales con los que se debe evaluar al agente

### WidgetConfig

- `variant` (enum, optional, default: full) — La variante del widget
  - Allowed values: `tiny`, `compact`, `full`, `expandable`
- `placement` (enum, optional, default: bottom-right) — La ubicación del widget en la pantalla
  - Allowed values: `top-left`, `top`, `top-right`, `bottom-left`, `bottom`, `bottom-right`
- `expandable` (enum, optional, default: never) — Indica si el widget se puede ampliar
  - Allowed values: `never`, `mobile`, `desktop`, `always`
- `avatar` (WidgetConfigAvatar, optional) — El avatar del widget
- `feedback_mode` (enum, optional, default: none) — El modo de comentarios del widget
  - Allowed values: `none`, `during`, `end`
- `end_feedback` (WidgetEndFeedbackConfig, optional) — Configuración de los comentarios recopilados al final de la conversación
- `bg_color` (string, optional, default: #ffffff) — El color de fondo del widget
- `text_color` (string, optional, default: #000000) — El color del texto del widget.
- `btn_color` (string, optional, default: #000000) — El color del botón del widget
- `btn_text_color` (string, optional, default: #ffffff) — El color del texto del botón del widget
- `border_color` (string, optional, default: #e1e1e1) — El color del borde del widget
- `focus_color` (string, optional, default: #000000) — El color de foco del widget
- `border_radius` (integer, optional) — El radio del borde del widget
- `btn_radius` (integer, optional) — El radio del botón del widget
- `action_text` (string, optional) — El texto de acción del widget.
- `start_call_text` (string, optional) — El texto de inicio de llamada del widget.
- `end_call_text` (string, optional) — El texto de finalización de llamada del widget
- `expand_text` (string, optional) — El texto para expandir del widget
- `listening_text` (string, optional) — El texto que se mostrará cuando el agente esté escuchando
- `speaking_text` (string, optional) — El texto que se mostrará cuando el agente esté hablando
- `shareable_page_text` (string, optional) — El texto que se mostrará al compartir
- `shareable_page_show_terms` (boolean, optional, default: true) — Si se muestran los términos y condiciones en la página compartible
- `terms_text` (string, optional) — El texto que se mostrará para los términos y condiciones
- `terms_html` (string, optional) — El HTML que se mostrará para los términos y condiciones
- `terms_key` (string, optional) — La clave que se debe mostrar para los términos y condiciones
- `show_avatar_when_collapsed` (boolean, optional) — Si se muestra el avatar cuando el widget está contraído
- `disable_banner` (boolean, optional, default: false) — Indica si se debe desactivar el banner
- `override_link` (string, optional) — El enlace de sustitución del widget
- `markdown_link_allowed_hosts` (list of AllowlistItem, optional) — Lista de nombres de host permitidos para enlaces de Markdown en los que se puede hacer clic. Usa \{ hostname: '\*' } para permitir cualquier dominio. Si está vacía, no se permite ningún enlace.
- `markdown_link_include_www` (boolean, optional, default: true) — Indica si se deben incluir automáticamente las variantes con www. de los hosts permitidos
- `markdown_link_allow_http` (boolean, optional, default: true) — Indica si se permite http:// además de https:// para los hosts permitidos
- `mic_muting_enabled` (boolean, optional, default: true) — Indica si se debe activar el silenciamiento del micrófono
- `transcript_enabled` (boolean, optional, default: true) — Indica si el widget debe mostrar la transcripción de la conversación a medida que transcurre
- `text_input_enabled` (boolean, optional, default: true) — Indica si el usuario debe poder enviar mensajes de texto
- `conversation_mode_toggle_enabled` (boolean, optional, default: false) — Indica si se debe activar el selector de modo de conversación en el widget
- `default_expanded` (boolean, optional, default: false) — Indica si el widget debe estar ampliado de forma predeterminada
- `always_expanded` (boolean, optional, default: false) — Indica si el widget debe estar siempre ampliado
- `dismissible` (boolean, optional, default: false) — Indica si el usuario puede cerrar el widget
- `show_agent_status` (boolean, optional, default: false) — Si se muestra el estado de trabajo/finalización/error del agente durante el uso de herramientas
- `show_conversation_id` (boolean, optional, default: true) — Si se muestra el ID de la conversación tras la desconexión.
- `strip_audio_tags` (boolean, optional, default: true) — Si se elimina el marcado de audio de los mensajes.
- `syntax_highlight_theme` (enum, optional) — Tema para el resaltado de sintaxis de bloques de código. Si no se configura, el widget detecta el tema automáticamente.
  - Allowed values: `light`, `dark`
- `text_contents` (WidgetTextContents, optional) — Contenido de texto del widget.
- `styles` (WidgetStyles, optional) — Estilos del widget.
- `show_resize_button` (boolean, optional, default: true) — Si se muestra el botón para cambiar el tamaño
- `end_confirmation_enabled` (boolean, optional, default: false) — Indica si se debe pedir al usuario que confirme antes de finalizar un chat o una llamada.
- `language_selector` (boolean, optional, default: false) — Si se muestra el selector de idioma
- `supports_text_only` (boolean, optional, default: true) — Indica si el widget puede cambiar al modo de solo texto
- `custom_avatar_path` (string, optional) — La ruta del avatar personalizado
- `language_presets` (map from string to WidgetLanguagePreset, optional) — Preajustes de idioma para el widget

### AnalysisProperty

Propiedad de recopilación de datos con una sustitución opcional del LLM por elemento para el análisis posterior a la llamada. TODO: migrar a composición (value_schema: LiteralJsonSchemaProperty + llm) en lugar de herencia, para que pueda generalizarse correctamente a esquemas de objetos y matrices en el futuro.

- `type` (enum, required)
  - Allowed values: `boolean`, `string`, `integer`, `number`
- `description` (string, optional, default: ) — La descripción de la propiedad. Cuando se establece, el LLM proporcionará el valor según esta descripción. Es mutuamente excluyente con dynamic_variable, is_system_provided, constant_value e is_omitted.
- `enum` (list of string, optional) — List of allowed string values for string type parameters
- `is_system_provided` (boolean, optional, default: false) — Si es true, el sistema completará el valor en tiempo de ejecución. Lo usan las herramientas de webhook de integración con API para plantillas. Es mutuamente excluyente con description, dynamic_variable, constant_value e is_omitted.
- `dynamic_variable` (string, optional, default: ) — El nombre de la variable dinámica que se usará para el valor de esta propiedad. Es mutuamente excluyente con description, is_system_provided, constant_value e is_omitted.
- `allowed_values` (AllowedValues, optional) — Protección de rechazo del lado del servidor para un valor proporcionado por un LLM: el entorno de ejecución rechaza cualquier valor fuera del conjunto permitido que nombra este objeto, y el conjunto no se muestra al LLM como un enum. Solo se admite cuando el origen del valor es `description`; se rechaza combinarlo con dynamic_variable, is_system_provided, constant_value o is_omitted.
- `constant_value` (AnalysisPropertyConstantValue, optional) — Un valor constante que se utilizará para esta propiedad. Es mutuamente excluyente con description, dynamic_variable, is_system_provided e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si es true, este parámetro se omitirá por completo de la solicitud. Solo es válido para parámetros opcionales. Es mutuamente excluyente con description, dynamic_variable, is_system_provided y constant_value.
- `name` (string, optional) — El nombre de este elemento de recopilación de datos.
- `llm` (enum, optional) — Modelo LLM que utilizar para este elemento de análisis. Si no se establece, utiliza el valor predeterminado analysis_llm del agente.
  - 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`
- `allowed_values_dynamic_variable` (string, optional, default: , deprecated) — OBSOLETO: usa `allowed_values` en su lugar. Cuando se establece, el LLM proporciona el valor, pero el entorno de ejecución rechaza cualquier valor que no esté presente en la lista de esta variable dinámica (debe ser una matriz JSON como ["ws_alpha", "ws_beta"]). Úsalo para permitir que el LLM elija de un conjunto verificado por el servidor (p. ej., los ID a los que puede acceder el usuario actual). Requiere description; es mutuamente excluyente con dynamic_variable, is_system_provided, constant_value e is_omitted.

### AgentAnalysisItemsInput

- `evaluation_criteria` (list of AgentAnalysisItemsInputEvaluationCriteriaItem, optional)
- `data_collection` (list of AgentAnalysisItemsInputDataCollectionItem, optional)

### ConversationInitiationClientDataConfigInput

- `conversation_config_override` (ConversationConfigClientOverrideConfigInput, optional) — Anulaciones de la configuración de la conversación
- `custom_llm_extra_body` (boolean, optional, default: false) — Indica si se debe incluir un cuerpo adicional personalizado para el LLM
- `enable_conversation_initiation_client_data_from_webhook` (boolean, optional, default: false) — Indica si se deben activar los datos de cliente de inicio de conversación procedentes de webhooks
- `enable_starting_workflow_node_id_from_client` (boolean, optional, default: false) — Indica si los clientes pueden pasar starting_workflow_node_id en los datos de inicio del cliente; si es false, enviarlo impide que se inicie la conversación.
- `enable_procedure_ids_from_client` (boolean, optional, default: false) — Indica si los clientes pueden pasar procedure_ids en los datos de inicio del cliente para seleccionar qué procedimientos del agente están disponibles para la conversación; si es false, enviarlo impide que se inicie la conversación.

### AgentWorkspaceOverridesInput

- `conversation_initiation_client_data_webhook` (ConversationInitiationClientDataWebhook, optional) — El webhook al que se enviarán los datos del cliente de inicio de conversación
- `webhooks` (ConvAiWebhooks, optional)

### AgentTestingSettings

Configuración para probar agentes.

- `attached_tests` (list of AttachedTestModel, optional) — Lista de ID de pruebas que deben ejecutarse para este agente

### GuardrailsV1Input

- `version` ("1", optional)
- `focus` (FocusGuardrail, optional)
- `prompt_injection` (PromptInjectionGuardrail, optional)
- `content` (ContentGuardrailInput, optional)
- `custom` (CustomGuardrailInput, optional) — Contenedor de medidas de protección personalizadas que sigue el patrón ModerationGuardrail

### AuthSettings

- `enable_auth` (boolean, optional, default: false) — Si se establece en true, para iniciar una conversación con un agente será necesario un token firmado
- `allowlist` (list of AllowlistItem, optional) — Una lista de hosts autorizados a iniciar conversaciones con el agente.
- `require_origin_header` (boolean, optional, default: false) — Cuando está activado, se rechazarán las conexiones sin cabecera de origen. Si la lista de permitidos está vacía, esta opción no tiene efecto.
- `shareable_token` (string, optional) — Un token compartible que puede utilizarse para iniciar una conversación con el agente

### AgentCallLimits

- `agent_concurrency_limit` (integer, optional, default: -1) — El número máximo de conversaciones simultáneas. -1 indica que no hay límite
- `daily_limit` (integer, optional, default: 100000) — El número máximo de conversaciones por día
- `bursting_enabled` (boolean, optional, default: true) — Indica si se debe activar el modo de ráfaga. Si es true, se permitirá superar el límite de simultaneidad del espacio de trabajo hasta tres veces. Las llamadas que superen el límite se cobrarán al doble de la tarifa.

### AgentQueueingConfig

- `enabled` (boolean, optional, default: false) — Mantiene a quienes llaman en una cola de espera cuando el agente alcanza su límite de concurrencia, en lugar de rechazarlos de inmediato. Los nuevos agentes se crean con las colas activadas, salvo que este campo se establezca explícitamente.
- `wait_timeout_seconds` (integer, optional, default: 180) — Tiempo máximo que una persona puede esperar en la cola antes de que se rechace la llamada
- `hold_audio` (AgentHoldAudioConfig, optional) — Audio de espera personalizado que se reproduce para quienes llaman en cola; si no se configura, escucharán el tono de espera predeterminado. Solo lectura: configúralo subiendo un archivo mediante la ruta de API de audio de espera del agente.

### PrivacyConfigInput

- `record_voice` (boolean, optional, default: true) — Si se graba la conversación
- `retention_days` (integer, optional, default: -1) — El número de días durante los que se conserva la conversación. -1 indica que no hay límite de conservación
- `delete_transcript_and_pii` (boolean, optional, default: false) — Indica si se deben eliminar la transcripción y los datos de identificación personal
- `delete_audio` (boolean, optional, default: false) — Indica si se debe eliminar el audio
- `apply_to_existing_conversations` (boolean, optional, default: false) — Indica si se deben aplicar los ajustes de privacidad a las conversaciones existentes
- `zero_retention_mode` (boolean, optional, default: false) — Indica si se debe activar el modo de retención cero: no se almacenan datos de identificación personal
- `conversation_history_redaction` (ConversationHistoryRedactionConfig, optional) — Configuración para la ocultación de información personal identificable en el historial de conversación

### TopicDiscoverySettings

Configuración de detección de temas por agente. La frecuencia y la ventana de análisis se gestionan internamente; esto solo expone el interruptor de activación o desactivación para clientes.

### SentimentAnalysisSettings

### AlertingSettings

Configuración de alertas usada tanto a nivel de agente como de espacio de trabajo. Orden de cascada para el umbral por monitor y la resolución automática: agente → espacio de trabajo → valor predeterminado del sistema.

- `monitor_configs` (map from string to AlertingMonitorConfig, optional) — Configuración de alertas indexada por nombre de monitor.
- `auto_resolve_after_inactive_minutes` (integer, optional) — Cuántos minutos puede permanecer inactiva una alerta antes de resolverse automáticamente. Los valores no establecidos pasan a la siguiente capa.
- `notifiers` (list of AlertingSettingsNotifiersItem, optional) — Canales de entrega para las notificaciones del ciclo de vida de las alertas. Se combinan con otras capas y se eliminan duplicados por ``webhook_id``, ``connection_id`` de PagerDuty o ``(connection_id, channel_id)`` de Slack.

### WorkflowEdgeModelInput

- `source` (string, required) — ID del nodo de origen.
- `target` (string, required) — ID del nodo de destino.
- `forward_condition` (WorkflowEdgeModelInputForwardCondition, optional) — Condición que debe cumplirse para recorrer la arista en dirección directa (del origen al destino).
- `backward_condition` (WorkflowEdgeModelInputBackwardCondition, optional) — Condición que debe cumplirse para recorrer la arista en dirección inversa (del destino al origen).

### AgentWorkflowRequestModelNodesValue

- `type`: `end`
  - `edge_order` (list of string, optional) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `outcome` (enum, optional, default: success) — Indica si al llegar a este nodo End la conversación finaliza correctamente o con un fallo.
    - Allowed values: `success`, `failure`
  - `position` (PositionInput, optional) — Posición del nodo en el workflow.
- `type`: `override_agent`
  - `label` (string, required) — Etiqueta legible para humanos del nodo, utilizada en toda la interfaz.
  - `additional_knowledge_base` (list of KnowledgeBaseLocator, optional) — Documentos adicionales de la base de conocimientos a los que tiene acceso el subagente. Se usarán además de los documentos del agente principal.
  - `additional_prompt` (string, optional) — Objetivo específico de este subagente. Se añadirá al prompt del sistema y puede utilizarse para perfeccionar aún más el comportamiento del agente en este contexto concreto.
  - `additional_tool_ids` (list of string, optional) — ID de herramientas adicionales a las que tiene acceso el subagente. Se usarán además de las herramientas del agente principal.
  - `conversation_config` (ConversationalConfigApiModelWorkflowOverrideInput, optional) — Anulaciones de configuración aplicadas mientras el subagente lleva a cabo la conversación.
  - `edge_order` (list of string, optional) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `entry_behavior` (enum, optional, default: auto) — Determina si este nodo debe generar una respuesta de inmediato al acceder a él o esperar la entrada del usuario. Cuando se establece en "auto", el comportamiento se decidirá según el tipo de nodo anterior: "wait_for_user" después de los nodos "say" y "start", y "generate_immediately" en los demás casos.
    - Allowed values: `generate_immediately`, `wait_for_user`, `auto`
  - `position` (PositionInput, optional) — Posición del nodo en el workflow.
- `type`: `phone_number`
  - `transfer_destination` (WorkflowPhoneNumberNodeModelInputTransferDestination, required)
  - `custom_sip_headers` (list of WorkflowPhoneNumberNodeModelInputCustomSipHeadersItem, optional) — Cabeceras SIP personalizadas que se incluirán al transferir la llamada. Cada cabecera puede ser un valor estático o una referencia a variable dinámica.
  - `edge_order` (list of string, optional) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `position` (PositionInput, optional) — Posición del nodo en el workflow.
  - `post_dial_digits` (WorkflowPhoneNumberNodeModelInputPostDialDigits, optional) — Dígitos DTMF que se enviarán tras conectar la llamada (por ejemplo, 'ww1234' para una extensión). Puede ser un valor estático o una referencia de variable dinámica. Usa 'w' para una pausa de 0,5 s. Solo es compatible con transferencias de Twilio.
  - `sip_refer_play_dialtone` (boolean, optional, default: true) — Cuando es True, se reproduce un tono de llamada en el tramo original de la llamada mientras se completa una transferencia SIP REFER. El tono se transmite mediante RTP al par SIP que ejecuta el REFER, así que desactiva esta opción si el sistema receptor (por ejemplo, un SBC o un centro de contacto) no debe oírlo. Cuando está desactivada, la persona que llama oye silencio hasta que se completa la transferencia. Solo para transferencias SIP REFER.
  - `transfer_type` (enum, optional, default: conference)
    - Allowed values: `blind`, `conference`, `sip_refer`
  - `uui` (UuiTransferConfig, optional) — Información de usuario a usuario (RFC 7433) para adjuntar a transferencias SIP REFER. Transporta el contexto de la llamada, como identificadores de CRM o el motivo de la escalación, a través del límite de la transferencia.
- `type`: `standalone_agent`
  - `agent_id` (string, optional) — El ID del agente al que se transferirá la conversación. None indica una transferencia dentro del agente actual.
  - `branch_id` (string, optional) — ID de rama opcional para el agente de destino. None sigue el despliegue de tráfico del agente de destino o usa su rama principal cuando se establece node_id.
  - `delay_ms` (integer, optional, default: 0) — Retraso artificial en milisegundos aplicado antes de transferir la conversación.
  - `edge_order` (list of string, optional) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `enable_transferred_agent_first_message` (boolean, optional, default: false) — Indica si se debe permitir que el agente transferido envíe su primer mensaje configurado después de la transferencia.
  - `node_id` (string, optional) — ID opcional del nodo de destino en el workflow del agente de destino. Cuando se establece, la transferencia comienza en este nodo en lugar de en el nodo de entrada predeterminado.
  - `position` (PositionInput, optional) — Posición del nodo en el workflow.
  - `preserve_client_tts_overrides` (boolean, optional, default: false) — Define si las sustituciones del cliente de TTS deben transferirse al agente transferido.
  - `preserve_voice_settings` (boolean, optional, default: false) — Define si la voz base, el modelo de TTS y la configuración de voz deben transferirse al agente transferido.
  - `transfer_message` (string, optional) — Mensaje opcional enviado al usuario antes de iniciar la transferencia.
- `type`: `start`
  - `edge_order` (list of string, optional) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `position` (PositionInput, optional) — Posición del nodo en el workflow.
- `type`: `tool`
  - `edge_order` (list of string, optional) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `position` (PositionInput, optional) — Posición del nodo en el workflow.
  - `tools` (list of WorkflowToolLocator, optional) — Lista de herramientas que ejecutar en paralelo. El nodo completo se considera correcto si todas las herramientas se ejecutan correctamente.
- `type`: `say`
  - `label` (string, required) — Etiqueta legible para humanos del nodo, utilizada en toda la interfaz.
  - `message` (WorkflowSayNodeModelInputMessage, required) — Mensaje que pronuncia este nodo. Usa `literal` para texto exacto o `prompt` para que el LLM genere el mensaje a partir de una descripción.
  - `additional_knowledge_base` (list of KnowledgeBaseLocator, optional) — Documentos de la base de conocimientos disponibles para el LLM mientras este nodo genera su mensaje, además de los documentos del agente.
  - `additional_prompt` (string, optional) — Se acepta para mantener la coherencia con los nodos de subagentes, pero no se utiliza. Describe el mensaje en `message.prompt` o sustituye el prompt del sistema por `conversation_config.agent.prompt.prompt`.
  - `additional_tool_ids` (list of string, optional) — Se acepta para mantener la coherencia con los nodos de subagentes, pero no se utiliza. Un nodo de mensaje no puede llamar a herramientas.
  - `conversation_config` (ConversationalConfigApiModelWorkflowOverrideInput, optional) — Anulaciones de configuración que se aplican mientras este nodo habla, como la voz o, en los mensajes de prompt, el LLM y el prompt del sistema.
  - `edge_order` (list of string, optional) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `position` (PositionInput, optional) — Posición del nodo en el workflow.
  - `wait_for_speech_completion` (boolean, optional, default: false) — Cuando es true, el workflow solo pasa al siguiente nodo después de que el mensaje se haya pronunciado por completo.
  - `wait_for_user_response` (boolean, optional, default: false) — Cuando es true, el nodo pronuncia su mensaje y después espera a que el usuario responda antes de evaluar las conexiones salientes, de modo que estas puedan ramificarse según la respuesta. Si el usuario permanece en silencio, el workflow avanza cuando se agota el tiempo de espera del turno.
- `type`: `update_state`
  - `label` (string, required) — Etiqueta legible para humanos del nodo, utilizada en toda la interfaz.
  - `updates` (list of WorkflowStateUpdateInput, required) — Actualizaciones de estado que se aplican cuando el workflow llega a este nodo. Un nodo admite un máximo de 50 actualizaciones.
  - `edge_order` (list of string, optional) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `position` (PositionInput, optional) — Posición del nodo en el workflow.

### EvaluationSettingsOutput

Configuración para evaluar el rendimiento de un agente. Los agentes se evalúan según un conjunto de criterios, y el éxito se define como cumplir alguna combinación de dichos criterios.

- `criteria` (list of PromptEvaluationCriteria, optional) — Criterios individuales con los que se debe evaluar al agente

### AgentAnalysisItemsOutput

- `evaluation_criteria` (list of AgentAnalysisItemsOutputEvaluationCriteriaItem, optional)
- `data_collection` (list of AgentAnalysisItemsOutputDataCollectionItem, optional)

### ConversationInitiationClientDataConfigOutput

- `conversation_config_override` (ConversationConfigClientOverrideConfigOutput, optional) — Anulaciones de la configuración de la conversación
- `custom_llm_extra_body` (boolean, optional, default: false) — Indica si se debe incluir un cuerpo adicional personalizado para el LLM
- `enable_conversation_initiation_client_data_from_webhook` (boolean, optional, default: false) — Indica si se deben activar los datos de cliente de inicio de conversación procedentes de webhooks
- `enable_starting_workflow_node_id_from_client` (boolean, optional, default: false) — Indica si los clientes pueden pasar starting_workflow_node_id en los datos de inicio del cliente; si es false, enviarlo impide que se inicie la conversación.
- `enable_procedure_ids_from_client` (boolean, optional, default: false) — Indica si los clientes pueden pasar procedure_ids en los datos de inicio del cliente para seleccionar qué procedimientos del agente están disponibles para la conversación; si es false, enviarlo impide que se inicie la conversación.

### AgentWorkspaceOverridesOutput

- `conversation_initiation_client_data_webhook` (ConversationInitiationClientDataWebhook, optional) — El webhook al que se enviarán los datos del cliente de inicio de conversación
- `webhooks` (ConvAiWebhooks, optional)

### GuardrailsV1Output

- `version` ("1", optional)
- `focus` (FocusGuardrail, optional)
- `prompt_injection` (PromptInjectionGuardrail, optional)
- `content` (ContentGuardrailOutput, optional)
- `custom` (CustomGuardrailOutput, optional) — Contenedor de medidas de protección personalizadas que sigue el patrón ModerationGuardrail

### PrivacyConfigOutput

- `record_voice` (boolean, optional, default: true) — Si se graba la conversación
- `retention_days` (integer, optional, default: -1) — El número de días durante los que se conserva la conversación. -1 indica que no hay límite de conservación
- `delete_transcript_and_pii` (boolean, optional, default: false) — Indica si se deben eliminar la transcripción y los datos de identificación personal
- `delete_audio` (boolean, optional, default: false) — Indica si se debe eliminar el audio
- `apply_to_existing_conversations` (boolean, optional, default: false) — Indica si se deben aplicar los ajustes de privacidad a las conversaciones existentes
- `zero_retention_mode` (boolean, optional, default: false) — Indica si se debe activar el modo de retención cero: no se almacenan datos de identificación personal
- `conversation_history_redaction` (ConversationHistoryRedactionConfig, optional) — Configuración para la ocultación de información personal identificable en el historial de conversación

### AlertingSettingsResponse

Vista de la configuración de alertas orientada al cliente. A diferencia de AdminAlertingSettingsResponse, no tiene un campo internal_notifiers: son canales de entrega internos de ElevenLabs cuyas URL nunca deben devolverse fuera de la API de administración.

- `monitor_configs` (map from string to AlertingMonitorConfig, optional)
- `auto_resolve_after_inactive_minutes` (integer, optional)
- `notifiers` (list of AlertingSettingsResponseNotifiersItem, optional)

### SafetyResponseModel

- `is_blocked_ivc` (boolean, optional, default: false)
- `is_blocked_non_ivc` (boolean, optional, default: false)
- `ignore_safety_evaluation` (boolean, optional, default: false)

### PhoneNumberAgentInfo

- `agent_id` (string, required) — El ID del agente
- `agent_name` (string, required) — El nombre del agente
- `environment` (string, optional) — Entorno que se utilizará para resolver las variables de entorno en las llamadas a este número.
- `branch_id` (string, optional) — Rama del agente que se usará para las llamadas a este número.

### GetPhoneNumberInboundSipTrunkConfigResponseModel

- `allowed_addresses` (list of string, required) — Lista de direcciones IP autorizadas para utilizar el troncal. Cada elemento de la lista puede ser una dirección IP individual o una notación de enrutamiento entre dominios sin clases que represente un bloque CIDR.
- `media_encryption` (enum, required, default: allowed)
  - Allowed values: `disabled`, `allowed`, `required`
- `has_auth_credentials` (boolean, required) — Indica si se han configurado credenciales de autenticación.
- `allowed_numbers` (list of string, optional) — Lista de números de teléfono autorizados para utilizar el troncal.
- `username` (string, optional) — Nombre de usuario del troncal SIP (si está disponible)
- `remote_domains` (list of string, optional) — Dominios de servidores SIP remotos utilizados para validar certificados TLS.
- `attributes_to_headers` (map from string to string, optional) — Mapa del nombre de variable dinámica al nombre de encabezado para attributes_to_headers

### GetPhoneNumberOutboundSipTrunkConfigResponseModel

Detalles de configuración del troncal SIP para un número de teléfono

- `address` (string, required) — Nombre de host o IP a la que se envía el SIP INVITE.
- `transport` (enum, required, default: auto) — Protocolo que se usará para el transporte SIP
  - Allowed values: `auto`, `udp`, `tcp`, `tls`
- `media_encryption` (enum, required, default: allowed) — Indica si se deben cifrar los archivos multimedia (capa de datos).
  - Allowed values: `disabled`, `allowed`, `required`
- `has_auth_credentials` (boolean, required) — Indica si se han configurado credenciales de autenticación.
- `headers` (map from string to string, optional) — Cabeceras SIP para la solicitud INVITE
- `attributes_to_headers` (map from string to string, optional) — Mapa del nombre de variable dinámica al nombre de encabezado para attributes_to_headers
- `username` (string, optional) — Nombre de usuario del troncal SIP (si está disponible)
- `has_outbound_trunk` (boolean, optional, default: false) — Indica si hay configurado un troncal SIP saliente de LiveKit.
- `enabled_codecs` (list of enum, optional) — Códecs multimedia que se ofrecen en el SDP para llamadas salientes. Si está vacío, se ofrecen todos los códecs compatibles.
  - Allowed values: `G722/8000`, `PCMU/8000`, `PCMA/8000`

### WorkflowEdgeModelOutput

- `source` (string, required) — ID del nodo de origen.
- `target` (string, required) — ID del nodo de destino.
- `forward_condition` (WorkflowEdgeModelOutputForwardCondition, optional) — Condición que debe cumplirse para recorrer la arista en dirección directa (del origen al destino).
- `backward_condition` (WorkflowEdgeModelOutputBackwardCondition, optional) — Condición que debe cumplirse para recorrer la arista en dirección inversa (del destino al origen).

### AgentWorkflowResponseModelNodesValue

- `type`: `end`
  - `edge_order` (list of string, required) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `outcome` (enum, required, default: success) — Indica si al llegar a este nodo End la conversación finaliza correctamente o con un fallo.
    - Allowed values: `success`, `failure`
  - `position` (PositionOutput, required) — Posición del nodo en el workflow.
- `type`: `override_agent`
  - `additional_knowledge_base` (list of KnowledgeBaseLocator, required) — Documentos adicionales de la base de conocimientos a los que tiene acceso el subagente. Se usarán además de los documentos del agente principal.
  - `additional_prompt` (string, required) — Objetivo específico de este subagente. Se añadirá al prompt del sistema y puede utilizarse para perfeccionar aún más el comportamiento del agente en este contexto concreto.
  - `additional_tool_ids` (list of string, required) — ID de herramientas adicionales a las que tiene acceso el subagente. Se usarán además de las herramientas del agente principal.
  - `conversation_config` (ConversationalConfigApiModelWorkflowOverrideOutput, required) — Anulaciones de configuración aplicadas mientras el subagente lleva a cabo la conversación.
  - `edge_order` (list of string, required) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `entry_behavior` (enum, required, default: auto) — Determina si este nodo debe generar una respuesta de inmediato al acceder a él o esperar la entrada del usuario. Cuando se establece en "auto", el comportamiento se decidirá según el tipo de nodo anterior: "wait_for_user" después de los nodos "say" y "start", y "generate_immediately" en los demás casos.
    - Allowed values: `generate_immediately`, `wait_for_user`, `auto`
  - `label` (string, required) — Etiqueta legible para humanos del nodo, utilizada en toda la interfaz.
  - `position` (PositionOutput, required) — Posición del nodo en el workflow.
- `type`: `phone_number`
  - `custom_sip_headers` (list of WorkflowPhoneNumberNodeModelOutputCustomSipHeadersItem, required) — Cabeceras SIP personalizadas que se incluirán al transferir la llamada. Cada cabecera puede ser un valor estático o una referencia a variable dinámica.
  - `edge_order` (list of string, required) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `position` (PositionOutput, required) — Posición del nodo en el workflow.
  - `sip_refer_play_dialtone` (boolean, required, default: true) — Cuando es True, se reproduce un tono de llamada en el tramo original de la llamada mientras se completa una transferencia SIP REFER. El tono se transmite mediante RTP al par SIP que ejecuta el REFER, así que desactiva esta opción si el sistema receptor (por ejemplo, un SBC o un centro de contacto) no debe oírlo. Cuando está desactivada, la persona que llama oye silencio hasta que se completa la transferencia. Solo para transferencias SIP REFER.
  - `transfer_destination` (WorkflowPhoneNumberNodeModelOutputTransferDestination, required)
  - `transfer_type` (enum, required, default: conference)
    - Allowed values: `blind`, `conference`, `sip_refer`
  - `post_dial_digits` (WorkflowPhoneNumberNodeModelOutputPostDialDigits, optional) — Dígitos DTMF que se enviarán tras conectar la llamada (por ejemplo, 'ww1234' para una extensión). Puede ser un valor estático o una referencia de variable dinámica. Usa 'w' para una pausa de 0,5 s. Solo es compatible con transferencias de Twilio.
  - `uui` (UuiTransferConfig, optional) — Información de usuario a usuario (RFC 7433) para adjuntar a transferencias SIP REFER. Transporta el contexto de la llamada, como identificadores de CRM o el motivo de la escalación, a través del límite de la transferencia.
- `type`: `standalone_agent`
  - `delay_ms` (integer, required, default: 0) — Retraso artificial en milisegundos aplicado antes de transferir la conversación.
  - `edge_order` (list of string, required) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `enable_transferred_agent_first_message` (boolean, required, default: false) — Indica si se debe permitir que el agente transferido envíe su primer mensaje configurado después de la transferencia.
  - `position` (PositionOutput, required) — Posición del nodo en el workflow.
  - `preserve_client_tts_overrides` (boolean, required, default: false) — Define si las sustituciones del cliente de TTS deben transferirse al agente transferido.
  - `preserve_voice_settings` (boolean, required, default: false) — Define si la voz base, el modelo de TTS y la configuración de voz deben transferirse al agente transferido.
  - `agent_id` (string, optional) — El ID del agente al que se transferirá la conversación. None indica una transferencia dentro del agente actual.
  - `branch_id` (string, optional) — ID de rama opcional para el agente de destino. None sigue el despliegue de tráfico del agente de destino o usa su rama principal cuando se establece node_id.
  - `node_id` (string, optional) — ID opcional del nodo de destino en el workflow del agente de destino. Cuando se establece, la transferencia comienza en este nodo en lugar de en el nodo de entrada predeterminado.
  - `transfer_message` (string, optional) — Mensaje opcional enviado al usuario antes de iniciar la transferencia.
- `type`: `start`
  - `edge_order` (list of string, required) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `position` (PositionOutput, required) — Posición del nodo en el workflow.
- `type`: `tool`
  - `edge_order` (list of string, required) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `position` (PositionOutput, required) — Posición del nodo en el workflow.
  - `tools` (list of WorkflowToolLocator, required) — Lista de herramientas que ejecutar en paralelo. El nodo completo se considera correcto si todas las herramientas se ejecutan correctamente.
- `type`: `say`
  - `additional_knowledge_base` (list of KnowledgeBaseLocator, required) — Documentos de la base de conocimientos disponibles para el LLM mientras este nodo genera su mensaje, además de los documentos del agente.
  - `additional_prompt` (string, required) — Se acepta para mantener la coherencia con los nodos de subagentes, pero no se utiliza. Describe el mensaje en `message.prompt` o sustituye el prompt del sistema por `conversation_config.agent.prompt.prompt`.
  - `additional_tool_ids` (list of string, required) — Se acepta para mantener la coherencia con los nodos de subagentes, pero no se utiliza. Un nodo de mensaje no puede llamar a herramientas.
  - `conversation_config` (ConversationalConfigApiModelWorkflowOverrideOutput, required) — Anulaciones de configuración que se aplican mientras este nodo habla, como la voz o, en los mensajes de prompt, el LLM y el prompt del sistema.
  - `edge_order` (list of string, required) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `label` (string, required) — Etiqueta legible para humanos del nodo, utilizada en toda la interfaz.
  - `message` (WorkflowSayNodeModelOutputMessage, required) — Mensaje que pronuncia este nodo. Usa `literal` para texto exacto o `prompt` para que el LLM genere el mensaje a partir de una descripción.
  - `position` (PositionOutput, required) — Posición del nodo en el workflow.
  - `wait_for_speech_completion` (boolean, required, default: false) — Cuando es true, el workflow solo pasa al siguiente nodo después de que el mensaje se haya pronunciado por completo.
  - `wait_for_user_response` (boolean, required, default: false) — Cuando es true, el nodo pronuncia su mensaje y después espera a que el usuario responda antes de evaluar las conexiones salientes, de modo que estas puedan ramificarse según la respuesta. Si el usuario permanece en silencio, el workflow avanza cuando se agota el tiempo de espera del turno.
- `type`: `update_state`
  - `edge_order` (list of string, required) — Los ID de las conexiones salientes en el orden en que deben evaluarse.
  - `label` (string, required) — Etiqueta legible para humanos del nodo, utilizada en toda la interfaz.
  - `position` (PositionOutput, required) — Posición del nodo en el workflow.
  - `updates` (list of WorkflowStateUpdateOutput, required) — Actualizaciones de estado que se aplican cuando el workflow llega a este nodo. Un nodo admite un máximo de 50 actualizaciones.

### ValidationErrorLocItem

### SoftTimeoutConfig

Configuración de la función de tiempo de espera flexible durante la generación de respuestas del LLM.

- `timeout_seconds` (double, optional, default: -1) — Tiempo en segundos antes de mostrar el mensaje predefinido mientras se espera la respuesta del LLM. Establécelo en -1 para desactivarlo.
- `message` (string, optional, default: Hhmmmm...yeah.) — Mensaje que se mostrará cuando se alcance el primer tiempo de espera flexible mientras se espera la respuesta del LLM. Admite variables dinámicas (por ejemplo, \{\{system\_\_time}}, \{\{custom\_variable}}).
- `additional_soft_timeout_messages` (list of string, optional) — Mensajes de relleno estáticos adicionales para los siguientes tiempos de espera flexibles en la misma generación del LLM. El primer tiempo de espera usa `message`. Si se configuran menos mensajes que `max_soft_timeouts_per_generation`, se repite el último mensaje configurado; de lo contrario, se utiliza un mensaje de relleno integrado.
- `use_llm_generated_message` (boolean, optional, default: false) — Si se activa, el mensaje de tiempo de espera flexible se generará dinámicamente en lugar de utilizar el mensaje estático.
- `randomize_fillers` (boolean, optional, default: false) — Si se activa, cambia aleatoriamente el orden de los mensajes estáticos de tiempo de espera flexible una vez al inicio de cada turno. Solo se aplica cuando use_llm_generated_message es false.
- `max_soft_timeouts_per_generation` (integer, optional, default: 1) — Máximo de mensajes de relleno mientras se espera una única respuesta del LLM. Se activa cada timeout_seconds hasta que el LLM transmita contenido o se alcance este límite.
- `llm_generated_message_prompt_override` (string, optional) — Prompt personalizado para generar el mensaje de relleno de espera flexible cuando use\_llm\_generated\_message está activado. El contexto reciente de la conversación se proporciona como un mensaje de usuario independiente. Si no se configura, se utilizará el prompt predeterminado. Admite variables dinámicas (p. ej., \{\{system\_\_time}}, \{\{custom\_variable}}).
- `disable_until_first_user_message` (boolean, optional, default: false) — Cuando es true, se suprimen las frases de relleno por tiempo de espera flexible hasta que la conversación tenga al menos un mensaje real del usuario. Evita frases de relleno durante el turno inicial del agente (por ejemplo, generación inmediata en un workflow o llamadas a herramientas antes de que hable el usuario).

### SupportedVoice

- `label` (string, required)
- `voice_id` (string, required)
- `description` (string, optional)
- `language` (string, optional)
- `model_family` (enum, optional)
  - Allowed values: `turbo`, `flash`, `multilingual`, `v3_conversational`, `v4`, `v4_turbo`
- `optimize_streaming_latency` (integer, optional)
- `stability` (double, optional)
- `speed` (double, optional)
- `similarity_boost` (double, optional)

### SuggestedAudioTag

- `tag` (string, required) — Etiqueta de audio que usar (para un rendimiento óptimo, 1-2 palabras; p. ej., «happy», «excited»)
- `description` (string, optional) — Descripción opcional de cuándo usar esta etiqueta

### PydanticPronunciationDictionaryVersionLocator

Un localizador para que otros documentos puedan hacer referencia a un diccionario específico y a su versión. Esta es una versión de pydantic de PronunciationDictionaryVersionLocatorDBModel. Es necesario para garantizar la compatibilidad con el resto de modelos de datos del agente.

- `pronunciation_dictionary_id` (string, required) — El ID del diccionario de pronunciación
- `version_id` (string, optional) — El ID de la versión del diccionario de pronunciación

### EffectsSpecOutput

Efectos de audio aplicados a la voz generada: un ajuste preestablecido de filtro, distancia percibida, un entorno de reverberación, una capa de ruido de fondo y panoramización estéreo. Deja todos los campos con sus valores predeterminados para obtener audio sin procesar.

- `distance` (double, required, default: 0) — A qué distancia del micrófono suena el hablante, de 0 (cerca, sin cambios) a 1 (lejos). Los valores más altos atenúan las frecuencias graves y agudas y, cuando se configura un entorno, desplazan el equilibrio de la voz sin efectos hacia la reverberación.
- `send_level` (double, required, default: 1) — Qué cantidad de voz se envía a la reverberación, de 0 (ninguna) a 1 (toda). Solo se aplica cuando se configura `environment_id`; 0 desactiva la reverberación.
- `pan` (double, required, default: 0) — Posición estéreo de la voz, de -1 (completamente a la izquierda), pasando por 0 (centro), hasta 1 (completamente a la derecha). Solo se aplica panoramización a la voz; la reverberación y el ruido de fondo permanecen centrados.
- `filter_preset_id` (string, optional) — ID de un ajuste preestablecido de filtro que modifica el timbre de la voz, como `phone` u `old_radio`. Consulta los ID válidos con `GET /v1/audio-effects/catalog`.
- `environment_id` (string, optional) — ID de un entorno de reverberación que sitúa la voz en un espacio, como `small_room` o `hall`. Consulta los ID válidos con `GET /v1/audio-effects/catalog`. La reverberación se procesa en estéreo y añade una cola de hasta varios segundos después de que termine la voz.
- `background_noise_id` (string, optional) — ID de una capa de ruido de fondo reproducida en bucle bajo la voz, como `cafe` o `keyboard`. Consulta los ID válidos con `GET /v1/audio-effects/catalog`.

### FileInputConfig

- `enabled` (boolean, optional, default: true) — Cuando está habilitado, usuarios pueden adjuntar imágenes, PDF o archivos de texto en el chat cuando el LLM admite entrada multimodal.
- `max_files_in_memory` (integer, optional, default: 10) — Número de archivos más recientes que se conservan en memoria durante una conversación. Los archivos más antiguos se resumen y se libera su memoria.
- `max_files_per_conversation` (integer, optional, default: 10) — Total de archivos que un usuario puede subir en una conversación. Las subidas se facturan por archivo. Usa -1 para no establecer límite o un valor >= max_files_in_memory.

### DtmfInputConfig

Configuración para recopilar entradas DTMF (teclado) durante llamadas telefónicas.

- `dtmf_input_timeout` (double, optional, default: 2) — Tiempo de espera, en segundos, para recibir dígitos DTMF adicionales
- `hash_terminator` (boolean, optional, default: true) — Si es true, al pulsar # se completa inmediatamente la entrada DTMF.
- `redact_input` (boolean, optional, default: false) — Si es true, sustituye las entradas DTMF (teclado) de quien llama por un marcador de ocultación en la transcripción, el registro de la conversación y el análisis. No afecta a los dígitos que el agente repite o pasa a una herramienta.

### BackgroundSoundConfig

- `source_type` ("preset", optional) — El tipo de fuente de sonido de fondo.
- `source_id` (enum, optional) — Identificador de la fuente de sonido.
  - Allowed values: `office2`, `office1`, `restaurant`, `city`, `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `volume` (double, optional, default: 0.15) — Nivel de volumen del sonido de fondo (de 0,01 a 1,0).
- `crossfade_loop` (boolean, optional, default: true) — Aplica un fundido cruzado en el límite del bucle para evitar chasquidos audibles al repetir el sonido.

### ConversationConfigClientOverrideOutput

- `asr` (AsrConversationalConfigOverride, optional) — Configuración de la transcripción conversacional
- `turn` (TurnConfigOverride, optional) — Configuración de la detección de turnos
- `tts` (TtsConversationalConfigOverride, optional) — Configuración de Texto a Voz conversacional
- `conversation` (ConversationConfigOverride, optional) — Configuración de eventos conversacionales
- `agent` (AgentConfigOverrideOutput, optional) — Configuración específica del agente

### LanguagePresetTranslation

- `source_hash` (string, required)
- `text` (string, required)

### BehaviorOverride

- `verbosity` (enum, optional) — Anulación de verbosidad. Se aplica el valor predeterminado subyacente cuando no se establece.
  - Allowed values: `auto`, `concise`, `thorough`
- `output_format` (enum, optional) — Anulación del formato de salida. Si no se establece, se aplica el valor predeterminado subyacente.
  - 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) — Anulación del presupuesto de interacción. Si no se establece, se aplica el valor predeterminado subyacente.
  - Allowed values: `realtime`, `5_minutes`, `10_minutes`, `1_hour`

### PromptAgentApiModelOutput

- `prompt` (string, optional, default: ) — El prompt del agente
- `llm` (enum, optional) — El LLM que se consultará con el prompt y el historial de chat. Si utilizas residencia de datos, el LLM debe ser compatible con el entorno de residencia de datos
  - 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) — Esfuerzo de razonamiento del modelo. Solo disponible para algunos modelos.
  - Allowed values: `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max`
- `thinking_budget` (integer, optional) — Número máximo de tokens utilizados para el razonamiento. Usa 0 para desactivarlo si el modelo lo admite.
- `enable_reasoning_summary` (boolean, optional, default: false) — Activa los resúmenes de razonamiento del modelo. Cuando está desactivado, no solicitamos resúmenes al proveedor si es posible, para lograr un TTFB más rápido. No es compatible con ZRM.
- `temperature` (double, optional) — La temperatura para el LLM. El valor predeterminado es 0. Establécela en null para omitir por completo el parámetro de la solicitud al LLM, lo que resulta útil para LLM personalizados que rechazan el campo de temperatura.
- `max_tokens` (integer, optional, default: -1) — Si es mayor que 0, número máximo de tokens que puede predecir el LLM
- `tool_ids` (list of string, optional) — Una lista de ID de herramientas utilizadas por el agente.
- `tool_ids_strict` (boolean, optional, default: false) — Solo se aplica como una anulación de conversación y se permite siempre que se pueda anular tool_ids. Cuando es true, el valor de tool_ids anulado es la lista completa de herramientas permitidas en la conversación, incluidas las herramientas de los nodos de workflow. Se ignora cuando se configura en el agente.
- `built_in_tools` (BuiltInToolsOutput, optional) — Herramientas del sistema integradas que utilizará el agente
- `enable_parallel_tool_calls` (boolean, optional, default: true) — Activa las llamadas paralelas a herramientas. Cuando está activado, el agente puede ejecutar varias herramientas en paralelo en un único turno. No es compatible con todos los modelos.
- `mcp_server_ids` (list of string, optional) — Una lista de ID de servidores MCP que utilizará el agente
- `native_mcp_server_ids` (list of string, optional) — Una lista de ID de servidores MCP nativos que utilizará el agente
- `knowledge_base` (list of KnowledgeBaseLocator, optional) — Una lista de bases de conocimiento que utilizará el agente
- `custom_llm` (CustomLlm, optional) — Definición de un LLM personalizado si el campo LLM está establecido en 'CUSTOM_LLM'
- `ignore_default_personality` (boolean, optional) — Si se eliminan las líneas de personalidad predeterminadas del prompt del sistema
- `rag` (RagConfigOutput, optional) — Configuración de RAG
- `timezone` (string, optional) — Zona horaria para mostrar la hora actual en el prompt del sistema. Si se establece, la hora actual se incluirá en el prompt del sistema usando esta zona horaria. Debe ser un nombre de zona horaria válido (p. ej., 'America/New_York', 'Europe/London', 'UTC'). Se recomienda para obtener respuestas precisas que tengan en cuenta la hora; sin ella, el agente no conoce la fecha ni la hora actuales a menos que se las proporciones mediante variables dinámicas o herramientas, lo que puede provocar referencias temporales incorrectas o alucinadas.
- `backup_llm_config` (PromptAgentApiModelOutputBackupLlmConfig, optional) — Configuración de la cascada de LLM de respaldo. Se puede desactivar, usar los valores predeterminados del sistema o especificar un orden personalizado.
- `cascade_timeout_seconds` (double, optional, default: 4) — Tiempo en segundos antes de recurrir al LLM de respaldo. Debe estar entre 2 y 15 segundos.
- `tools` (list of PromptAgentApiModelOutputToolsItem, optional, deprecated) — Una lista de herramientas que el agente puede utilizar durante la conversación; usa tool_ids en su lugar

### PromptEvaluationCriteria

Una evaluación que usa la transcripción y un prompt para obtener una respuesta de sí o no

- `id` (string, required) — El identificador único de los criterios de evaluación
- `name` (string, required)
- `conversation_goal_prompt` (string, required) — El prompt que debe usar el agente para evaluar la conversación
- `type` ("prompt", optional) — El tipo de criterios de evaluación
- `use_knowledge_base` (boolean, optional, default: false) — Indica si se debe usar la base de conocimientos del agente al evaluar el prompt.
- `scope` (enum, optional, default: conversation) — El alcance del contexto de la transcripción utilizado al evaluar este criterio. «conversation» usa la transcripción completa; «agent» usa solo la parte en la que el agente definidor estaba activo.
  - Allowed values: `conversation`, `agent`
- `llm` (enum, optional) — Modelo LLM que utilizar para este criterio de evaluación. Si no se establece, utiliza el valor predeterminado analysis_llm del agente.
  - 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) — Cómo se puntúa este criterio. 'binary' se resuelve como éxito/fallo/desconocido. 'numeric_uniform' devuelve un número en la escala [0, max_score], que se normaliza en el porcentaje agregado de éxito de la conversación.
  - Allowed values: `binary`, `numeric_uniform`
- `max_score` (integer, optional, default: 100) — Valor máximo de la escala de puntuación numérica (el mínimo siempre es 0). Solo se utiliza cuando scoring_mode es 'numeric_uniform'.
- `score_instructions` (string, optional) — Instrucciones opcionales de formato libre que describen cómo asignar valores en la escala numérica. Solo se utilizan cuando scoring_mode es 'numeric_uniform'.

### WidgetConfigAvatar

El avatar del widget

- `type`: `orb`
  - `color_1` (string, optional, default: #2792dc) — El primer color del avatar
  - `color_2` (string, optional, default: #9ce6e6) — El segundo color del avatar
- `type`: `url`
  - `custom_url` (string, optional, default: ) — La URL personalizada del avatar
- `type`: `image`
  - `url` (string, optional, default: ) — La URL del avatar

### WidgetEndFeedbackConfig

- `type` ("rating", optional) — El tipo de comentarios que se recopilarán al final de la conversación

### AllowlistItem

- `hostname` (string, required) — El nombre de host del origen permitido

### WidgetTextContents

- `main_label` (string, optional) — Llamada a la acción mostrada en las variantes compacta y completa.
- `start_call` (string, optional) — Texto y etiqueta ARIA del botón para iniciar la llamada.
- `start_chat` (string, optional) — Texto y etiqueta ARIA del botón para iniciar el chat (solo texto).
- `new_call` (string, optional) — Texto y etiqueta ARIA del botón para nueva llamada. Se muestra cuando la persona que llama ya ha terminado al menos una llamada para iniciar la siguiente.
- `end_call` (string, optional) — Texto y etiqueta ARIA del botón para finalizar la llamada.
- `mute_microphone` (string, optional) — Etiqueta ARIA del botón para silenciar el micrófono.
- `change_language` (string, optional) — Etiqueta ARIA del menú desplegable para cambiar el idioma.
- `collapse` (string, optional) — Etiqueta ARIA del botón para contraer.
- `expand` (string, optional) — Etiqueta ARIA del botón para expandir.
- `copied` (string, optional) — Texto que se muestra cuando el usuario copia un valor con el botón de copiar.
- `accept_terms` (string, optional) — Texto y etiqueta ARIA del botón para aceptar los términos.
- `dismiss_terms` (string, optional) — Texto y etiqueta ARIA del botón para cancelar los términos.
- `listening_status` (string, optional) — Estado que se muestra cuando el agente está escuchando.
- `speaking_status` (string, optional) — Estado que se muestra cuando el agente está hablando.
- `connecting_status` (string, optional) — Estado que se muestra cuando el agente se está conectando.
- `chatting_status` (string, optional) — Estado que se muestra cuando el agente está chateando (solo texto).
- `queue_waiting_status` (string, optional) — Estado que se muestra mientras se espera en la cola a que haya un agente disponible.
- `queue_waiting_status_short` (string, optional) — Estado breve que se muestra mientras se espera a que haya un agente disponible.
- `input_label` (string, optional) — Etiqueta ARIA del campo de entrada de mensajes de texto.
- `input_placeholder` (string, optional) — Texto de marcador de posición para la entrada de mensajes de texto.
- `input_placeholder_text_only` (string, optional) — Texto de marcador de posición para la entrada de mensajes de texto (solo texto)
- `input_placeholder_new_conversation` (string, optional) — Texto de marcador de posición para la entrada de mensajes de texto al iniciar una conversación nueva (solo texto)
- `user_ended_conversation` (string, optional) — Mensaje informativo que se muestra cuando el usuario finaliza la conversación.
- `agent_ended_conversation` (string, optional) — Mensaje informativo que se muestra cuando el agente finaliza la conversación.
- `conversation_id` (string, optional) — Etiqueta de texto utilizada junto al ID de la conversación.
- `error_occurred` (string, optional) — Etiqueta de texto utilizada cuando se produce un error.
- `queue_timed_out` (string, optional) — Mensaje de error que se muestra cuando se agota el tiempo de espera en la cola.
- `copy_id` (string, optional) — Texto y etiqueta ARIA utilizados para el botón de copiar ID.
- `initiate_feedback` (string, optional) — Texto que se muestra para pedir comentarios al usuario.
- `request_follow_up_feedback` (string, optional) — Texto que se muestra para solicitar detalles adicionales de los comentarios.
- `thanks_for_feedback` (string, optional) — Texto que se muestra para agradecer al usuario sus comentarios.
- `thanks_for_feedback_details` (string, optional) — Texto adicional que se muestra para explicar el valor de los comentarios de usuarios.
- `follow_up_feedback_placeholder` (string, optional) — Texto de marcador de posición para el campo de introducción de comentarios de seguimiento.
- `submit` (string, optional) — Texto y etiqueta ARIA del botón para enviar.
- `go_back` (string, optional) — Texto y etiqueta ARIA del botón para volver.
- `send_message` (string, optional) — Texto y etiqueta ARIA del botón para enviar un mensaje.
- `text_mode` (string, optional) — Texto y etiqueta ARIA del botón para cambiar al modo de texto.
- `voice_mode` (string, optional) — Texto y etiqueta ARIA del botón para cambiar al modo de voz.
- `switched_to_text_mode` (string, optional) — Notificación emergente que se muestra al cambiar al modo de texto.
- `switched_to_voice_mode` (string, optional) — Notificación emergente que se muestra al cambiar al modo de voz.
- `copy` (string, optional) — Texto y etiqueta ARIA del botón para copiar.
- `download` (string, optional) — Texto y etiqueta ARIA del botón para descargar.
- `wrap` (string, optional) — Texto y etiqueta ARIA del botón para activar o desactivar el ajuste de línea.
- `agent_working` (string, optional) — Texto de estado que se muestra cuando el agente está procesando una llamada a una herramienta.
- `agent_done` (string, optional) — Texto de estado que se muestra cuando el agente termina de procesar una llamada a una herramienta.
- `agent_error` (string, optional) — Texto de estado que se muestra cuando el agente encuentra un error durante una llamada a una herramienta.
- `attach_file` (string, optional) — Texto y etiqueta ARIA del botón para adjuntar un archivo.
- `remove_file` (string, optional) — Etiqueta ARIA del botón para eliminar el archivo.
- `file_upload_error` (string, optional) — Mensaje de error que se muestra cuando no se puede subir un archivo.
- `file_type_unsupported` (string, optional) — Mensaje de error que se muestra cuando se selecciona un tipo de archivo no compatible. Va seguido de la lista de tipos aceptados.
- `file_too_large` (string, optional) — Mensaje de error que se muestra cuando un archivo supera el límite máximo de tamaño.
- `file_limit_reached` (string, optional) — Mensaje de error que se muestra cuando se alcanza el número máximo de archivos para una conversación.
- `typing_indicator` (string, optional) — Texto de estado que se muestra mientras el agente está escribiendo.
- `rich_content_unavailable` (string, optional) — Mensaje alternativo que se muestra cuando no se puede renderizar contenido enriquecido.

### WidgetStyles

- `base` (string, optional) — El color de fondo base.
- `base_hover` (string, optional) — El color del fondo base al pasar el cursor.
- `base_active` (string, optional) — El color del fondo base cuando está activo (al hacer clic).
- `base_border` (string, optional) — El color del borde sobre el fondo base.
- `base_subtle` (string, optional) — El color del texto secundario sobre el fondo base.
- `base_primary` (string, optional) — El color del texto principal sobre el fondo base.
- `base_error` (string, optional) — El color del texto de error sobre el fondo base.
- `accent` (string, optional) — El color de fondo de acento.
- `accent_hover` (string, optional) — El color del fondo de acento al pasar el cursor.
- `accent_active` (string, optional) — El color del fondo de acento cuando está activo (al hacer clic).
- `accent_border` (string, optional) — El color del borde sobre el fondo de acento.
- `accent_subtle` (string, optional) — El color del texto secundario sobre el fondo de acento.
- `accent_primary` (string, optional) — El color del texto principal sobre el fondo de acento.
- `overlay_padding` (double, optional) — El relleno alrededor de los bordes de la ventana gráfica.
- `button_radius` (double, optional) — El radio de los botones.
- `input_radius` (double, optional) — El radio de los campos de entrada.
- `bubble_radius` (double, optional) — El radio de las burbujas de chat.
- `sheet_radius` (double, optional) — El radio predeterminado de las hojas.
- `compact_sheet_radius` (double, optional) — El radio del panel en modo compacto.
- `dropdown_sheet_radius` (double, optional) — El radio del panel desplegable.

### WidgetLanguagePreset

- `text_contents` (WidgetTextContents, optional) — El contenido de texto del idioma seleccionado.
- `text_contents_translation` (WidgetTextContentsTranslation, optional) — La caché de traducción de los contenidos de texto
- `terms_text` (string, optional) — El texto que se mostrará para los términos y condiciones en este idioma
- `terms_html` (string, optional) — El HTML que se mostrará para los términos y condiciones en este idioma
- `terms_key` (string, optional) — La clave que se debe mostrar para los términos y condiciones en este idioma
- `terms_translation` (WidgetTermsTranslation, optional) — La caché de traducción de los términos

### AllowedValues

- `dynamic_variable` (string, required) — Nombre de una variable dinámica que debe resolverse en una matriz JSON de valores permitidos, por ejemplo, ["ws_alpha", "ws_beta"]. Las variables del sistema solo funcionan si se resuelven en una lista.

### AnalysisPropertyConstantValue

Un valor constante que se utilizará para esta propiedad. Es mutuamente excluyente con description, dynamic_variable, is_system_provided e is_omitted.

### AgentAnalysisItemsInputEvaluationCriteriaItem

- `source`: `system`
  - `analysis_item_id` (enum, required) — ID de la evaluación integrada del sistema a la que se hace referencia.
    - Allowed values: `__system_eval_criteria_sentiment`, `__system_eval_criteria_frustration`
  - `scope` (enum, optional, default: conversation) — Contexto de la transcripción ('conversation' o 'agent') utilizado al ejecutar este elemento.
    - Allowed values: `conversation`, `agent`
  - `weight` (double, optional) — Peso relativo opcional para la puntuación agregada.
- `source`: `user`
  - `analysis_item_id` (string, required) — ID del elemento de evaluación de usuario al que se hace referencia.
  - `additional_version_ids` (list of string, optional) — Versiones adicionales del elemento que también se ejecutarán para compararlas (A/B). Se ejecutan y almacenan, pero se excluyen de la puntuación; el version_id principal es el que se puntúa.
  - `scope` (enum, optional, default: conversation) — Contexto de la transcripción ('conversation' o 'agent') utilizado al ejecutar este elemento.
    - Allowed values: `conversation`, `agent`
  - `version_id` (string, optional) — Versión del elemento principal cuyo resultado sirve para la puntuación. None sigue la última versión publicada del elemento.
  - `weight` (double, optional) — Peso relativo opcional para la puntuación agregada.

### AgentAnalysisItemsInputDataCollectionItem

- `source`: `system`
  - `analysis_item_id` ("__system_data_collection_topic", required) — ID del elemento de recopilación de datos integrado del sistema al que se hace referencia.
  - `scope` (enum, optional, default: conversation) — Contexto de la transcripción ('conversation' o 'agent') utilizado al ejecutar este elemento.
    - Allowed values: `conversation`, `agent`
- `source`: `user`
  - `analysis_item_id` (string, required) — ID del elemento de recopilación de datos de usuario al que se hace referencia.
  - `scope` (enum, optional, default: conversation) — Contexto de la transcripción ('conversation' o 'agent') utilizado al ejecutar este elemento.
    - Allowed values: `conversation`, `agent`
  - `version_id` (string, optional) — Versión fijada del elemento. None sigue la última versión publicada del elemento.

### ConversationConfigClientOverrideConfigInput

- `asr` (AsrConversationalConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.
- `turn` (TurnConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.
- `tts` (TtsConversationalConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.
- `conversation` (ConversationConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.
- `agent` (AgentConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.

### ConversationInitiationClientDataWebhook

- `url` (string, required) — La URL a la que se enviará el webhook
- `request_headers` (map from string to ConversationInitiationClientDataWebhookRequestHeadersValue, required) — Las cabeceras que se enviarán con la solicitud de webhook

### ConvAiWebhooks

- `post_call_webhook_id` (string, optional)
- `events` (list of enum, optional) — Lista de tipos de eventos que enviar mediante webhook. Opciones: transcript, audio, call_initiation_failure, answering_machine_detection, unredacted_transcript, unredacted_audio.
  - Allowed values: `transcript`, `audio`, `call_initiation_failure`, `answering_machine_detection`, `unredacted_transcript`, `unredacted_audio`
- `transcript_format` (enum, optional, default: json) — Formato de los webhooks de transcripción.
  - Allowed values: `json`, `opentelemetry`
- `exclude_transcript` (boolean, optional, default: false) — Cuando es true, los webhooks de transcripción posterior a la llamada en JSON omiten la transcripción turno a turno. Se siguen enviando el análisis, los metadatos y otros campos de la conversación. Se ignora para el formato de transcripción OpenTelemetry.
- `send_audio` (boolean, optional, deprecated) — OBSOLETO: usa el campo 'events' en su lugar. Indica si se deben enviar datos de audio con webhooks posteriores a la llamada para conversaciones de ConvAI.

### AttachedTestModel

- `test_id` (string, required)
- `workflow_node_id` (string, optional)

### FocusGuardrail

- `is_enabled` (boolean, optional, default: false)

### PromptInjectionGuardrail

- `is_enabled` (boolean, optional, default: false)

### ContentGuardrailInput

- `execution_mode` (enum, optional, default: streaming)
  - Allowed values: `streaming`, `blocking`
- `config` (ContentConfig, optional)
- `trigger_action` (ContentGuardrailInputTriggerAction, optional)

### CustomGuardrailInput

Contenedor de medidas de protección personalizadas que sigue el patrón ModerationGuardrail

- `config` (CustomGuardrailsConfigInput, optional) — Contenedor de configuración para la lista de medidas de protección personalizadas

### AgentHoldAudioConfig

Audio de espera personalizado que se reproduce en bucle para quienes llaman mientras esperan en la cola del agente. Se configura al subir un archivo mediante la ruta de API de audio de espera del agente. Los valores enviados en las solicitudes de creación o actualización de agentes se ignoran.

- `audio_path` (string, required) — Ruta de almacenamiento del clip subido.
- `audio_url` (string, required) — URL pública de la CDN del clip subido
- `original_filename` (string, required) — Nombre de archivo del clip subido, tal como lo ha proporcionado el usuario
- `duration_secs` (double, required) — Duración del clip subido en segundos
- `size_bytes` (integer, required) — Tamaño del clip cargado en bytes

### ConversationHistoryRedactionConfig

- `enabled` (boolean, optional, default: false) — Indica si la ocultación de datos del historial de conversación está activada.
- `entities` (list of enum, optional) — Las entidades que se deben ocultar de la transcripción, el audio y el análisis de la conversación. Usa tipos de nivel superior como 'name' o 'email_address', o notación de punto para subtipos específicos como 'name.full_name'.
  - Allowed values: `name`, `name.name_given`, `name.name_family`, `name.name_other`, `email_address`, `contact_number`, `dob`, `age`, `religious_belief`, `political_opinion`, `sexual_orientation`, `ethnicity_race`, `marital_status`, `occupation`, `physical_attribute`, `language`, `username`, `password`, `url`, `organization`, `financial_id`, `financial_id.payment_card`, `financial_id.payment_card.payment_card_number`, `financial_id.payment_card.payment_card_expiration_date`, `financial_id.payment_card.payment_card_cvv`, `financial_id.bank_account`, `financial_id.bank_account.bank_account_number`, `financial_id.bank_account.bank_routing_number`, `financial_id.bank_account.swift_bic_code`, `financial_id.financial_id_other`, `location`, `location.location_address`, `location.location_city`, `location.location_postal_code`, `location.location_coordinate`, `location.location_state`, `location.location_country`, `location.location_other`, `date`, `date_interval`, `unique_id`, `unique_id.government_issued_id`, `unique_id.account_number`, `unique_id.vehicle_id`, `unique_id.healthcare_number`, `unique_id.healthcare_number.medical_record_number`, `unique_id.healthcare_number.health_plan_beneficiary_number`, `unique_id.device_id`, `unique_id.unique_id_other`, `medical`, `medical.medical_condition`, `medical.medication`, `medical.medical_procedure`, `medical.medical_measurement`, `medical.medical_other`
- `excluded_data_collection_ids` (list of string, optional) — ID de elementos de recopilación de datos cuyos valores extraídos no se han ocultado. Sus justificaciones siguen ocultas.

### AlertingMonitorConfig

- `enabled` (boolean, optional) — Indica si este monitor está activado y puede enviar notificaciones
- `threshold` (double, optional) — Umbral de tasa de errores a partir del cual este monitor puede enviar notificaciones.
- `relative_increase_threshold` (double, optional) — Aumento relativo respecto a la referencia anterior a partir del cual este monitor puede enviar una notificación (0.2 = 20 % por encima de la referencia, 0 = cualquier fallo). Para conversation_volume_drop, es la proporción del volumen habitual que debe faltar, entre 0.1 y 0.9 (0.5 = la mitad).
- `min_failure_count` (integer, optional) — Número mínimo de fallos en la ventana antes de que se pueda activar este monitor.
- `min_history_bucket_count` (integer, optional) — Número mínimo de intervalos finales con tráfico antes de que se pueda activar la detección de picos.
- `min_sample_count` (integer, optional) — Número mínimo de muestras en la ventana antes de que se pueda activar este monitor.
- `suspect_trigger_threshold` (integer, optional) — Cuántos bloques sospechosos dentro de la ventana retrospectiva se requieren para convertir una sospecha en alerta.
- `auto_resolve_after_inactive_minutes` (integer, optional) — Cuántos minutos puede permanecer inactiva una alerta antes de resolverse automáticamente.

### AlertingSettingsNotifiersItem

- `type`: `webhook`
  - `webhook_id` (string, required) — ID del webhook del espacio de trabajo al que se enviarán las notificaciones del ciclo de vida de las alertas.
- `type`: `integration`
  - `connection_id` (string, required) — ID de la conexión de integración del espacio de trabajo a la que se enviarán las notificaciones del ciclo de vida de las alertas. La integración de la conexión debe tener capacidad de monitorización y coincidir con ``integration_type``.
  - `channel_id` (string, optional) — ID del canal de Slack en el que se publicarán las notificaciones de alertas, p. ej., ``C0123456789``. Obligatorio cuando ``integration_type`` es ``slack``. La aplicación de Slack debe ser miembro del canal y tener el ámbito ``chat:write`` o ``chat:write.public`` para los canales públicos a los que no se haya unido.
  - `integration_type` (enum, optional) — Integración a la que se realizará la entrega. El servidor interpreta un valor omitido como ``pagerduty``.
    - Allowed values: `pagerduty`, `slack`

### WorkflowEdgeModelInputForwardCondition

- `type`: `expression`
  - `expression` (AstNodeInput, required) — Expresión que se debe evaluar.
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `llm`
  - `condition` (string, required) — Condición que evaluar
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `result`
  - `successful` (boolean, required) — Indica si todas las herramientas del nodo de herramientas ejecutado anteriormente se ejecutaron correctamente.
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `unconditional`
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.

### WorkflowEdgeModelInputBackwardCondition

- `type`: `expression`
  - `expression` (AstNodeInput, required) — Expresión que se debe evaluar.
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `llm`
  - `condition` (string, required) — Condición que evaluar
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `result`
  - `successful` (boolean, required) — Indica si todas las herramientas del nodo de herramientas ejecutado anteriormente se ejecutaron correctamente.
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `unconditional`
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.

### PositionInput

- `x` (double, optional, default: 0)
- `y` (double, optional, default: 0)

### KnowledgeBaseLocator

- `type` (enum, required) — El tipo de base de conocimiento
  - Allowed values: `file`, `url`, `text`, `folder`
- `name` (string, required) — El nombre de la base de conocimientos
- `id` (string, required) — El ID de la base de conocimientos
- `usage_mode` (enum, optional, default: auto) — El modo de uso de la base de conocimiento
  - Allowed values: `prompt`, `auto`

### ConversationalConfigApiModelWorkflowOverrideInput

- `asr` (AsrConversationalConfigWorkflowOverride, optional) — Configuración de la transcripción conversacional
- `turn` (TurnConfigWorkflowOverride, optional) — Configuración de la detección de turnos
- `tts` (TtsConversationalConfigWorkflowOverrideInput, optional) — Configuración de Texto a Voz conversacional
- `conversation` (ConversationConfigWorkflowOverrideInput, optional) — Configuración de eventos conversacionales
- `language_presets` (map from string to LanguagePresetInput, optional) — Preajustes de idioma para conversaciones
- `vad` (VadConfigWorkflowOverride, optional) — Configuración de la detección de actividad de voz
- `agent` (AgentConfigApiModelWorkflowOverrideInput, optional) — Configuración específica del agente

### WorkflowPhoneNumberNodeModelInputTransferDestination

- `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)

### WorkflowPhoneNumberNodeModelInputCustomSipHeadersItem

- `type`: `dynamic`
  - `key` (string, required) — El nombre de la cabecera SIP (p. ej., «X-Customer-ID»)
  - `value` (string, required) — El nombre de la variable dinámica que se va a resolver
- `type`: `static`
  - `key` (string, required) — El nombre de la cabecera SIP (p. ej., «X-Customer-ID»)
  - `value` (string, required) — El valor de la cabecera

### WorkflowPhoneNumberNodeModelInputPostDialDigits

- `type`: `dynamic`
  - `value` (string, required) — El nombre de la variable dinámica que se va a resolver
- `type`: `static`
  - `value` (string, required) — Dígitos DTMF que se enviarán tras conectar la llamada (por ejemplo, 'ww1234' para una extensión)

### UuiTransferConfig

Contenedor de información de usuario a usuario para transferencias SIP REFER (RFC 7433). Las cargas útiles salientes se codifican en hexadecimal (la única codificación que define RFC 7433). El campo discriminador de protocolo permite expresar mediante configuración los formatos específicos de cada plataforma (Talkdesk, Genesys, ...) en lugar de distribuir indicadores de transferencia. Se pueden añadir otros campos (codificación ASCII, nombre de cabecera, parámetros de propósito/contenido) aquí sin modificar el modelo de transferencia.

- `data` (string, required) — Carga útil UUI que se envía en transferencias SIP REFER. Admite variables dinámicas en línea y se codifica en hexadecimal en el momento de la transferencia.
- `protocol_discriminator` (string, optional) — Discriminador de protocolo opcional de un octeto (dos dígitos hexadecimales, por ejemplo, '00'). Es necesario para plataformas como Genesys Cloud, que de otro modo eliminan el primer octeto de la carga útil. Déjalo sin establecer para plataformas como Talkdesk que esperan una carga útil hexadecimal sin prefijo.
- `protocol_discriminator_mode` (enum, optional, default: prefix) — Cómo adjuntar protocol\_discriminator. 'prefix' antepone el octeto a la carga útil hexadecimal (User-to-User=XX\<hex>;encoding=hex). 'pd\_parameter' lo envía como un parámetro independiente (User-to-User=\<hex>;pd=XX;encoding=hex). Se ignora si protocol\_discriminator no está establecido.
  - Allowed values: `prefix`, `pd_parameter`

### WorkflowToolLocator

- `tool_id` (string, required)
- `schema_overrides` (map from string to WorkflowToolLocatorSchemaOverridesValue, optional) — Anulaciones de parámetros por nodo aplicadas sobre la configuración de la propia herramienta. Las claves son rutas de parámetros separadas por puntos (las herramientas webhook añaden a las claves los prefijos path_params./query_params./request_body.). Tienen prioridad sobre cualquier anulación ya definida en la propia herramienta.

### WorkflowSayNodeModelInputMessage

Mensaje que pronuncia este nodo. Usa `literal` para texto exacto o `prompt` para que el LLM genere el mensaje a partir de una descripción.

- `type`: `literal`
  - `text` (string, required) — Texto exacto que pronuncia el agente. Admite marcadores de posición de variables dinámicas `{{variable_name}}`.
  - `text_translations` (map from string to TranslatedString, optional) — Traducciones de `text`, indexadas por código de idioma. Cuando el idioma de la conversación tiene una entrada, se pronuncia su valor en lugar de `text`.
- `type`: `prompt`
  - `prompt` (string, required) — Descripción del mensaje que debe generar el LLM. Se añade al prompt del sistema del agente mientras este nodo está activo.

### WorkflowStateUpdateInput

- `variable_name` (string, required) — Nombre de la variable dinámica que se va a asignar.
- `expression` (AstNodeInput, required) — Expresión cuyo resultado se asigna a la variable. Puede combinar constantes, otras variables dinámicas, valores extraídos por el LLM y operadores.
- `type` ("dynamic_variable", optional)
- `required` (boolean, optional, default: true) — Cuando es false, el LLM puede omitir los valores de los que depende esta actualización. En ese caso, la actualización se omite y la variable conserva su valor actual.

### AgentAnalysisItemsOutputEvaluationCriteriaItem

- `source`: `system`
  - `analysis_item_id` (enum, required) — ID de la evaluación integrada del sistema a la que se hace referencia.
    - Allowed values: `__system_eval_criteria_sentiment`, `__system_eval_criteria_frustration`
  - `scope` (enum, optional, default: conversation) — Contexto de la transcripción ('conversation' o 'agent') utilizado al ejecutar este elemento.
    - Allowed values: `conversation`, `agent`
  - `weight` (double, optional) — Peso relativo opcional para la puntuación agregada.
- `source`: `user`
  - `analysis_item_id` (string, required) — ID del elemento de evaluación de usuario al que se hace referencia.
  - `additional_version_ids` (list of string, optional) — Versiones adicionales del elemento que también se ejecutarán para compararlas (A/B). Se ejecutan y almacenan, pero se excluyen de la puntuación; el version_id principal es el que se puntúa.
  - `scope` (enum, optional, default: conversation) — Contexto de la transcripción ('conversation' o 'agent') utilizado al ejecutar este elemento.
    - Allowed values: `conversation`, `agent`
  - `version_id` (string, optional) — Versión del elemento principal cuyo resultado sirve para la puntuación. None sigue la última versión publicada del elemento.
  - `weight` (double, optional) — Peso relativo opcional para la puntuación agregada.

### AgentAnalysisItemsOutputDataCollectionItem

- `source`: `system`
  - `analysis_item_id` ("__system_data_collection_topic", required) — ID del elemento de recopilación de datos integrado del sistema al que se hace referencia.
  - `scope` (enum, optional, default: conversation) — Contexto de la transcripción ('conversation' o 'agent') utilizado al ejecutar este elemento.
    - Allowed values: `conversation`, `agent`
- `source`: `user`
  - `analysis_item_id` (string, required) — ID del elemento de recopilación de datos de usuario al que se hace referencia.
  - `scope` (enum, optional, default: conversation) — Contexto de la transcripción ('conversation' o 'agent') utilizado al ejecutar este elemento.
    - Allowed values: `conversation`, `agent`
  - `version_id` (string, optional) — Versión fijada del elemento. None sigue la última versión publicada del elemento.

### ConversationConfigClientOverrideConfigOutput

- `asr` (AsrConversationalConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.
- `turn` (TurnConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.
- `tts` (TtsConversationalConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.
- `conversation` (ConversationConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.
- `agent` (AgentConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.

### ContentGuardrailOutput

- `execution_mode` (enum, optional, default: streaming)
  - Allowed values: `streaming`, `blocking`
- `config` (ContentConfig, optional)
- `trigger_action` (ContentGuardrailOutputTriggerAction, optional)

### CustomGuardrailOutput

Contenedor de medidas de protección personalizadas que sigue el patrón ModerationGuardrail

- `config` (CustomGuardrailsConfigOutput, optional) — Contenedor de configuración para la lista de medidas de protección personalizadas

### AlertingSettingsResponseNotifiersItem

- `type`: `webhook`
  - `webhook_id` (string, required)
- `type`: `integration`
  - `connection_id` (string, required)
  - `channel_id` (string, optional)
  - `integration_type` (enum, optional)
    - Allowed values: `pagerduty`, `slack`

### WorkflowEdgeModelOutputForwardCondition

- `type`: `expression`
  - `expression` (AstNodeOutput, required) — Expresión que se debe evaluar.
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `llm`
  - `condition` (string, required) — Condición que evaluar
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `result`
  - `successful` (boolean, required) — Indica si todas las herramientas del nodo de herramientas ejecutado anteriormente se ejecutaron correctamente.
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `unconditional`
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.

### WorkflowEdgeModelOutputBackwardCondition

- `type`: `expression`
  - `expression` (AstNodeOutput, required) — Expresión que se debe evaluar.
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `llm`
  - `condition` (string, required) — Condición que evaluar
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `result`
  - `successful` (boolean, required) — Indica si todas las herramientas del nodo de herramientas ejecutado anteriormente se ejecutaron correctamente.
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.
- `type`: `unconditional`
  - `label` (string, optional) — Etiqueta opcional legible para humanos de la condición, utilizada en toda la interfaz.

### PositionOutput

- `x` (double, required, default: 0)
- `y` (double, required, default: 0)

### ConversationalConfigApiModelWorkflowOverrideOutput

- `asr` (AsrConversationalConfigWorkflowOverride, optional) — Configuración de la transcripción conversacional
- `turn` (TurnConfigWorkflowOverride, optional) — Configuración de la detección de turnos
- `tts` (TtsConversationalConfigWorkflowOverrideOutput, optional) — Configuración de Texto a Voz conversacional
- `conversation` (ConversationConfigWorkflowOverrideOutput, optional) — Configuración de eventos conversacionales
- `language_presets` (map from string to LanguagePresetOutput, optional) — Preajustes de idioma para conversaciones
- `vad` (VadConfigWorkflowOverride, optional) — Configuración de la detección de actividad de voz
- `agent` (AgentConfigApiModelWorkflowOverrideOutput, optional) — Configuración específica del agente

### WorkflowPhoneNumberNodeModelOutputCustomSipHeadersItem

- `type`: `dynamic`
  - `key` (string, required) — El nombre de la cabecera SIP (p. ej., «X-Customer-ID»)
  - `value` (string, required) — El nombre de la variable dinámica que se va a resolver
- `type`: `static`
  - `key` (string, required) — El nombre de la cabecera SIP (p. ej., «X-Customer-ID»)
  - `value` (string, required) — El valor de la cabecera

### WorkflowPhoneNumberNodeModelOutputTransferDestination

- `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)

### WorkflowPhoneNumberNodeModelOutputPostDialDigits

- `type`: `dynamic`
  - `value` (string, required) — El nombre de la variable dinámica que se va a resolver
- `type`: `static`
  - `value` (string, required) — Dígitos DTMF que se enviarán tras conectar la llamada (por ejemplo, 'ww1234' para una extensión)

### WorkflowSayNodeModelOutputMessage

Mensaje que pronuncia este nodo. Usa `literal` para texto exacto o `prompt` para que el LLM genere el mensaje a partir de una descripción.

- `type`: `literal`
  - `text` (string, required) — Texto exacto que pronuncia el agente. Admite marcadores de posición de variables dinámicas `{{variable_name}}`.
  - `text_translations` (map from string to TranslatedString, required) — Traducciones de `text`, indexadas por código de idioma. Cuando el idioma de la conversación tiene una entrada, se pronuncia su valor en lugar de `text`.
- `type`: `prompt`
  - `prompt` (string, required) — Descripción del mensaje que debe generar el LLM. Se añade al prompt del sistema del agente mientras este nodo está activo.

### WorkflowStateUpdateOutput

- `type` ("dynamic_variable", required)
- `variable_name` (string, required) — Nombre de la variable dinámica que se va a asignar.
- `expression` (AstNodeOutput, required) — Expresión cuyo resultado se asigna a la variable. Puede combinar constantes, otras variables dinámicas, valores extraídos por el LLM y operadores.
- `required` (boolean, required, default: true) — Cuando es false, el LLM puede omitir los valores de los que depende esta actualización. En ese caso, la actualización se omite y la variable conserva su valor actual.

### AsrConversationalConfigOverride

- `keywords` (list of string, optional) — Palabras clave para aumentar la probabilidad de predicción de

### TurnConfigOverride

- `soft_timeout_config` (SoftTimeoutConfigOverride, optional) — Configuración de la función de tiempo de espera flexible. Proporciona comentarios inmediatos durante respuestas más largas del LLM.

### TtsConversationalConfigOverride

- `model_id` (enum, optional, default: eleven_v4_turbo) — El modelo que se debe usar para TTS
  - Allowed values: `eleven_turbo_v2`, `eleven_turbo_v2_5`, `eleven_flash_v2`, `eleven_flash_v2_5`, `eleven_multilingual_v2`, `eleven_v3_conversational`, `eleven_v4`, `eleven_v4_turbo`
- `voice_id` (string, optional) — El ID de voz que se utilizará para TTS
- `supported_voices` (list of SupportedVoice, optional) — Voces compatibles adicionales para el agente
- `stability` (double, optional) — La estabilidad de la voz generada.
- `speed` (double, optional) — La velocidad de la voz generada.
- `similarity_boost` (double, optional) — El refuerzo de similitud para la voz generada
- `pronunciation_dictionary_locators` (list of PydanticPronunciationDictionaryVersionLocator, optional) — Los localizadores del diccionario de pronunciación

### ConversationConfigOverride

- `text_only` (boolean, optional) — Si se activa, el audio no se procesará y solo se utilizará texto. Úsalo para evitar los costes de audio.
- `max_duration_seconds` (integer, optional) — La duración máxima de una conversación en segundos

### AgentConfigOverrideOutput

- `first_message` (string, optional) — Si no está vacío, el primer mensaje que dirá el agente. Si está vacío, el agente espera a que el usuario inicie la conversación.
- `language` (string, optional) — Idioma del agente, usado para ASR y TTS
- `max_conversation_duration_message` (string, optional) — Si no está vacío, el mensaje que enviará el agente cuando se alcance la duración máxima de la conversación.
- `prompt` (PromptAgentApiModelOverrideOutput, optional) — El prompt del agente

### BuiltInToolsOutput

Herramientas del sistema que se pueden proporcionar a un agente conversacional. No se llama deliberadamente ConversationalBuiltInTools: BuiltInToolsInput y BuiltInToolsOutput forman parte de la especificación pública de la API y de los SDK generados.

- `transfer_to_agent` (SystemToolConfigOutput, optional) — La herramienta de transferencia a agente
- `end_call` (SystemToolConfigOutput, optional) — La herramienta para finalizar la llamada
- `language_detection` (SystemToolConfigOutput, optional) — La herramienta de detección de idioma
- `transfer_to_number` (SystemToolConfigOutput, optional) — La herramienta de transferencia a número
- `skip_turn` (SystemToolConfigOutput, optional) — La herramienta para omitir turno
- `play_keypad_touch_tone` (SystemToolConfigOutput, optional) — La herramienta de reproducción DTMF
- `voicemail_detection` (SystemToolConfigOutput, optional) — La herramienta de detección de buzón de voz

### CustomLlm

- `url` (string, required) — La URL de la ruta compatible con Chat Completions
- `model_id` (string, optional) — El ID del modelo que se debe usar si la URL sirve varios modelos
- `api_key` (CustomLlmApiKey, optional) — La clave de API para la autenticación. Puede ser una referencia a un secreto del espacio de trabajo \{'secret\_id': '...'} o una referencia a una variable de entorno \{'env\_var\_label': '...'}.
- `auth_connection` (CustomLlmAuthConnection, optional) — Conexión de autenticación opcional del espacio de trabajo. Solo se admiten conexiones de autenticación que generen un token Authorization Bearer; no se admiten conexiones de autenticación Basic, mTLS, con encabezado personalizado ni con secreto en la URL.
- `request_headers` (map from string to CustomLlmRequestHeadersValue, optional) — Cabeceras que deben incluirse en la solicitud.
- `api_version` (string, optional) — La versión de la API que se utilizará para la solicitud.
- `api_type` (enum, optional, default: chat_completions) — El tipo de API que se utilizará (chat_completions, responses o 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) — Distancia vectorial máxima de los fragmentos recuperados.
- `max_documents_length` (integer, optional, default: 50000) — Longitud total máxima de los fragmentos de documentos recuperados de RAG.
- `max_retrieved_rag_chunks_count` (integer, optional, default: 20) — Número máximo de fragmentos de documentos RAG que se recuperarán inicialmente del almacén vectorial. Después se filtran según la distancia vectorial y la longitud total.
- `num_candidates` (integer, optional) — Número de candidatos evaluados en la búsqueda vectorial ANN. Un número mayor ofrece mejores resultados, pero también mayor latencia. El valor mínimo recomendado es 100. Si se desactiva, se utiliza el valor predeterminado.
- `query_rewrite_prompt_override` (string, optional) — Prompt personalizado para reformular las consultas de usuario antes de la recuperación RAG. El historial de conversación se añadirá automáticamente al final. Si no se configura, se utilizará el prompt predeterminado.
- `knowledge_base_tool_info` (KnowledgeBaseToolInfo, optional) — Cuando se configura, el agente usa la herramienta knowledge_base en lugar de la herramienta heredada knowledge_base_rag. None significa que el agente no está incluido.

### PromptAgentApiModelOutputBackupLlmConfig

Configuración de la cascada de LLM de respaldo. Se puede desactivar, usar los valores predeterminados del sistema o especificar un orden personalizado.

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

El tipo de herramienta

- `type`: `api_integration_webhook`
  - `api_integration_connection_id` (string, required)
  - `api_integration_id` (string, required)
  - `assignments` (list of DynamicVariableAssignment, required) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `dynamic_variables` (DynamicVariablesConfig, required) — Configuración de variables dinámicas
  - `execution_mode` (enum, required, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `interruption_mode` (enum, required, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `name` (string, required)
  - `pre_tool_speech` (enum, required, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, required, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta. Debe estar entre 5 y 300 segundos, ambos incluidos.
  - `tool_call_sound_behavior` (enum, required, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, required, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `tool_version` (string, required, default: 1.0.0) — La versión de la herramienta de integración de API
  - `disable_interruptions` (boolean, required, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, required, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
  - `api_schema_overrides` (ApiIntegrationWebhookOverrides, optional) — User overrides applied on top of the base api_schema
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `type`: `client`
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuración de variables dinámicas
  - `execution_mode` (enum, optional, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — Si es true, llamar a esta herramienta debe bloquear la conversación hasta que el cliente responda; la respuesta se pasará al LLM. Si es false, continuaremos la conversación sin esperar a que responda el cliente. Esto resulta útil para mostrar contenido a un usuario sin bloquear la conversación.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaPropertyOutput, optional) — Esquema de los parámetros que se pasarán al cliente
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo, en segundos, que se espera a que se complete la llamada a la herramienta. Debe estar entre 1 y 120 segundos (ambos incluidos) o ser -1 para esperar indefinidamente la respuesta del cliente (requiere expects_response).
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
- `type`: `mcp`
  - `value` (any, required)
- `type`: `smb`
  - `value` (any, required)
- `type`: `system`
  - `name` (string, required)
  - `params` (SystemToolConfigOutputParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `description` (string, optional, default: ) — Descripción de cuándo se debe usar la herramienta y qué hace. Déjalo vacío para usar la descripción predeterminada, optimizada para el tipo de herramienta específico.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta.
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
- `type`: `webhook`
  - `api_schema` (WebhookToolApiSchemaConfigOutput, required) — El esquema del webhook saliente, incluidos los parámetros y la especificación de la URL
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuración de variables dinámicas
  - `execution_mode` (enum, optional, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — Si se sigue una redirección desde la ruta de API y se devuelve la respuesta final. Se sigue una única redirección, como una solicitud GET sin el cuerpo de la solicitud; no se envía al destino de la redirección nada configurado en esta herramienta (encabezados, autenticación, certificado de cliente). Tanto la ruta de API como el destino de la redirección deben usar HTTPS. No compatible con herramientas de integración de API.
  - `follow_redirects_allowed_domains` (list of string, optional) — Dominios a los que puede apuntar una redirección; por ejemplo, 'test.example.com'. Es obligatorio al seguir redirecciones y se rechazará cualquier destino que no esté en la lista.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta. Debe estar entre 5 y 300 segundos, ambos incluidos.
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.

### WidgetTextContentsTranslation

- `source` (map from string to string, optional) — El texto de origen del que se ha obtenido cada campo traducido.
- `text` (map from string to string, optional) — La última salida traducida automáticamente para cada campo traducido

### WidgetTermsTranslation

- `source_hash` (string, required)
- `text` (string, required)

### AsrConversationalConfigOverrideConfig

- `keywords` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo keywords.

### TurnConfigOverrideConfig

- `soft_timeout_config` (SoftTimeoutConfigOverrideConfig, optional) — Configura anulaciones para campos anidados.

### TtsConversationalConfigOverrideConfig

- `model_id` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo model_id.
- `voice_id` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo voice_id.
- `supported_voices` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo supported_voices.
- `stability` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo stability.
- `speed` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo speed.
- `similarity_boost` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo similarity_boost.
- `pronunciation_dictionary_locators` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo pronunciation_dictionary_locators.

### ConversationConfigOverrideConfig

- `text_only` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo text_only.
- `max_duration_seconds` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo max_duration_seconds.

### AgentConfigOverrideConfig

- `first_message` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo first_message.
- `language` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo language.
- `max_conversation_duration_message` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo max_conversation_duration_message.
- `prompt` (PromptAgentApiModelOverrideConfig, optional) — Configura anulaciones para campos anidados.

### ConversationInitiationClientDataWebhookRequestHeadersValue

### ContentConfig

- `sexual` (ContentThresholdGuardrail, optional)
- `violence` (ContentThresholdGuardrail, optional)
- `harassment` (ContentThresholdGuardrail, optional)
- `self_harm` (ContentThresholdGuardrail, optional)
- `profanity` (ContentThresholdGuardrail, optional)
- `religion_or_politics` (ContentThresholdGuardrail, optional)
- `medical_and_legal_information` (ContentThresholdGuardrail, optional)

### ContentGuardrailInputTriggerAction

- `type`: `end_call`
- `type`: `retry`
  - `feedback` (string, optional, default: Your response was blocked by a guardrail that blocks content that matches this condition/category: '{{trigger_reason}}' During your next turn you must tell the user "I'm sorry but I can't answer that question, would you like to know something else?".) — Comentarios personalizados que se inyectarán en el agente al volver a intentarlo tras activar una medida de seguridad.

### CustomGuardrailsConfigInput

Contenedor de configuración para la lista de medidas de protección personalizadas

- `configs` (list of CustomGuardrailConfig, optional)

### AstNodeInput

- `type`: `add_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `and_operator`
  - `children` (list of AstNodeInput, required) — Nodos secundarios del operador lógico.
- `type`: `boolean_literal`
  - `value` (boolean, required) — Valor de este literal.
- `type`: `conditional_operator`
  - `condition` (AstNodeInput, required) — Condición que determina qué expresión se debe seleccionar.
  - `falseExpression` (AstNodeInput, required) — Expresión seleccionada si la condición es false.
  - `trueExpression` (AstNodeInput, required) — Expresión seleccionada si la condición es true.
- `type`: `div_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `dynamic_variable`
  - `name` (string, required) — El nombre de la variable dinámica.
- `type`: `eq_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `gt_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `gte_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `llm`
  - `value_schema` (LlmLiteralJsonSchemaProperty, optional) — Esquema JSON que describe el valor que debe extraer el LLM.
  - `prompt` (string, optional, deprecated) — El prompt que se debe evaluar como un valor booleano. Obsoleto. Usa un esquema booleano en su lugar.
- `type`: `lt_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `lte_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `mul_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `neq_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.
- `type`: `null_literal`
- `type`: `number_literal`
  - `value` (AstNumberNodeInputValue, required) — Valor de este literal.
- `type`: `or_operator`
  - `children` (list of AstNodeInput, required) — Nodos secundarios del operador lógico.
- `type`: `string_literal`
  - `value` (string, required) — Valor de este literal.
- `type`: `sub_operator`
  - `left` (AstNodeInput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeInput, required) — Operando derecho del operador binario.

### AsrConversationalConfigWorkflowOverride

- `quality` ("high", optional) — La calidad de la transcripción
- `provider` (enum, optional, default: scribe_realtime) — El proveedor del servicio de transcripción
  - Allowed values: `elevenlabs`, `scribe_realtime`, `scribe_v2_turbo`
- `user_input_audio_format` (enum, optional, default: pcm_16000) — El formato del audio que se va a transcribir
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `keywords` (list of string, optional) — Palabras clave para aumentar la probabilidad de predicción de

### TurnConfigWorkflowOverride

- `turn_timeout` (double, optional) — Tiempo máximo de espera de la respuesta del usuario antes de volver a interactuar con él
- `initial_wait_time` (double, optional) — Cuánto tiempo esperará el agente a que el usuario inicie la conversación si el primer mensaje está vacío. Si no se establece, se usa el turn_timeout normal.
- `silence_end_call_timeout` (double, optional) — Tiempo máximo de espera desde que el usuario habló por última vez antes de finalizar la llamada
- `turn_eagerness` (enum, optional, default: normal) — Controla la rapidez con la que el agente responde. Bajo = menos rápido (espera más), Estándar = rapidez predeterminada, Alto = más rápido (responde antes)
  - Allowed values: `patient`, `normal`, `eager`
- `spelling_patience` (enum, optional, default: auto) — Controla si el agente debe ser más paciente cuando el usuario está deletreando números y entidades con nombre propio. Auto = según el modelo, Off = nunca espera más tiempo
  - Allowed values: `auto`, `off`
- `speculative_turn` (boolean, optional) — Cuando está activado, empieza a generar respuestas del LLM durante el silencio antes de alcanzar una confianza total en el turno, lo que reduce la latencia percibida. Puede aumentar los costes del LLM.
- `retranscribe_on_turn_timeout` (boolean, optional) — Cuando se activa, si VAD no detecta voz, intenta volver a transcribir el audio acumulado cuando se agota el tiempo del turno. Desactiva la facturación con descuento por silencio mientras está activado para el agente o nodo de workflow activo.
- `turn_model` (enum, optional, default: turn_v3) — Versión del modelo de detección de turnos que se debe usar.
  - Allowed values: `turn_v2`, `turn_v3`
- `interruption_ignore_terms` (list of string, optional) — Lista de términos que no deben desencadenar una interrupción cuando los pronuncie el usuario (p. ej., 'gotcha', 'understood'). Utiliza coincidencia exacta sin distinguir mayúsculas de minúsculas.
- `interruption_ignore_term_languages` (list of string, optional) — Códigos de idioma para los que se han activado categorías predefinidas de términos que se deben ignorar. Se almacenan explícitamente para que la visualización no se infiera a partir de la coincidencia de términos.
- `merge_with_default_ignore_terms` (boolean, optional) — Cuando está activado, se usan los términos predeterminados seleccionados para interruption_ignore_term_languages además de interruption_ignore_terms.
- `transcribe_on_disabled_interruptions` (boolean, optional) — Cuando las interrupciones están desactivadas, transcribe igualmente lo que dice el usuario para incluirlo en el siguiente turno. Si está desactivado, se ignora el habla del usuario durante un turno no interrumpible y no activa un turno.
- `soft_timeout_config` (SoftTimeoutConfigWorkflowOverride, optional) — Configuración de la función de tiempo de espera flexible. Proporciona comentarios inmediatos durante respuestas más largas del LLM.

### TtsConversationalConfigWorkflowOverrideInput

- `model_id` (enum, optional, default: eleven_v4_turbo) — El modelo que se debe usar para TTS
  - Allowed values: `eleven_turbo_v2`, `eleven_turbo_v2_5`, `eleven_flash_v2`, `eleven_flash_v2_5`, `eleven_multilingual_v2`, `eleven_v3_conversational`, `eleven_v4`, `eleven_v4_turbo`
- `voice_id` (string, optional) — El ID de voz que se utilizará para TTS
- `supported_voices` (list of SupportedVoice, optional) — Voces compatibles adicionales para el agente
- `expressive_mode` (boolean, optional) — Cuando está activado, aplica el prompt de etiquetas de audio expresivas. Se desactiva automáticamente para modelos que no sean v3.
- `suggested_audio_tags` (list of SuggestedAudioTag, optional) — Etiquetas de audio sugeridas para potenciar una voz expresiva (para los modelos eleven_v3 y eleven_v3_conversational). El agente también puede usar otras etiquetas que no se incluyan aquí.
- `agent_output_audio_format` (enum, optional, default: pcm_16000) — El formato de audio que se usará para Texto a Voz
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `optimize_streaming_latency` (integer, optional) — Obsoleto: este campo no tiene efecto y se ignora.
- `stability` (double, optional) — La estabilidad de la voz generada.
- `speed` (double, optional) — La velocidad de la voz generada.
- `similarity_boost` (double, optional) — El refuerzo de similitud para la voz generada
- `text_normalisation_type` (enum, optional, default: system_prompt) — Método para convertir números en palabras antes de convertir texto en voz. Si se establece en SYSTEM_PROMPT, el prompt del sistema se actualizará para incluir instrucciones de normalización. Si se establece en ELEVENLABS, el texto se normalizará después de la generación, lo que añadirá una ligera latencia.
  - Allowed values: `system_prompt`, `elevenlabs`
- `pronunciation_dictionary_locators` (list of PydanticPronunciationDictionaryVersionLocator, optional) — Los localizadores del diccionario de pronunciación
- `enable_phoneme_tags` (boolean, optional) — Activa el procesamiento de etiquetas de fonemas SSML para los modelos V3. Al activarlo, las etiquetas de fonemas, tanto en línea como de diccionarios de pronunciación, se analizan y convierten a IPA en línea antes de enviarse al modelo.
- `audio_effects` (EffectsSpecInput, optional) — Especificación opcional de efectos de TTS: preajuste de filtro, distancia (ecualización de proximidad) y entorno (reverberación por convolución).

### ConversationConfigWorkflowOverrideInput

- `text_only` (boolean, optional) — Si se activa, el audio no se procesará y solo se utilizará texto. Úsalo para evitar los costes de audio.
- `max_duration_seconds` (integer, optional) — La duración máxima de una conversación en segundos
- `client_events` (list of enum, optional) — Los eventos que se enviarán al cliente
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `file_input` (FileInputConfigWorkflowOverride, optional) — Configuración de la entrada de archivos (subidas de imágenes o PDF) durante las conversaciones.
- `monitoring_enabled` (boolean, optional) — Activa la monitorización en tiempo real de las conversaciones mediante WebSocket
- `monitoring_events` (list of enum, optional) — Los eventos que se enviarán a las conexiones de monitorización.
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `dtmf_input_settings` (DtmfInputConfig, optional) — Configura la recopilación de entradas DTMF (teclado) durante llamadas telefónicas
- `background_sound` (BackgroundSoundConfigWorkflowOverride, optional) — Configuración del sonido de fondo durante las conversaciones.
- `source_attribution` (boolean, optional) — Cuando está activado y hay contenido en la base de conocimientos, se indica al LLM que informe de las fuentes que ha utilizado.

### LanguagePresetInput

- `overrides` (ConversationConfigClientOverrideInput, required) — Las sustituciones para el preajuste de idioma
- `first_message_translation` (LanguagePresetTranslation, optional) — La traducción del primer mensaje
- `soft_timeout_translation` (LanguagePresetTranslation, optional) — La traducción del mensaje de tiempo de espera flexible

### VadConfigWorkflowOverride

### AgentConfigApiModelWorkflowOverrideInput

- `first_message` (string, optional) — Si no está vacío, el primer mensaje que dirá el agente. Si está vacío, el agente espera a que el usuario inicie la conversación.
- `language` (string, optional) — Idioma del agente, usado para ASR y TTS
- `hinglish_mode` (boolean, optional) — Cuando está activado, el agente mezcla palabras y frases en inglés en las respuestas en hindi, malayalam, telugu o canarés.
- `dynamic_variables` (DynamicVariablesConfigWorkflowOverride, optional) — Configuración de variables dinámicas
- `disable_first_message_interruptions` (boolean, optional) — Si es true, el usuario no podrá interrumpir al agente mientras se emite el primer mensaje.
- `max_conversation_duration_message` (string, optional) — Si no está vacío, el mensaje que enviará el agente cuando se alcance la duración máxima de la conversación.
- `text_behavior_overrides` (map from string to BehaviorOverride, optional) — Anulaciones del comportamiento de respuesta por canal para conversaciones de texto. Si no se establecen, se aplican los valores predeterminados integrados del canal.
- `prompt` (PromptAgentApiModelWorkflowOverrideInput, optional) — El prompt del agente

### WorkflowToolLocatorSchemaOverridesValue

- `source`: `constant`
  - `constant_value` (ConstantSchemaOverrideConstantValue, optional) — El valor constante que se usará
- `source`: `dynamic_variable`
  - `dynamic_variable` (string, required) — El nombre de la variable dinámica que se debe usar
- `source`: `llm`
  - `prompt` (string, optional) — Sustitución del prompt para el LLM. Si no se proporciona, se utiliza la descripción del esquema original.
- `source`: `omit`

### TranslatedString

- `value` (string, required)

### ContentGuardrailOutputTriggerAction

- `type`: `end_call`
- `type`: `retry`
  - `feedback` (string, optional, default: Your response was blocked by a guardrail that blocks content that matches this condition/category: '{{trigger_reason}}' During your next turn you must tell the user "I'm sorry but I can't answer that question, would you like to know something else?".) — Comentarios personalizados que se inyectarán en el agente al volver a intentarlo tras activar una medida de seguridad.

### CustomGuardrailsConfigOutput

Contenedor de configuración para la lista de medidas de protección personalizadas

- `configs` (list of CustomGuardrailConfig, optional)

### AstNodeOutput

- `type`: `add_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `and_operator`
  - `children` (list of AstNodeOutput, required) — Nodos secundarios del operador lógico.
- `type`: `boolean_literal`
  - `value` (boolean, required) — Valor de este literal.
- `type`: `conditional_operator`
  - `condition` (AstNodeOutput, required) — Condición que determina qué expresión se debe seleccionar.
  - `falseExpression` (AstNodeOutput, required) — Expresión seleccionada si la condición es false.
  - `trueExpression` (AstNodeOutput, required) — Expresión seleccionada si la condición es true.
- `type`: `div_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `dynamic_variable`
  - `name` (string, required) — El nombre de la variable dinámica.
- `type`: `eq_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `gt_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `gte_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `llm`
  - `value_schema` (LlmLiteralJsonSchemaProperty, required) — Esquema JSON que describe el valor que debe extraer el LLM.
  - `prompt` (string, required, deprecated) — El prompt que se debe evaluar como un valor booleano. Obsoleto. Usa un esquema booleano en su lugar.
- `type`: `lt_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `lte_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `mul_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `neq_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.
- `type`: `null_literal`
- `type`: `number_literal`
  - `value` (AstNumberNodeOutputValue, required) — Valor de este literal.
- `type`: `or_operator`
  - `children` (list of AstNodeOutput, required) — Nodos secundarios del operador lógico.
- `type`: `string_literal`
  - `value` (string, required) — Valor de este literal.
- `type`: `sub_operator`
  - `left` (AstNodeOutput, required) — Operando izquierdo del operador binario.
  - `right` (AstNodeOutput, required) — Operando derecho del operador binario.

### TtsConversationalConfigWorkflowOverrideOutput

- `model_id` (enum, optional, default: eleven_v4_turbo) — El modelo que se debe usar para TTS
  - Allowed values: `eleven_turbo_v2`, `eleven_turbo_v2_5`, `eleven_flash_v2`, `eleven_flash_v2_5`, `eleven_multilingual_v2`, `eleven_v3_conversational`, `eleven_v4`, `eleven_v4_turbo`
- `voice_id` (string, optional) — El ID de voz que se utilizará para TTS
- `supported_voices` (list of SupportedVoice, optional) — Voces compatibles adicionales para el agente
- `expressive_mode` (boolean, optional) — Cuando está activado, aplica el prompt de etiquetas de audio expresivas. Se desactiva automáticamente para modelos que no sean v3.
- `suggested_audio_tags` (list of SuggestedAudioTag, optional) — Etiquetas de audio sugeridas para potenciar una voz expresiva (para los modelos eleven_v3 y eleven_v3_conversational). El agente también puede usar otras etiquetas que no se incluyan aquí.
- `agent_output_audio_format` (enum, optional, default: pcm_16000) — El formato de audio que se usará para Texto a Voz
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `optimize_streaming_latency` (integer, optional) — Obsoleto: este campo no tiene efecto y se ignora.
- `stability` (double, optional) — La estabilidad de la voz generada.
- `speed` (double, optional) — La velocidad de la voz generada.
- `similarity_boost` (double, optional) — El refuerzo de similitud para la voz generada
- `text_normalisation_type` (enum, optional, default: system_prompt) — Método para convertir números en palabras antes de convertir texto en voz. Si se establece en SYSTEM_PROMPT, el prompt del sistema se actualizará para incluir instrucciones de normalización. Si se establece en ELEVENLABS, el texto se normalizará después de la generación, lo que añadirá una ligera latencia.
  - Allowed values: `system_prompt`, `elevenlabs`
- `pronunciation_dictionary_locators` (list of PydanticPronunciationDictionaryVersionLocator, optional) — Los localizadores del diccionario de pronunciación
- `enable_phoneme_tags` (boolean, optional) — Activa el procesamiento de etiquetas de fonemas SSML para los modelos V3. Al activarlo, las etiquetas de fonemas, tanto en línea como de diccionarios de pronunciación, se analizan y convierten a IPA en línea antes de enviarse al modelo.
- `audio_effects` (EffectsSpecOutput, optional) — Especificación opcional de efectos de TTS: preajuste de filtro, distancia (ecualización de proximidad) y entorno (reverberación por convolución).

### ConversationConfigWorkflowOverrideOutput

- `text_only` (boolean, optional) — Si se activa, el audio no se procesará y solo se utilizará texto. Úsalo para evitar los costes de audio.
- `max_duration_seconds` (integer, optional) — La duración máxima de una conversación en segundos
- `client_events` (list of enum, optional) — Los eventos que se enviarán al cliente
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `file_input` (FileInputConfigWorkflowOverride, optional) — Configuración de la entrada de archivos (subidas de imágenes o PDF) durante las conversaciones.
- `monitoring_enabled` (boolean, optional) — Activa la monitorización en tiempo real de las conversaciones mediante WebSocket
- `monitoring_events` (list of enum, optional) — Los eventos que se enviarán a las conexiones de monitorización.
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `dtmf_input_settings` (DtmfInputConfig, optional) — Configura la recopilación de entradas DTMF (teclado) durante llamadas telefónicas
- `background_sound` (BackgroundSoundConfigWorkflowOverride, optional) — Configuración del sonido de fondo durante las conversaciones.
- `source_attribution` (boolean, optional) — Cuando está activado y hay contenido en la base de conocimientos, se indica al LLM que informe de las fuentes que ha utilizado.

### AgentConfigApiModelWorkflowOverrideOutput

- `first_message` (string, optional) — Si no está vacío, el primer mensaje que dirá el agente. Si está vacío, el agente espera a que el usuario inicie la conversación.
- `language` (string, optional) — Idioma del agente, usado para ASR y TTS
- `hinglish_mode` (boolean, optional) — Cuando está activado, el agente mezcla palabras y frases en inglés en las respuestas en hindi, malayalam, telugu o canarés.
- `dynamic_variables` (DynamicVariablesConfigWorkflowOverride, optional) — Configuración de variables dinámicas
- `disable_first_message_interruptions` (boolean, optional) — Si es true, el usuario no podrá interrumpir al agente mientras se emite el primer mensaje.
- `max_conversation_duration_message` (string, optional) — Si no está vacío, el mensaje que enviará el agente cuando se alcance la duración máxima de la conversación.
- `text_behavior_overrides` (map from string to BehaviorOverride, optional) — Anulaciones del comportamiento de respuesta por canal para conversaciones de texto. Si no se establecen, se aplican los valores predeterminados integrados del canal.
- `prompt` (PromptAgentApiModelWorkflowOverrideOutput, optional) — El prompt del agente

### SoftTimeoutConfigOverride

- `message` (string, optional) — Mensaje que se mostrará cuando se alcance el primer tiempo de espera flexible mientras se espera la respuesta del LLM. Admite variables dinámicas (por ejemplo, \{\{system\_\_time}}, \{\{custom\_variable}}).
- `additional_soft_timeout_messages` (list of string, optional) — Mensajes de relleno estáticos adicionales para los siguientes tiempos de espera flexibles en la misma generación del LLM. El primer tiempo de espera usa `message`. Si se configuran menos mensajes que `max_soft_timeouts_per_generation`, se repite el último mensaje configurado; de lo contrario, se utiliza un mensaje de relleno integrado.

### PromptAgentApiModelOverrideOutput

- `prompt` (string, optional) — El prompt del agente
- `llm` (enum, optional) — El LLM que se consultará con el prompt y el historial de chat. Si utilizas residencia de datos, el LLM debe ser compatible con el entorno de residencia de datos
  - 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`
- `tool_ids` (list of string, optional) — Una lista de ID de herramientas utilizadas por el agente.
- `tool_ids_strict` (boolean, optional) — Solo se aplica como una anulación de conversación y se permite siempre que se pueda anular tool_ids. Cuando es true, el valor de tool_ids anulado es la lista completa de herramientas permitidas en la conversación, incluidas las herramientas de los nodos de workflow. Se ignora cuando se configura en el agente.
- `native_mcp_server_ids` (list of string, optional) — Una lista de ID de servidores MCP nativos que utilizará el agente
- `knowledge_base` (list of KnowledgeBaseLocator, optional) — Una lista de bases de conocimiento que utilizará el agente

### SystemToolConfigOutput

Una herramienta del sistema es una herramienta que se utiliza para llamar a un método del sistema en el servidor

- `name` (string, required)
- `params` (SystemToolConfigOutputParams, required)
- `type` ("system", optional) — El tipo de herramienta
- `description` (string, optional, default: ) — Descripción de cuándo se debe usar la herramienta y qué hace. Déjalo vacío para usar la descripción predeterminada, optimizada para el tipo de herramienta específico.
- `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta.
- `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
  - Allowed values: `auto`, `force`, `off`
- `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
- `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
  - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
  - Allowed values: `auto`, `always`
- `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
  - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
- `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
- `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.

### CustomLlmApiKey

La clave de API para la autenticación. Puede ser una referencia a un secreto del espacio de trabajo \{'secret\_id': '...'} o una referencia a una variable de entorno \{'env\_var\_label': '...'}.

### CustomLlmAuthConnection

Conexión de autenticación opcional del espacio de trabajo. Solo se admiten conexiones de autenticación que generen un token Authorization Bearer; no se admiten conexiones de autenticación Basic, mTLS, con encabezado personalizado ni con secreto en la URL.

### CustomLlmRequestHeadersValue

### KnowledgeBaseToolInfo

- `enabled_strategies` (list of enum, optional) — Estrategias de búsqueda expuestas al modelo. No puede estar vacío.
  - Allowed values: `cat`, `keyword`, `semantic`, `ls`

### DynamicVariableAssignment

Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas.

- `dynamic_variable` (string, required) — El nombre de la variable dinámica a la que se asignará el valor extraído
- `value_path` (string, required) — Ruta de notación por puntos para extraer el valor de la fuente (por ejemplo, 'user.name' o 'data.0.id')
- `source` ("response", optional) — La fuente de la que extraer el valor. Actualmente solo se admite 'response'.
- `sanitize` (boolean, optional, default: false) — Si es true, el valor de esta asignación se eliminará de la respuesta de la herramienta antes de enviarla al LLM y a la transcripción, pero se seguirá procesando para la asignación de variables.
- `preserve_native_type` (boolean, optional, default: false) — Si es true, los valores no escalares (listas, objetos) extraídos de la respuesta de la herramienta se almacenan con su tipo nativo en lugar de convertirse en cadenas JSON. Activa esta opción para usar directamente los arrays extraídos como variables dinámicas de lista.

### DynamicVariablesConfig

- `dynamic_variable_placeholders` (map from string to any, optional) — Un diccionario de marcadores de variables dinámicas y sus valores.

### ApiIntegrationWebhookOverrides

- `schema_overrides` (map from string to ApiIntegrationWebhookOverridesSchemaOverridesValue, optional)
- `response_filter_mode` (enum, optional, default: all) — Controla cómo se filtran las respuestas de las herramientas antes de que sean visibles para el agente.
  - 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: ) — Cuando se configura, todo el parámetro se completa a partir de esta variable dinámica en tiempo de ejecución. Es mutuamente excluyente con description (valor proporcionado por el LLM), constant_value e is_omitted.
- `constant_value` (map from string to any, optional) — Cuando se configura, todo el objeto usa este valor JSON constante en tiempo de ejecución. Es mutuamente excluyente con description (objeto proporcionado por el LLM), dynamic_variable e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si es true, este parámetro se omitirá por completo de la solicitud. Solo es válido para parámetros opcionales. Es mutuamente excluyente con description, dynamic_variable y constant_value.
- `type` ("object", optional)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyOutputPropertiesValue, optional)
- `required_constraints` (RequiredConstraints, optional) — Contenedor para restricciones de composición anyOf/allOf limitadas a campos obligatorios.

### 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 no se produce un cambio de idioma en los 2 primeros turnos del usuario, los intentos posteriores fallarán y la conversación permanecerá en el idioma actual. Si el idioma cambia durante esos turnos, los cambios posteriores seguirán estando disponibles. Actívalo para reducir la posibilidad de cambios erróneos.
- `system_tool_type`: `play_keypad_touch_tone`
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — Si es true, el agente no generará más voz después de reproducir tonos DTMF. Esto evita que la voz del agente interfiera con los sistemas IVR.
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — Envía tonos DTMF como eventos RTP fuera de banda (RFC 4733) en lugar de audio dentro de banda. Solo es efectivo para números importados de un troncal SIP.
- `system_tool_type`: `skip_turn`
  - `wait_timeout_secs` (double, optional, default: -1) — Segundos de espera tras skip_turn antes de que el agente genere una comprobación contextual. El temporizador «Finalizar conversación tras un periodo de silencio» se pausa durante la espera. -1 desactiva la espera: después de skip_turn, el agente permanece en silencio hasta que hable quien llama y el temporizador sigue en marcha. Solo se aplica a conversaciones de voz.
- `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) — Si se reproduce un mensaje al cliente mientras espera la transferencia. El valor predeterminado es true por compatibilidad con versiones anteriores.
- `system_tool_type`: `voicemail_detection`
  - `voicemail_message` (string, optional) — Mensaje opcional que se dejará en el buzón de voz cuando se detecte. Si no se proporciona, la llamada finalizará inmediatamente al detectar el buzón de voz. Admite variables dinámicas (por ejemplo, \{\{system\_\_time}}, \{\{system\_\_call\_duration\_secs}}, \{\{custom\_variable}}).

### WebhookToolApiSchemaConfigOutput

- `url` (string, required) — La URL a la que se enviará el webhook. Puede incluir parámetros de ruta, p. ej., [https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigOutputRequestHeadersValue, optional) — Cabeceras que deben incluirse en la solicitud.
- `method` (enum, optional, default: GET) — El método HTTP que se usará para el webhook
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — Esquema de los parámetros de ruta, si los hay. Las claves deben coincidir con los marcadores de posición de la URL.
- `query_params_schema` (QueryParamsJsonSchemaOutput, optional) — Esquema de los parámetros de consulta, si los hay. Se añadirán al final de la URL como parámetros de consulta. Nota: las propiedades de un parámetro de consulta deben ser todas de tipos literales.
- `request_body_schema` (ObjectJsonSchemaPropertyOutput, optional) — Esquema de los parámetros del cuerpo, si los hay. Se utiliza para solicitudes POST/PATCH/PUT. El esquema debe ser un objeto que se enviará como cuerpo JSON.
- `response_body_schema` (ObjectJsonSchemaPropertyOutput, optional) — Esquema que describe la estructura esperada del cuerpo de la respuesta. Solo para documentación; no se muestra al LLM.
- `response_filter` (ResponseFilter, optional) — Filtro opcional de lista de permitidos que se aplica a la respuesta antes de que la vea el LLM, para que las respuestas extensas no saturen el contexto. De forma predeterminada, se usa la respuesta completa.
- `content_type` (enum, optional, default: application/json) — Tipo de contenido del cuerpo de la solicitud. Solo se aplica a solicitudes POST/PUT/PATCH.
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — Marcadores de posición de URL resueltos desde la conexión de autenticación (por ejemplo, secretos inyectados mediante UrlSecretAuthConnection) en lugar de desde path_params_schema.
- `auth_connection` (WebhookToolApiSchemaConfigOutputAuthConnection, optional) — Conexión de autenticación opcional que se usará para autenticarse con este webhook

### SoftTimeoutConfigOverrideConfig

- `message` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo message.
- `additional_soft_timeout_messages` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo additional_soft_timeout_messages.

### PromptAgentApiModelOverrideConfig

- `prompt` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo prompt.
- `llm` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo llm.
- `tool_ids` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo tool_ids.
- `tool_ids_strict` (boolean, optional, default: false) — Indica si se permite anular el campo tool_ids_strict.
- `native_mcp_server_ids` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo native_mcp_server_ids.
- `knowledge_base` (boolean, optional, default: false) — Indica si se permite sobrescribir el campo knowledge_base.

### ConvAiSecretLocator

Se usa para hacer referencia a un secreto del almacén de secretos del agente.

- `secret_id` (string, required)

### ContentThresholdGuardrail

- `is_enabled` (boolean, optional, default: false)
- `threshold` (ContentThresholdGuardrailThreshold, optional)

### CustomGuardrailConfig

Configuración de una única barrera de seguridad personalizada

- `name` (string, required) — Nombre visible para usuarios de esta medida de protección
- `prompt` (string, required) — Instrucción que describe qué se debe bloquear; por ejemplo, «no hables de política».
- `is_enabled` (boolean, optional, default: false)
- `execution_mode` (enum, optional, default: streaming)
  - Allowed values: `streaming`, `blocking`
- `model` (enum, optional, default: gemini-3.1-flash-lite) — Modelo LLM que utilizar para la evaluación personalizada de medidas de seguridad
  - Allowed values: `gemini-2.5-flash-lite`, `gemini-2.5-flash`, `gemini-3.1-flash-lite`, `gemini-3.5-flash`, `claude-haiku-4-5`, `claude-sonnet-4-6`, `gpt-5.4-nano`, `gpt-5.4-mini`
- `history_message_count` (integer, optional, default: 0) — Cuánto historial reciente ve la medida de protección antes de la respuesta que evalúa, contado en mensajes del usuario (también se incluyen las respuestas del agente entre ellos). La medida de protección siempre recibe una única transcripción \<conversation\_history> que termina con la respuesta evaluada, marcada como 'AGENT \[current reply]:'. 0 (valor predeterminado) no añade historial previo, solo esa línea; 1 añade desde el último mensaje del usuario en adelante.
- `trigger_action` (CustomGuardrailConfigTriggerAction, optional)
- `evaluate_full_response_only` (boolean, optional, default: false) — Evalúa una vez la respuesta completa que no sea de Texto a Voz, en lugar de las respuestas parciales acumuladas. Requiere el modo de bloqueo.

### LlmLiteralJsonSchemaProperty

- `type` (LlmLiteralJsonSchemaPropertyType, required)
- `description` (string, required)
- `enum` (list of string, optional) — List of allowed string values for string type parameters

### AstNumberNodeInputValue

Valor de este literal.

### SoftTimeoutConfigWorkflowOverride

- `timeout_seconds` (double, optional) — Tiempo en segundos antes de mostrar el mensaje predefinido mientras se espera la respuesta del LLM. Establécelo en -1 para desactivarlo.
- `message` (string, optional) — Mensaje que se mostrará cuando se alcance el primer tiempo de espera flexible mientras se espera la respuesta del LLM. Admite variables dinámicas (por ejemplo, \{\{system\_\_time}}, \{\{custom\_variable}}).
- `additional_soft_timeout_messages` (list of string, optional) — Mensajes de relleno estáticos adicionales para los siguientes tiempos de espera flexibles en la misma generación del LLM. El primer tiempo de espera usa `message`. Si se configuran menos mensajes que `max_soft_timeouts_per_generation`, se repite el último mensaje configurado; de lo contrario, se utiliza un mensaje de relleno integrado.
- `use_llm_generated_message` (boolean, optional) — Si se activa, el mensaje de tiempo de espera flexible se generará dinámicamente en lugar de utilizar el mensaje estático.
- `randomize_fillers` (boolean, optional) — Si se activa, cambia aleatoriamente el orden de los mensajes estáticos de tiempo de espera flexible una vez al inicio de cada turno. Solo se aplica cuando use_llm_generated_message es false.
- `max_soft_timeouts_per_generation` (integer, optional) — Máximo de mensajes de relleno mientras se espera una única respuesta del LLM. Se activa cada timeout_seconds hasta que el LLM transmita contenido o se alcance este límite.
- `llm_generated_message_prompt_override` (string, optional) — Prompt personalizado para generar el mensaje de relleno de espera flexible cuando use\_llm\_generated\_message está activado. El contexto reciente de la conversación se proporciona como un mensaje de usuario independiente. Si no se configura, se utilizará el prompt predeterminado. Admite variables dinámicas (p. ej., \{\{system\_\_time}}, \{\{custom\_variable}}).
- `disable_until_first_user_message` (boolean, optional) — Cuando es true, se suprimen las frases de relleno por tiempo de espera flexible hasta que la conversación tenga al menos un mensaje real del usuario. Evita frases de relleno durante el turno inicial del agente (por ejemplo, generación inmediata en un workflow o llamadas a herramientas antes de que hable el usuario).

### EffectsSpecInput

Efectos de audio aplicados a la voz generada: un ajuste preestablecido de filtro, distancia percibida, un entorno de reverberación, una capa de ruido de fondo y panoramización estéreo. Deja todos los campos con sus valores predeterminados para obtener audio sin procesar.

- `filter_preset_id` (string, optional) — ID de un ajuste preestablecido de filtro que modifica el timbre de la voz, como `phone` u `old_radio`. Consulta los ID válidos con `GET /v1/audio-effects/catalog`.
- `distance` (double, optional, default: 0) — A qué distancia del micrófono suena el hablante, de 0 (cerca, sin cambios) a 1 (lejos). Los valores más altos atenúan las frecuencias graves y agudas y, cuando se configura un entorno, desplazan el equilibrio de la voz sin efectos hacia la reverberación.
- `environment_id` (string, optional) — ID de un entorno de reverberación que sitúa la voz en un espacio, como `small_room` o `hall`. Consulta los ID válidos con `GET /v1/audio-effects/catalog`. La reverberación se procesa en estéreo y añade una cola de hasta varios segundos después de que termine la voz.
- `background_noise_id` (string, optional) — ID de una capa de ruido de fondo reproducida en bucle bajo la voz, como `cafe` o `keyboard`. Consulta los ID válidos con `GET /v1/audio-effects/catalog`.
- `send_level` (double, optional, default: 1) — Qué cantidad de voz se envía a la reverberación, de 0 (ninguna) a 1 (toda). Solo se aplica cuando se configura `environment_id`; 0 desactiva la reverberación.
- `pan` (double, optional, default: 0) — Posición estéreo de la voz, de -1 (completamente a la izquierda), pasando por 0 (centro), hasta 1 (completamente a la derecha). Solo se aplica panoramización a la voz; la reverberación y el ruido de fondo permanecen centrados.

### FileInputConfigWorkflowOverride

- `enabled` (boolean, optional) — Cuando está habilitado, usuarios pueden adjuntar imágenes, PDF o archivos de texto en el chat cuando el LLM admite entrada multimodal.
- `max_files_in_memory` (integer, optional) — Número de archivos más recientes que se conservan en memoria durante una conversación. Los archivos más antiguos se resumen y se libera su memoria.
- `max_files_per_conversation` (integer, optional) — Total de archivos que un usuario puede subir en una conversación. Las subidas se facturan por archivo. Usa -1 para no establecer límite o un valor >= max_files_in_memory.

### BackgroundSoundConfigWorkflowOverride

- `source_type` ("preset", optional) — El tipo de fuente de sonido de fondo.
- `source_id` (enum, optional) — Identificador de la fuente de sonido.
  - Allowed values: `office2`, `office1`, `restaurant`, `city`, `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `volume` (double, optional) — Nivel de volumen del sonido de fondo (de 0,01 a 1,0).
- `crossfade_loop` (boolean, optional) — Aplica un fundido cruzado en el límite del bucle para evitar chasquidos audibles al repetir el sonido.

### ConversationConfigClientOverrideInput

- `asr` (AsrConversationalConfigOverride, optional) — Configuración de la transcripción conversacional
- `turn` (TurnConfigOverride, optional) — Configuración de la detección de turnos
- `tts` (TtsConversationalConfigOverride, optional) — Configuración de Texto a Voz conversacional
- `conversation` (ConversationConfigOverride, optional) — Configuración de eventos conversacionales
- `agent` (AgentConfigOverrideInput, optional) — Configuración específica del agente

### DynamicVariablesConfigWorkflowOverride

- `dynamic_variable_placeholders` (map from string to any, optional) — Un diccionario de marcadores de variables dinámicas y sus valores.

### PromptAgentApiModelWorkflowOverrideInput

- `prompt` (string, optional) — El prompt del agente
- `llm` (enum, optional) — El LLM que se consultará con el prompt y el historial de chat. Si utilizas residencia de datos, el LLM debe ser compatible con el entorno de residencia de datos
  - 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) — Esfuerzo de razonamiento del modelo. Solo disponible para algunos modelos.
  - Allowed values: `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max`
- `thinking_budget` (integer, optional) — Número máximo de tokens utilizados para el razonamiento. Usa 0 para desactivarlo si el modelo lo admite.
- `enable_reasoning_summary` (boolean, optional) — Activa los resúmenes de razonamiento del modelo. Cuando está desactivado, no solicitamos resúmenes al proveedor si es posible, para lograr un TTFB más rápido. No es compatible con ZRM.
- `temperature` (double, optional) — La temperatura para el LLM. El valor predeterminado es 0. Establécela en null para omitir por completo el parámetro de la solicitud al LLM, lo que resulta útil para LLM personalizados que rechazan el campo de temperatura.
- `max_tokens` (integer, optional) — Si es mayor que 0, número máximo de tokens que puede predecir el LLM
- `tool_ids` (list of string, optional) — Una lista de ID de herramientas utilizadas por el agente.
- `tool_ids_strict` (boolean, optional) — Solo se aplica como una anulación de conversación y se permite siempre que se pueda anular tool_ids. Cuando es true, el valor de tool_ids anulado es la lista completa de herramientas permitidas en la conversación, incluidas las herramientas de los nodos de workflow. Se ignora cuando se configura en el agente.
- `built_in_tools` (BuiltInToolsWorkflowOverrideInput, optional) — Herramientas del sistema integradas que utilizará el agente
- `enable_parallel_tool_calls` (boolean, optional) — Activa las llamadas paralelas a herramientas. Cuando está activado, el agente puede ejecutar varias herramientas en paralelo en un único turno. No es compatible con todos los modelos.
- `mcp_server_ids` (list of string, optional) — Una lista de ID de servidores MCP que utilizará el agente
- `native_mcp_server_ids` (list of string, optional) — Una lista de ID de servidores MCP nativos que utilizará el agente
- `knowledge_base` (list of KnowledgeBaseLocator, optional) — Una lista de bases de conocimiento que utilizará el agente
- `custom_llm` (CustomLlm, optional) — Definición de un LLM personalizado si el campo LLM está establecido en 'CUSTOM_LLM'
- `ignore_default_personality` (boolean, optional) — Si se eliminan las líneas de personalidad predeterminadas del prompt del sistema
- `rag` (RagConfigWorkflowOverrideInput, optional) — Configuración de RAG
- `timezone` (string, optional) — Zona horaria para mostrar la hora actual en el prompt del sistema. Si se establece, la hora actual se incluirá en el prompt del sistema usando esta zona horaria. Debe ser un nombre de zona horaria válido (p. ej., 'America/New_York', 'Europe/London', 'UTC'). Se recomienda para obtener respuestas precisas que tengan en cuenta la hora; sin ella, el agente no conoce la fecha ni la hora actuales a menos que se las proporciones mediante variables dinámicas o herramientas, lo que puede provocar referencias temporales incorrectas o alucinadas.
- `backup_llm_config` (PromptAgentApiModelWorkflowOverrideInputBackupLlmConfig, optional) — Configuración de la cascada de LLM de respaldo. Se puede desactivar, usar los valores predeterminados del sistema o especificar un orden personalizado.
- `cascade_timeout_seconds` (double, optional) — Tiempo en segundos antes de recurrir al LLM de respaldo. Debe estar entre 2 y 15 segundos.
- `tools` (list of PromptAgentApiModelWorkflowOverrideInputToolsItem, optional) — Una lista de herramientas que el agente puede utilizar durante la conversación; usa tool_ids en su lugar

### ConstantSchemaOverrideConstantValue

El valor constante que se usará

### AstNumberNodeOutputValue

Valor de este literal.

### PromptAgentApiModelWorkflowOverrideOutput

- `prompt` (string, optional) — El prompt del agente
- `llm` (enum, optional) — El LLM que se consultará con el prompt y el historial de chat. Si utilizas residencia de datos, el LLM debe ser compatible con el entorno de residencia de datos
  - 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) — Esfuerzo de razonamiento del modelo. Solo disponible para algunos modelos.
  - Allowed values: `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max`
- `thinking_budget` (integer, optional) — Número máximo de tokens utilizados para el razonamiento. Usa 0 para desactivarlo si el modelo lo admite.
- `enable_reasoning_summary` (boolean, optional) — Activa los resúmenes de razonamiento del modelo. Cuando está desactivado, no solicitamos resúmenes al proveedor si es posible, para lograr un TTFB más rápido. No es compatible con ZRM.
- `temperature` (double, optional) — La temperatura para el LLM. El valor predeterminado es 0. Establécela en null para omitir por completo el parámetro de la solicitud al LLM, lo que resulta útil para LLM personalizados que rechazan el campo de temperatura.
- `max_tokens` (integer, optional) — Si es mayor que 0, número máximo de tokens que puede predecir el LLM
- `tool_ids` (list of string, optional) — Una lista de ID de herramientas utilizadas por el agente.
- `tool_ids_strict` (boolean, optional) — Solo se aplica como una anulación de conversación y se permite siempre que se pueda anular tool_ids. Cuando es true, el valor de tool_ids anulado es la lista completa de herramientas permitidas en la conversación, incluidas las herramientas de los nodos de workflow. Se ignora cuando se configura en el agente.
- `built_in_tools` (BuiltInToolsWorkflowOverrideOutput, optional) — Herramientas del sistema integradas que utilizará el agente
- `enable_parallel_tool_calls` (boolean, optional) — Activa las llamadas paralelas a herramientas. Cuando está activado, el agente puede ejecutar varias herramientas en paralelo en un único turno. No es compatible con todos los modelos.
- `mcp_server_ids` (list of string, optional) — Una lista de ID de servidores MCP que utilizará el agente
- `native_mcp_server_ids` (list of string, optional) — Una lista de ID de servidores MCP nativos que utilizará el agente
- `knowledge_base` (list of KnowledgeBaseLocator, optional) — Una lista de bases de conocimiento que utilizará el agente
- `custom_llm` (CustomLlm, optional) — Definición de un LLM personalizado si el campo LLM está establecido en 'CUSTOM_LLM'
- `ignore_default_personality` (boolean, optional) — Si se eliminan las líneas de personalidad predeterminadas del prompt del sistema
- `rag` (RagConfigWorkflowOverrideOutput, optional) — Configuración de RAG
- `timezone` (string, optional) — Zona horaria para mostrar la hora actual en el prompt del sistema. Si se establece, la hora actual se incluirá en el prompt del sistema usando esta zona horaria. Debe ser un nombre de zona horaria válido (p. ej., 'America/New_York', 'Europe/London', 'UTC'). Se recomienda para obtener respuestas precisas que tengan en cuenta la hora; sin ella, el agente no conoce la fecha ni la hora actuales a menos que se las proporciones mediante variables dinámicas o herramientas, lo que puede provocar referencias temporales incorrectas o alucinadas.
- `backup_llm_config` (PromptAgentApiModelWorkflowOverrideOutputBackupLlmConfig, optional) — Configuración de la cascada de LLM de respaldo. Se puede desactivar, usar los valores predeterminados del sistema o especificar un orden personalizado.
- `cascade_timeout_seconds` (double, optional) — Tiempo en segundos antes de recurrir al LLM de respaldo. Debe estar entre 2 y 15 segundos.
- `tools` (list of PromptAgentApiModelWorkflowOverrideOutputToolsItem, optional) — Una lista de herramientas que el agente puede utilizar durante la conversación; usa tool_ids en su lugar

### ConvAiEnvVarLocator

Se usa para hacer referencia a una variable de entorno mediante su etiqueta.

- `env_var_label` (string, required)

### AuthConnectionLocator

Se usa para hacer referencia a una conexión de autenticación del almacén de conexiones de autenticación del espacio de trabajo.

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

Hace referencia mediante una etiqueta a una variable de entorno de tipo 'auth_connection'. En tiempo de ejecución, se resuelve en la conexión de autenticación del entorno actual, y recurre al entorno predeterminado si es necesario.

- `env_var_label` (string, required)

### ConvAiDynamicVariable

Se usa para hacer referencia a una variable dinámica.

- `variable_name` (string, required)

### ApiIntegrationWebhookOverridesSchemaOverridesValue

- `source`: `constant`
  - `constant_value` (ConstantSchemaOverrideConstantValue, optional) — El valor constante que se usará
- `source`: `dynamic_variable`
  - `dynamic_variable` (string, required) — El nombre de la variable dinámica que se debe usar
- `source`: `llm`
  - `prompt` (string, optional) — Sustitución del prompt para el LLM. Si no se proporciona, se utiliza la descripción del esquema original.
- `source`: `omit`

### ApiIntegrationWebhookOverridesRequestHeadersValue

### ObjectJsonSchemaPropertyOutputPropertiesValue

### RequiredConstraints

Contenedor para restricciones de composición anyOf/allOf limitadas a campos obligatorios.

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

### EndProcedureToolConfigProceduresValue

### StartProcedureToolConfigProceduresValue

### 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) — Define si las sustituciones del cliente de TTS deben transferirse al agente transferido.
- `preserve_voice_settings` (boolean, optional, default: false) — Define si la voz base, el modelo de TTS y la configuración de voz deben transferirse al agente transferido.

### PhoneNumberTransfer

- `transfer_destination` (PhoneNumberTransferTransferDestination, required)
- `condition` (string, required)
- `custom_sip_headers` (list of PhoneNumberTransferCustomSipHeadersItem, optional) — Cabeceras SIP personalizadas que se incluirán al transferir la llamada. Cada cabecera puede ser un valor estático o una referencia a variable dinámica.
- `transfer_type` (enum, optional, default: conference)
  - Allowed values: `blind`, `conference`, `sip_refer`
- `sip_refer_play_dialtone` (boolean, optional, default: true) — Cuando es True, se reproduce un tono de llamada en el tramo original de la llamada mientras se completa una transferencia SIP REFER. El tono se transmite mediante RTP al par SIP que ejecuta el REFER, así que desactiva esta opción si el sistema receptor (por ejemplo, un SBC o un centro de contacto) no debe oírlo. Cuando está desactivada, la persona que llama oye silencio hasta que se completa la transferencia. Solo para transferencias SIP REFER.
- `uui` (UuiTransferConfig, optional) — Información de usuario a usuario (RFC 7433) para adjuntar a transferencias SIP REFER. Transporta el contexto de la llamada, como identificadores de CRM o el motivo de la escalación, a través del límite de la transferencia.
- `post_dial_digits` (PhoneNumberTransferPostDialDigits, optional) — Dígitos DTMF que se enviarán tras conectar la llamada (por ejemplo, 'ww1234' para una extensión). Puede ser un valor estático o una referencia de variable dinámica. Usa 'w' para una pausa de 0,5 s. Solo es compatible con transferencias de Twilio.
- `phone_number` (string, optional, deprecated)

### WebhookToolApiSchemaConfigOutputRequestHeadersValue

### LiteralJsonSchemaProperty

Propiedad de esquema para tipos JSON literales. IMPORTANTE: Solo puede establecerse UNO de los siguientes campos: description (el LLM proporciona el valor), dynamic_variable (valor de una variable), is_system_provided (el sistema proporciona el valor), constant_value (valor fijo) o is_omitted (se omite el parámetro). Son mutuamente excluyentes.

- `type` (LiteralJsonSchemaPropertyType, required)
- `description` (string, optional, default: ) — La descripción de la propiedad. Cuando se establece, el LLM proporcionará el valor según esta descripción. Es mutuamente excluyente con dynamic_variable, is_system_provided, constant_value e is_omitted.
- `enum` (list of string, optional) — List of allowed string values for string type parameters
- `is_system_provided` (boolean, optional, default: false) — Si es true, el sistema completará el valor en tiempo de ejecución. Lo usan las herramientas de webhook de integración con API para plantillas. Es mutuamente excluyente con description, dynamic_variable, constant_value e is_omitted.
- `dynamic_variable` (string, optional, default: ) — El nombre de la variable dinámica que se usará para el valor de esta propiedad. Es mutuamente excluyente con description, is_system_provided, constant_value e is_omitted.
- `allowed_values` (AllowedValues, optional) — Protección de rechazo del lado del servidor para un valor proporcionado por un LLM: el entorno de ejecución rechaza cualquier valor fuera del conjunto permitido que nombra este objeto, y el conjunto no se muestra al LLM como un enum. Solo se admite cuando el origen del valor es `description`; se rechaza combinarlo con dynamic_variable, is_system_provided, constant_value o is_omitted.
- `constant_value` (LiteralJsonSchemaPropertyConstantValue, optional) — Un valor constante que se utilizará para esta propiedad. Es mutuamente excluyente con description, dynamic_variable, is_system_provided e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si es true, este parámetro se omitirá por completo de la solicitud. Solo es válido para parámetros opcionales. Es mutuamente excluyente con description, dynamic_variable, is_system_provided y constant_value.
- `allowed_values_dynamic_variable` (string, optional, default: , deprecated) — OBSOLETO: usa `allowed_values` en su lugar. Cuando se establece, el LLM proporciona el valor, pero el entorno de ejecución rechaza cualquier valor que no esté presente en la lista de esta variable dinámica (debe ser una matriz JSON como ["ws_alpha", "ws_beta"]). Úsalo para permitir que el LLM elija de un conjunto verificado por el servidor (p. ej., los ID a los que puede acceder el usuario actual). Requiere description; es mutuamente excluyente con dynamic_variable, is_system_provided, constant_value e is_omitted.

### QueryParamsJsonSchemaOutput

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

### ResponseFilter

Configuración para filtrar las respuestas de herramientas antes de que sean visibles para el agente.

- `mode` (enum, optional, default: all) — Controla cómo se filtran las respuestas de las herramientas. 'all' devuelve toda la respuesta, 'allow' devuelve solo las rutas especificadas y 'hide_all' oculta toda la respuesta.
  - Allowed values: `all`, `allow`, `hide_all`
- `filters` (list of string, optional) — Rutas de notación por puntos que se incluirán cuando el modo sea 'allow' (por ejemplo, ['ticket.id', 'ticket.status']).
- `content_type` ("application/json", optional) — Tipo de contenido para el filtrado de respuestas. Solo se filtran las respuestas 'application/json'.

### WebhookToolApiSchemaConfigOutputAuthConnection

Conexión de autenticación opcional que se usará para autenticarse con este webhook

### ContentThresholdGuardrailThreshold

### CustomGuardrailConfigTriggerAction

- `type`: `end_call`
- `type`: `retry`
  - `feedback` (string, optional, default: Your response was blocked by a guardrail that blocks content that matches this condition/category: '{{trigger_reason}}' During your next turn you must tell the user "I'm sorry but I can't answer that question, would you like to know something else?".) — Comentarios personalizados que se inyectarán en el agente al volver a intentarlo tras activar una medida de seguridad.

### LlmLiteralJsonSchemaPropertyType

### AgentConfigOverrideInput

- `first_message` (string, optional) — Si no está vacío, el primer mensaje que dirá el agente. Si está vacío, el agente espera a que el usuario inicie la conversación.
- `language` (string, optional) — Idioma del agente, usado para ASR y TTS
- `max_conversation_duration_message` (string, optional) — Si no está vacío, el mensaje que enviará el agente cuando se alcance la duración máxima de la conversación.
- `prompt` (PromptAgentApiModelOverrideInput, optional) — El prompt del agente

### BuiltInToolsWorkflowOverrideInput

- `transfer_to_agent` (SystemToolConfigInput, optional) — La herramienta de transferencia a agente
- `end_call` (SystemToolConfigInput, optional) — La herramienta para finalizar la llamada
- `language_detection` (SystemToolConfigInput, optional) — La herramienta de detección de idioma
- `transfer_to_number` (SystemToolConfigInput, optional) — La herramienta de transferencia a número
- `skip_turn` (SystemToolConfigInput, optional) — La herramienta para omitir turno
- `play_keypad_touch_tone` (SystemToolConfigInput, optional) — La herramienta de reproducción DTMF
- `voicemail_detection` (SystemToolConfigInput, optional) — La herramienta de detección de buzón de voz

### RagConfigWorkflowOverrideInput

- `enabled` (boolean, optional)
- `embedding_model` (enum, optional, default: e5_mistral_7b_instruct)
  - Allowed values: `e5_mistral_7b_instruct`, `multilingual_e5_large_instruct`
- `max_vector_distance` (double, optional) — Distancia vectorial máxima de los fragmentos recuperados.
- `max_documents_length` (integer, optional) — Longitud total máxima de los fragmentos de documentos recuperados de RAG.
- `max_retrieved_rag_chunks_count` (integer, optional) — Número máximo de fragmentos de documentos RAG que se recuperarán inicialmente del almacén vectorial. Después se filtran según la distancia vectorial y la longitud total.
- `num_candidates` (integer, optional) — Número de candidatos evaluados en la búsqueda vectorial ANN. Un número mayor ofrece mejores resultados, pero también mayor latencia. El valor mínimo recomendado es 100. Si se desactiva, se utiliza el valor predeterminado.
- `query_rewrite_prompt_override` (string, optional) — Prompt personalizado para reformular las consultas de usuario antes de la recuperación RAG. El historial de conversación se añadirá automáticamente al final. Si no se configura, se utilizará el prompt predeterminado.
- `knowledge_base_tool_info` (KnowledgeBaseToolInfo, optional) — Cuando se configura, el agente usa la herramienta knowledge_base en lugar de la herramienta heredada knowledge_base_rag. None significa que el agente no está incluido.

### PromptAgentApiModelWorkflowOverrideInputBackupLlmConfig

Configuración de la cascada de LLM de respaldo. Se puede desactivar, usar los valores predeterminados del sistema o especificar un orden personalizado.

### PromptAgentApiModelWorkflowOverrideInputToolsItem

El tipo de herramienta

- `type`: `api_integration_webhook`
  - `api_integration_connection_id` (string, required)
  - `api_integration_id` (string, required)
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `name` (string, required)
  - `api_schema_overrides` (ApiIntegrationWebhookOverrides, optional) — User overrides applied on top of the base api_schema
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuración de variables dinámicas
  - `execution_mode` (enum, optional, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta. Debe estar entre 5 y 300 segundos, ambos incluidos.
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `tool_version` (string, optional, default: 1.0.0) — La versión de la herramienta de integración de API
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
- `type`: `client`
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuración de variables dinámicas
  - `execution_mode` (enum, optional, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — Si es true, llamar a esta herramienta debe bloquear la conversación hasta que el cliente responda; la respuesta se pasará al LLM. Si es false, continuaremos la conversación sin esperar a que responda el cliente. Esto resulta útil para mostrar contenido a un usuario sin bloquear la conversación.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaPropertyInput, optional) — Esquema de los parámetros que se pasarán al cliente
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo, en segundos, que se espera a que se complete la llamada a la herramienta. Debe estar entre 1 y 120 segundos (ambos incluidos) o ser -1 para esperar indefinidamente la respuesta del cliente (requiere expects_response).
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
- `type`: `mcp`
  - `value` (any, required)
- `type`: `smb`
  - `value` (any, required)
- `type`: `system`
  - `name` (string, required)
  - `params` (SystemToolConfigInputParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `description` (string, optional, default: ) — Descripción de cuándo se debe usar la herramienta y qué hace. Déjalo vacío para usar la descripción predeterminada, optimizada para el tipo de herramienta específico.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta.
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
- `type`: `webhook`
  - `api_schema` (WebhookToolApiSchemaConfigInput, required) — El esquema del webhook saliente, incluidos los parámetros y la especificación de la URL
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuración de variables dinámicas
  - `execution_mode` (enum, optional, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — Si se sigue una redirección desde la ruta de API y se devuelve la respuesta final. Se sigue una única redirección, como una solicitud GET sin el cuerpo de la solicitud; no se envía al destino de la redirección nada configurado en esta herramienta (encabezados, autenticación, certificado de cliente). Tanto la ruta de API como el destino de la redirección deben usar HTTPS. No compatible con herramientas de integración de API.
  - `follow_redirects_allowed_domains` (list of string, optional) — Dominios a los que puede apuntar una redirección; por ejemplo, 'test.example.com'. Es obligatorio al seguir redirecciones y se rechazará cualquier destino que no esté en la lista.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta. Debe estar entre 5 y 300 segundos, ambos incluidos.
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.

### BuiltInToolsWorkflowOverrideOutput

- `transfer_to_agent` (SystemToolConfigOutput, optional) — La herramienta de transferencia a agente
- `end_call` (SystemToolConfigOutput, optional) — La herramienta para finalizar la llamada
- `language_detection` (SystemToolConfigOutput, optional) — La herramienta de detección de idioma
- `transfer_to_number` (SystemToolConfigOutput, optional) — La herramienta de transferencia a número
- `skip_turn` (SystemToolConfigOutput, optional) — La herramienta para omitir turno
- `play_keypad_touch_tone` (SystemToolConfigOutput, optional) — La herramienta de reproducción DTMF
- `voicemail_detection` (SystemToolConfigOutput, optional) — La herramienta de detección de buzón de voz

### RagConfigWorkflowOverrideOutput

- `enabled` (boolean, optional)
- `embedding_model` (enum, optional, default: e5_mistral_7b_instruct)
  - Allowed values: `e5_mistral_7b_instruct`, `multilingual_e5_large_instruct`
- `max_vector_distance` (double, optional) — Distancia vectorial máxima de los fragmentos recuperados.
- `max_documents_length` (integer, optional) — Longitud total máxima de los fragmentos de documentos recuperados de RAG.
- `max_retrieved_rag_chunks_count` (integer, optional) — Número máximo de fragmentos de documentos RAG que se recuperarán inicialmente del almacén vectorial. Después se filtran según la distancia vectorial y la longitud total.
- `num_candidates` (integer, optional) — Número de candidatos evaluados en la búsqueda vectorial ANN. Un número mayor ofrece mejores resultados, pero también mayor latencia. El valor mínimo recomendado es 100. Si se desactiva, se utiliza el valor predeterminado.
- `query_rewrite_prompt_override` (string, optional) — Prompt personalizado para reformular las consultas de usuario antes de la recuperación RAG. El historial de conversación se añadirá automáticamente al final. Si no se configura, se utilizará el prompt predeterminado.
- `knowledge_base_tool_info` (KnowledgeBaseToolInfo, optional) — Cuando se configura, el agente usa la herramienta knowledge_base en lugar de la herramienta heredada knowledge_base_rag. None significa que el agente no está incluido.

### PromptAgentApiModelWorkflowOverrideOutputBackupLlmConfig

Configuración de la cascada de LLM de respaldo. Se puede desactivar, usar los valores predeterminados del sistema o especificar un orden personalizado.

### PromptAgentApiModelWorkflowOverrideOutputToolsItem

El tipo de herramienta

- `type`: `api_integration_webhook`
  - `api_integration_connection_id` (string, required)
  - `api_integration_id` (string, required)
  - `assignments` (list of DynamicVariableAssignment, required) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `dynamic_variables` (DynamicVariablesConfig, required) — Configuración de variables dinámicas
  - `execution_mode` (enum, required, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `interruption_mode` (enum, required, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `name` (string, required)
  - `pre_tool_speech` (enum, required, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, required, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta. Debe estar entre 5 y 300 segundos, ambos incluidos.
  - `tool_call_sound_behavior` (enum, required, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, required, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `tool_version` (string, required, default: 1.0.0) — La versión de la herramienta de integración de API
  - `disable_interruptions` (boolean, required, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, required, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
  - `api_schema_overrides` (ApiIntegrationWebhookOverrides, optional) — User overrides applied on top of the base api_schema
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `type`: `client`
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuración de variables dinámicas
  - `execution_mode` (enum, optional, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — Si es true, llamar a esta herramienta debe bloquear la conversación hasta que el cliente responda; la respuesta se pasará al LLM. Si es false, continuaremos la conversación sin esperar a que responda el cliente. Esto resulta útil para mostrar contenido a un usuario sin bloquear la conversación.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaPropertyOutput, optional) — Esquema de los parámetros que se pasarán al cliente
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo, en segundos, que se espera a que se complete la llamada a la herramienta. Debe estar entre 1 y 120 segundos (ambos incluidos) o ser -1 para esperar indefinidamente la respuesta del cliente (requiere expects_response).
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
- `type`: `mcp`
  - `value` (any, required)
- `type`: `smb`
  - `value` (any, required)
- `type`: `system`
  - `name` (string, required)
  - `params` (SystemToolConfigOutputParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `description` (string, optional, default: ) — Descripción de cuándo se debe usar la herramienta y qué hace. Déjalo vacío para usar la descripción predeterminada, optimizada para el tipo de herramienta específico.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta.
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.
- `type`: `webhook`
  - `api_schema` (WebhookToolApiSchemaConfigOutput, required) — El esquema del webhook saliente, incluidos los parámetros y la especificación de la URL
  - `description` (string, required) — Descripción de cuándo se debe usar la herramienta y qué hace.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuración de variables dinámicas
  - `execution_mode` (enum, optional, default: immediate) — Determina cuándo y cómo se ejecuta la herramienta: 'immediate' ejecuta la herramienta de inmediato cuando la solicita el LLM, 'post_tool_speech' espera a que el agente termine de hablar antes de ejecutarla y 'async' ejecuta la herramienta en segundo plano sin bloquear; es la mejor opción para operaciones de larga duración.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — Si se sigue una redirección desde la ruta de API y se devuelve la respuesta final. Se sigue una única redirección, como una solicitud GET sin el cuerpo de la solicitud; no se envía al destino de la redirección nada configurado en esta herramienta (encabezados, autenticación, certificado de cliente). Tanto la ruta de API como el destino de la redirección deben usar HTTPS. No compatible con herramientas de integración de API.
  - `follow_redirects_allowed_domains` (list of string, optional) — Dominios a los que puede apuntar una redirección; por ejemplo, 'test.example.com'. Es obligatorio al seguir redirecciones y se rechazará cualquier destino que no esté en la lista.
  - `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta. Debe estar entre 5 y 300 segundos, ambos incluidos.
  - `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.

### ArrayJsonSchemaPropertyOutput

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Cuando se configura, todo el parámetro se completa a partir de esta variable dinámica en tiempo de ejecución. Es mutuamente excluyente con description (valor proporcionado por el LLM), constant_value e is_omitted.
- `constant_value` (list of any, optional) — Cuando se configura, toda la matriz usa este valor constante en tiempo de ejecución. Es mutuamente excluyente con description (matriz proporcionada por el LLM), dynamic_variable e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si es true, este parámetro se omitirá por completo de la solicitud. Solo es válido para parámetros opcionales. Es mutuamente excluyente con description, dynamic_variable y constant_value.
- `type` ("array", optional)
- `items` (ArrayJsonSchemaPropertyOutputItems, optional) — Esquema de los elementos de la matriz.

### RequiredConstraint

Un conjunto de campos que deben estar todos presentes para cumplir esta restricción.

- `required` (list of string, required)

### ProcedureDraftRef

- `procedure_id` (string, required) — ID del procedimiento
- `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) — El nombre de la cabecera SIP (p. ej., «X-Customer-ID»)
  - `value` (string, required) — El nombre de la variable dinámica que se va a resolver
- `type`: `static`
  - `key` (string, required) — El nombre de la cabecera SIP (p. ej., «X-Customer-ID»)
  - `value` (string, required) — El valor de la cabecera

### PhoneNumberTransferPostDialDigits

- `type`: `dynamic`
  - `value` (string, required) — El nombre de la variable dinámica que se va a resolver
- `type`: `static`
  - `value` (string, required) — Dígitos DTMF que se enviarán tras conectar la llamada (por ejemplo, 'ww1234' para una extensión)

### LiteralJsonSchemaPropertyType

### LiteralJsonSchemaPropertyConstantValue

Un valor constante que se utilizará para esta propiedad. Es mutuamente excluyente con description, dynamic_variable, is_system_provided e is_omitted.

### PromptAgentApiModelOverrideInput

- `prompt` (string, optional) — El prompt del agente
- `llm` (enum, optional) — El LLM que se consultará con el prompt y el historial de chat. Si utilizas residencia de datos, el LLM debe ser compatible con el entorno de residencia de datos
  - 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`
- `tool_ids` (list of string, optional) — Una lista de ID de herramientas utilizadas por el agente.
- `tool_ids_strict` (boolean, optional) — Solo se aplica como una anulación de conversación y se permite siempre que se pueda anular tool_ids. Cuando es true, el valor de tool_ids anulado es la lista completa de herramientas permitidas en la conversación, incluidas las herramientas de los nodos de workflow. Se ignora cuando se configura en el agente.
- `native_mcp_server_ids` (list of string, optional) — Una lista de ID de servidores MCP nativos que utilizará el agente
- `knowledge_base` (list of KnowledgeBaseLocator, optional) — Una lista de bases de conocimiento que utilizará el agente

### SystemToolConfigInput

Una herramienta del sistema es una herramienta que se utiliza para llamar a un método del sistema en el servidor

- `name` (string, required)
- `params` (SystemToolConfigInputParams, required)
- `type` ("system", optional) — El tipo de herramienta
- `description` (string, optional, default: ) — Descripción de cuándo se debe usar la herramienta y qué hace. Déjalo vacío para usar la descripción predeterminada, optimizada para el tipo de herramienta específico.
- `response_timeout_secs` (integer, optional, default: 20) — El tiempo máximo en segundos que se espera a que finalice la llamada a la herramienta.
- `interruption_mode` (enum, optional, default: allow) — Controla si el usuario puede interrumpir al agente durante esta llamada a la herramienta. 'allow' (predeterminado) permite al usuario interrumpir en cualquier momento, 'disable_during_tool' suprime las interrupciones solo mientras se ejecuta la herramienta y 'disable_during_tool_and_turn' las suprime mientras se ejecuta la herramienta y durante la respuesta posterior del agente.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `pre_tool_speech` (enum, optional, default: auto) — Controla si el agente habla antes de llamar a esta herramienta. 'auto' (predeterminado) decide según la latencia reciente de la herramienta, 'force' siempre hace que el agente hable y 'off' lo desactiva por completo independientemente de la latencia.
  - Allowed values: `auto`, `force`, `off`
- `assignments` (list of DynamicVariableAssignment, optional) — Configuración para extraer valores de las respuestas de herramientas y asignarlos a variables dinámicas
- `tool_call_sound` (enum, optional) — Tipo de sonido de llamada a herramienta predefinido que se reproduce durante la ejecución. Si no se especifica, no se reproducirá ningún sonido de llamada a herramienta.
  - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `tool_call_sound_behavior` (enum, optional, default: auto) — Determina cuándo debe reproducirse el sonido de llamada de la herramienta. 'auto' solo se reproduce cuando hay voz antes de usar la herramienta; 'always' se reproduce en cada llamada de herramienta.
  - Allowed values: `auto`, `always`
- `tool_error_handling_mode` (enum, optional, default: auto) — Controla cómo se procesan los errores de las herramientas antes de compartirlos con el agente. 'auto' determina el tratamiento según el tipo de herramienta (resumido para integraciones nativas y oculto para las demás), 'summarized' envía un resumen generado por un LLM, 'passthrough' envía el error sin procesar y 'hide' no comparte el error con el agente.
  - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
- `disable_interruptions` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `interruption_mode` en su lugar. Si es true, el usuario no podrá interrumpir al agente mientras se ejecute esta herramienta.
- `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — OBSOLETO: usa `pre_tool_speech` en su lugar. Si es true, el agente hablará antes de llamar a la herramienta.

### BackupLlmDefault

- `preference` ("default", optional)

### BackupLlmDisabled

- `preference` ("disabled", optional)

### BackupLlmOverride

- `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`
- `preference` ("override", optional)

### ObjectJsonSchemaPropertyInput

- `property_kind` (enum, optional, default: object)
  - Allowed values: `array`, `object`
- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Cuando se configura, todo el parámetro se completa a partir de esta variable dinámica en tiempo de ejecución. Es mutuamente excluyente con description (valor proporcionado por el LLM), constant_value e is_omitted.
- `constant_value` (map from string to any, optional) — Cuando se configura, todo el objeto usa este valor JSON constante en tiempo de ejecución. Es mutuamente excluyente con description (objeto proporcionado por el LLM), dynamic_variable e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si es true, este parámetro se omitirá por completo de la solicitud. Solo es válido para parámetros opcionales. Es mutuamente excluyente con description, dynamic_variable y constant_value.
- `type` ("object", optional)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyInputPropertiesValue, optional)
- `required_constraints` (RequiredConstraints, optional) — Contenedor para restricciones de composición anyOf/allOf limitadas a campos obligatorios.

### SystemToolConfigInputParams

- `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 no se produce un cambio de idioma en los 2 primeros turnos del usuario, los intentos posteriores fallarán y la conversación permanecerá en el idioma actual. Si el idioma cambia durante esos turnos, los cambios posteriores seguirán estando disponibles. Actívalo para reducir la posibilidad de cambios erróneos.
- `system_tool_type`: `play_keypad_touch_tone`
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — Si es true, el agente no generará más voz después de reproducir tonos DTMF. Esto evita que la voz del agente interfiera con los sistemas IVR.
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — Envía tonos DTMF como eventos RTP fuera de banda (RFC 4733) en lugar de audio dentro de banda. Solo es efectivo para números importados de un troncal SIP.
- `system_tool_type`: `skip_turn`
  - `wait_timeout_secs` (double, optional, default: -1) — Segundos de espera tras skip_turn antes de que el agente genere una comprobación contextual. El temporizador «Finalizar conversación tras un periodo de silencio» se pausa durante la espera. -1 desactiva la espera: después de skip_turn, el agente permanece en silencio hasta que hable quien llama y el temporizador sigue en marcha. Solo se aplica a conversaciones de voz.
- `system_tool_type`: `start_procedure`
  - `procedures` (map from string to StartProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `transfer_to_agent`
  - `transfers` (list of AgentTransferInput, required)
- `system_tool_type`: `transfer_to_number`
  - `transfers` (list of PhoneNumberTransfer, required)
  - `enable_client_message` (boolean, optional, default: true) — Si se reproduce un mensaje al cliente mientras espera la transferencia. El valor predeterminado es true por compatibilidad con versiones anteriores.
- `system_tool_type`: `voicemail_detection`
  - `voicemail_message` (string, optional) — Mensaje opcional que se dejará en el buzón de voz cuando se detecte. Si no se proporciona, la llamada finalizará inmediatamente al detectar el buzón de voz. Admite variables dinámicas (por ejemplo, \{\{system\_\_time}}, \{\{system\_\_call\_duration\_secs}}, \{\{custom\_variable}}).

### WebhookToolApiSchemaConfigInput

- `url` (string, required) — La URL a la que se enviará el webhook. Puede incluir parámetros de ruta, p. ej., [https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigInputRequestHeadersValue, optional) — Cabeceras que deben incluirse en la solicitud.
- `method` (enum, optional, default: GET) — El método HTTP que se usará para el webhook
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — Esquema de los parámetros de ruta, si los hay. Las claves deben coincidir con los marcadores de posición de la URL.
- `query_params_schema` (QueryParamsJsonSchemaInput, optional) — Esquema de los parámetros de consulta, si los hay. Se añadirán al final de la URL como parámetros de consulta. Nota: las propiedades de un parámetro de consulta deben ser todas de tipos literales.
- `request_body_schema` (ObjectJsonSchemaPropertyInput, optional) — Esquema de los parámetros del cuerpo, si los hay. Se utiliza para solicitudes POST/PATCH/PUT. El esquema debe ser un objeto que se enviará como cuerpo JSON.
- `response_body_schema` (ObjectJsonSchemaPropertyInput, optional) — Esquema que describe la estructura esperada del cuerpo de la respuesta. Solo para documentación; no se muestra al LLM.
- `response_filter` (ResponseFilter, optional) — Filtro opcional de lista de permitidos que se aplica a la respuesta antes de que la vea el LLM, para que las respuestas extensas no saturen el contexto. De forma predeterminada, se usa la respuesta completa.
- `content_type` (enum, optional, default: application/json) — Tipo de contenido del cuerpo de la solicitud. Solo se aplica a solicitudes POST/PUT/PATCH.
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — Marcadores de posición de URL resueltos desde la conexión de autenticación (por ejemplo, secretos inyectados mediante UrlSecretAuthConnection) en lugar de desde path_params_schema.
- `auth_connection` (WebhookToolApiSchemaConfigInputAuthConnection, optional) — Conexión de autenticación opcional que se usará para autenticarse con este webhook

### ArrayJsonSchemaPropertyOutputItems

Esquema de los elementos de la matriz.

### ObjectJsonSchemaPropertyInputPropertiesValue

### AgentTransferInput

- `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) — Define si las sustituciones del cliente de TTS deben transferirse al agente transferido.
- `preserve_voice_settings` (boolean, optional, default: false) — Define si la voz base, el modelo de TTS y la configuración de voz deben transferirse al agente transferido.

### WebhookToolApiSchemaConfigInputRequestHeadersValue

### QueryParamsJsonSchemaInput

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

### WebhookToolApiSchemaConfigInputAuthConnection

Conexión de autenticación opcional que se usará para autenticarse con este webhook

### ArrayJsonSchemaPropertyInput

- `property_kind` (enum, optional, default: array)
  - Allowed values: `array`, `object`
- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Cuando se configura, todo el parámetro se completa a partir de esta variable dinámica en tiempo de ejecución. Es mutuamente excluyente con description (valor proporcionado por el LLM), constant_value e is_omitted.
- `constant_value` (list of any, optional) — Cuando se configura, toda la matriz usa este valor constante en tiempo de ejecución. Es mutuamente excluyente con description (matriz proporcionada por el LLM), dynamic_variable e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Si es true, este parámetro se omitirá por completo de la solicitud. Solo es válido para parámetros opcionales. Es mutuamente excluyente con description, dynamic_variable y constant_value.
- `type` ("array", optional)
- `items` (ArrayJsonSchemaPropertyInputItems, optional) — Esquema de los elementos de la matriz.

### ArrayJsonSchemaPropertyInputItems

Esquema de los elementos de la matriz.

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "agent_id": "agent_7101k5zvyjhmfg983brhmhkd98n6",
  "name": "My Agent",
  "conversation_config": {
    "asr": {
      "quality": "high",
      "provider": "scribe_realtime",
      "user_input_audio_format": "pcm_16000",
      "keywords": [
        "hello",
        "world"
      ]
    },
    "turn": {
      "turn_timeout": 7,
      "initial_wait_time": 1.1,
      "silence_end_call_timeout": -1,
      "turn_eagerness": "normal",
      "spelling_patience": "auto",
      "speculative_turn": false,
      "retranscribe_on_turn_timeout": false,
      "turn_model": "turn_v3",
      "interruption_ignore_terms": [
        "interruption_ignore_terms"
      ],
      "interruption_ignore_term_languages": [
        "interruption_ignore_term_languages"
      ],
      "merge_with_default_ignore_terms": false,
      "transcribe_on_disabled_interruptions": false,
      "soft_timeout_config": {
        "timeout_seconds": -1,
        "message": "Hhmmmm...yeah."
      }
    },
    "tts": {
      "model_id": "eleven_turbo_v2",
      "voice_id": "cjVigY5qzO86Huf0OWal",
      "supported_voices": [
        {
          "label": "label",
          "voice_id": "voice_id"
        }
      ],
      "expressive_mode": true,
      "suggested_audio_tags": [
        {
          "tag": "tag"
        }
      ],
      "agent_output_audio_format": "pcm_16000",
      "optimize_streaming_latency": 3,
      "stability": 0.5,
      "speed": 1,
      "similarity_boost": 0.8,
      "text_normalisation_type": "system_prompt",
      "pronunciation_dictionary_locators": [
        {
          "pronunciation_dictionary_id": "pronunciation_dictionary_id",
          "version_id": null
        }
      ],
      "enable_phoneme_tags": true,
      "audio_effects": {
        "distance": 1.1,
        "send_level": 1.1,
        "pan": 1.1,
        "filter_preset_id": null,
        "environment_id": null,
        "background_noise_id": null
      }
    },
    "conversation": {
      "text_only": true,
      "max_duration_seconds": 600,
      "client_events": [
        "audio",
        "interruption"
      ],
      "monitoring_enabled": true,
      "monitoring_events": [
        "conversation_initiation_metadata"
      ],
      "source_attribution": true
    },
    "language_presets": {
      "key": {
        "overrides": {
          "asr": {
            "keywords": [
              "hello",
              "world"
            ]
          },
          "turn": {
            "soft_timeout_config": {
              "message": "Hhmmmm...yeah."
            }
          },
          "tts": {
            "model_id": "eleven_turbo_v2",
            "voice_id": "cjVigY5qzO86Huf0OWal",
            "stability": 0.5,
            "speed": 1,
            "similarity_boost": 0.8,
            "pronunciation_dictionary_locators": [
              {
                "pronunciation_dictionary_id": "pronunciation_dictionary_id",
                "version_id": null
              }
            ]
          },
          "conversation": {
            "max_duration_seconds": 600
          },
          "agent": {
            "first_message": "Hello, how can I help you today?",
            "language": "en",
            "prompt": {
              "prompt": "You are a helpful assistant that can answer questions about the topic of the conversation.",
              "llm": "gemini-2.0-flash-001",
              "tool_ids": [
                "tool_ids"
              ],
              "knowledge_base": [
                {
                  "type": "file",
                  "name": "My Knowledge Base",
                  "id": "123",
                  "usage_mode": "auto"
                }
              ]
            }
          }
        }
      }
    },
    "agent": {
      "first_message": "Hello, how can I help you today?",
      "language": "en",
      "hinglish_mode": true,
      "disable_first_message_interruptions": false,
      "max_conversation_duration_message": "max_conversation_duration_message",
      "prompt": {
        "prompt": "You are a helpful assistant that can answer questions about the topic of the conversation.",
        "llm": "gemini-2.0-flash-001",
        "temperature": 0,
        "max_tokens": -1,
        "tool_ids": [
          "tool_ids"
        ],
        "built_in_tools": {
          "transfer_to_agent": {
            "name": "end_call",
            "params": {
              "system_tool_type": "end_call"
            },
            "type": "system",
            "description": "",
            "assignments": [
              {
                "dynamic_variable": "user_name",
                "value_path": "user.name",
                "source": "response",
                "sanitize": false,
                "preserve_native_type": false
              }
            ]
          },
          "end_call": {
            "name": "end_call",
            "params": {
              "system_tool_type": "end_call"
            },
            "type": "system",
            "description": "",
            "assignments": [
              {
                "dynamic_variable": "user_name",
                "value_path": "user.name",
                "source": "response",
                "sanitize": false,
                "preserve_native_type": false
              }
            ]
          },
          "language_detection": {
            "name": "end_call",
            "params": {
              "system_tool_type": "end_call"
            },
            "type": "system",
            "description": "",
            "assignments": [
              {
                "dynamic_variable": "user_name",
                "value_path": "user.name",
                "source": "response",
                "sanitize": false,
                "preserve_native_type": false
              }
            ]
          },
          "transfer_to_number": {
            "name": "end_call",
            "params": {
              "system_tool_type": "end_call"
            },
            "type": "system",
            "description": "",
            "assignments": [
              {
                "dynamic_variable": "user_name",
                "value_path": "user.name",
                "source": "response",
                "sanitize": false,
                "preserve_native_type": false
              }
            ]
          },
          "skip_turn": {
            "name": "end_call",
            "params": {
              "system_tool_type": "end_call"
            },
            "type": "system",
            "description": "",
            "assignments": [
              {
                "dynamic_variable": "user_name",
                "value_path": "user.name",
                "source": "response",
                "sanitize": false,
                "preserve_native_type": false
              }
            ]
          },
          "play_keypad_touch_tone": {
            "name": "end_call",
            "params": {
              "system_tool_type": "end_call"
            },
            "type": "system",
            "description": "",
            "assignments": [
              {
                "dynamic_variable": "user_name",
                "value_path": "user.name",
                "source": "response",
                "sanitize": false,
                "preserve_native_type": false
              }
            ]
          },
          "voicemail_detection": {
            "name": "end_call",
            "params": {
              "system_tool_type": "end_call"
            },
            "type": "system",
            "description": "",
            "assignments": [
              {
                "dynamic_variable": "user_name",
                "value_path": "user.name",
                "source": "response",
                "sanitize": false,
                "preserve_native_type": false
              }
            ]
          }
        },
        "knowledge_base": [
          {
            "type": "file",
            "name": "My Knowledge Base",
            "id": "123",
            "usage_mode": "auto"
          }
        ],
        "rag": {
          "max_vector_distance": 0.5,
          "max_retrieved_rag_chunks_count": 5
        }
      }
    }
  },
  "metadata": {
    "created_at_unix_secs": 1,
    "updated_at_unix_secs": 1
  },
  "platform_settings": {
    "evaluation": {
      "criteria": [
        {
          "id": "criterion_binary_001",
          "name": "Issue resolved",
          "conversation_goal_prompt": "Determine whether the agent fully resolved the user's issue.",
          "use_knowledge_base": false,
          "scope": "conversation",
          "scoring_mode": "binary",
          "max_score": 100
        }
      ]
    },
    "widget": {
      "variant": "tiny",
      "placement": "top-left",
      "expandable": "never",
      "avatar": {
        "type": "orb",
        "color_1": "#2792dc",
        "color_2": "#9ce6e6"
      },
      "feedback_mode": "none",
      "bg_color": "bg_color",
      "text_color": "text_color",
      "btn_color": "btn_color",
      "btn_text_color": "btn_text_color",
      "border_color": "border_color",
      "focus_color": "focus_color",
      "border_radius": 1,
      "btn_radius": 1,
      "action_text": "action_text",
      "start_call_text": "start_call_text",
      "end_call_text": "end_call_text",
      "expand_text": "expand_text",
      "listening_text": "listening_text",
      "speaking_text": "speaking_text",
      "shareable_page_text": "shareable_page_text",
      "shareable_page_show_terms": true,
      "terms_text": "terms_text",
      "terms_html": "terms_html",
      "terms_key": "terms_key",
      "show_avatar_when_collapsed": true,
      "disable_banner": true,
      "override_link": "override_link",
      "markdown_link_allowed_hosts": [
        {
          "hostname": "hostname"
        }
      ],
      "markdown_link_include_www": true,
      "markdown_link_allow_http": true,
      "mic_muting_enabled": true,
      "transcript_enabled": true,
      "text_input_enabled": true,
      "conversation_mode_toggle_enabled": true,
      "default_expanded": true,
      "always_expanded": true,
      "dismissible": true,
      "show_agent_status": true,
      "show_conversation_id": true,
      "strip_audio_tags": true,
      "syntax_highlight_theme": "light",
      "show_resize_button": true,
      "end_confirmation_enabled": true,
      "language_selector": false,
      "supports_text_only": true,
      "custom_avatar_path": "https://example.com/avatar.png",
      "language_presets": {
        "key": {}
      }
    },
    "data_collection": {
      "key": {
        "type": "string",
        "description": "My property",
        "is_system_provided": false,
        "dynamic_variable": "",
        "constant_value": ""
      }
    },
    "data_collection_scopes": {
      "key": "conversation"
    },
    "analysis_items": {
      "evaluation_criteria": [
        {
          "source": "system",
          "analysis_item_id": "__system_eval_criteria_sentiment"
        }
      ],
      "data_collection": [
        {
          "source": "system",
          "analysis_item_id": "__system_data_collection_topic"
        }
      ]
    },
    "overrides": {
      "custom_llm_extra_body": true,
      "enable_conversation_initiation_client_data_from_webhook": true,
      "enable_starting_workflow_node_id_from_client": true,
      "enable_procedure_ids_from_client": true
    },
    "workspace_overrides": {
      "conversation_initiation_client_data_webhook": {
        "url": "https://example.com/webhook",
        "request_headers": {
          "Content-Type": "application/json"
        }
      }
    },
    "testing": {
      "attached_tests": [
        {
          "test_id": "test_123",
          "workflow_node_id": "node_abc"
        },
        {
          "test_id": "test_456"
        }
      ]
    },
    "archived": true,
    "guardrails": {
      "version": "1"
    },
    "summary_language": "summary_language",
    "auto_translate_transcript_to_app_language": true,
    "auth": {
      "enable_auth": true,
      "allowlist": [
        {
          "hostname": "https://example.com"
        }
      ],
      "require_origin_header": true,
      "shareable_token": "1234567890"
    },
    "call_limits": {
      "agent_concurrency_limit": -1,
      "daily_limit": 100000,
      "bursting_enabled": true
    },
    "queueing_config": {
      "enabled": true,
      "wait_timeout_seconds": 1,
      "hold_audio": {
        "audio_path": "audio_path",
        "audio_url": "audio_url",
        "original_filename": "original_filename",
        "duration_secs": 1.1,
        "size_bytes": 1
      }
    },
    "privacy": {
      "record_voice": true,
      "retention_days": -1,
      "delete_transcript_and_pii": false,
      "delete_audio": false,
      "apply_to_existing_conversations": false,
      "zero_retention_mode": false
    },
    "trust_context": "unknown",
    "analysis_llm": "gpt-4o-mini",
    "alerting": {
      "monitor_configs": {
        "key": {}
      },
      "auto_resolve_after_inactive_minutes": 1,
      "notifiers": [
        {
          "type": "webhook",
          "webhook_id": "webhook_id"
        }
      ]
    },
    "safety": {
      "is_blocked_ivc": true,
      "is_blocked_non_ivc": true,
      "ignore_safety_evaluation": true
    }
  },
  "phone_numbers": [
    {
      "provider": "exotel",
      "label": "Exotel Outbound",
      "phone_number": "+919999999999",
      "phone_number_id": "phnum_X3Pbu5gP6NNKBscdCdwB",
      "assigned_agent": {
        "agent_id": "F3Pbu5gP6NNKBscdCdwB",
        "agent_name": "My Agent"
      }
    }
  ],
  "whatsapp_accounts": [
    {
      "business_account_id": "business_account_id",
      "phone_number_id": "phone_number_id",
      "business_account_name": "business_account_name",
      "phone_number_name": "phone_number_name",
      "phone_number": "phone_number",
      "account_type": "cloud_api",
      "assigned_agent_id": "assigned_agent_id",
      "enable_messaging": true,
      "enable_audio_message_response": true,
      "enable_typing_indicator": true,
      "assigned_agent_name": "assigned_agent_name",
      "is_token_expired": true
    }
  ],
  "workflow": {
    "edges": {
      "entry_to_tool_a": {
        "source": "entry_node",
        "target": "tool_node_a",
        "forward_condition": {
          "type": "llm",
          "condition": "User's last message contains a question about our pricing.",
          "label": null
        },
        "backward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        }
      },
      "start_to_entry": {
        "source": "start_node",
        "target": "entry_node",
        "forward_condition": {
          "type": "unconditional",
          "label": null
        },
        "backward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        }
      },
      "tool_a_to_failure": {
        "source": "tool_node_a",
        "target": "failure_node",
        "forward_condition": {
          "type": "result",
          "successful": true,
          "label": null
        },
        "backward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        }
      },
      "tool_a_to_tool_b": {
        "source": "tool_node_a",
        "target": "tool_node_b",
        "forward_condition": {
          "type": "result",
          "successful": true,
          "label": null
        },
        "backward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        }
      },
      "tool_b_to_agent_transfer": {
        "source": "tool_node_b",
        "target": "success_transfer",
        "forward_condition": {
          "type": "unconditional",
          "label": null
        },
        "backward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        }
      },
      "tool_b_to_conversation": {
        "source": "tool_node_b",
        "target": "success_conversation",
        "forward_condition": {
          "type": "llm",
          "condition": "User's last message contains a question about our pricing.",
          "label": null
        },
        "backward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        }
      },
      "tool_b_to_end": {
        "source": "tool_node_b",
        "target": "success_end",
        "forward_condition": {
          "type": "llm",
          "condition": "User's last message contains a question about our pricing.",
          "label": null
        },
        "backward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        }
      },
      "tool_b_to_phone": {
        "source": "tool_node_b",
        "target": "success_phone",
        "forward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        },
        "backward_condition": {
          "type": "expression",
          "expression": {
            "type": "and_operator",
            "children": []
          },
          "label": null
        }
      }
    },
    "nodes": {
      "entry_node": {
        "type": "override_agent",
        "additional_knowledge_base": [
          {
            "type": "file",
            "name": "My Knowledge Base",
            "id": "123",
            "usage_mode": "auto"
          }
        ],
        "additional_prompt": "additional_prompt",
        "additional_tool_ids": [
          "additional_tool_ids"
        ],
        "conversation_config": {
          "asr": {
            "quality": "high",
            "provider": "scribe_realtime",
            "user_input_audio_format": "pcm_16000",
            "keywords": [
              "hello",
              "world"
            ]
          },
          "turn": {
            "turn_timeout": 7,
            "silence_end_call_timeout": -1,
            "turn_eagerness": "normal",
            "spelling_patience": "auto",
            "speculative_turn": false,
            "retranscribe_on_turn_timeout": false,
            "turn_model": "turn_v3",
            "interruption_ignore_terms": [
              "interruption_ignore_terms"
            ],
            "interruption_ignore_term_languages": [
              "interruption_ignore_term_languages"
            ],
            "merge_with_default_ignore_terms": false,
            "transcribe_on_disabled_interruptions": false,
            "soft_timeout_config": {
              "timeout_seconds": -1,
              "message": "Hhmmmm...yeah.",
              "use_llm_generated_message": false
            }
          },
          "tts": {
            "model_id": "eleven_turbo_v2",
            "voice_id": "cjVigY5qzO86Huf0OWal",
            "agent_output_audio_format": "pcm_16000",
            "optimize_streaming_latency": 3,
            "stability": 0.5,
            "speed": 1,
            "similarity_boost": 0.8,
            "pronunciation_dictionary_locators": [
              {
                "pronunciation_dictionary_id": "pronunciation_dictionary_id",
                "version_id": null
              }
            ]
          },
          "conversation": {
            "max_duration_seconds": 600,
            "client_events": [
              "audio",
              "interruption"
            ]
          },
          "agent": {
            "first_message": "Hello, how can I help you today?",
            "language": "en",
            "dynamic_variables": {
              "dynamic_variable_placeholders": {
                "user_name": "John Doe"
              }
            },
            "disable_first_message_interruptions": false,
            "prompt": {
              "prompt": "You are a helpful assistant that can answer questions about the topic of the conversation.",
              "llm": "gemini-2.0-flash-001",
              "temperature": 0,
              "max_tokens": -1,
              "tool_ids": [
                "tool_ids"
              ],
              "built_in_tools": {
                "transfer_to_agent": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "end_call": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "language_detection": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "transfer_to_number": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "skip_turn": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "play_keypad_touch_tone": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "voicemail_detection": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                }
              },
              "knowledge_base": [
                {
                  "type": "file",
                  "name": "My Knowledge Base",
                  "id": "123",
                  "usage_mode": "auto"
                }
              ],
              "tools": [
                {
                  "type": "api_integration_webhook",
                  "api_integration_connection_id": "api_integration_connection_id",
                  "api_integration_id": "api_integration_id",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ],
                  "description": "description",
                  "dynamic_variables": {
                    "dynamic_variable_placeholders": {
                      "user_name": "John Doe"
                    }
                  },
                  "execution_mode": "immediate",
                  "interruption_mode": "allow",
                  "name": "name",
                  "pre_tool_speech": "auto",
                  "response_timeout_secs": 1,
                  "tool_call_sound_behavior": "auto",
                  "tool_error_handling_mode": "auto",
                  "tool_version": "tool_version",
                  "disable_interruptions": true,
                  "force_pre_tool_speech": true,
                  "api_schema_overrides": null,
                  "tool_call_sound": null
                }
              ]
            }
          }
        },
        "edge_order": [
          "edge_order"
        ],
        "entry_behavior": "generate_immediately",
        "label": "label",
        "position": {
          "x": 1.1,
          "y": 1.1
        }
      },
      "failure_node": {
        "type": "override_agent",
        "additional_knowledge_base": [
          {
            "type": "file",
            "name": "My Knowledge Base",
            "id": "123",
            "usage_mode": "auto"
          }
        ],
        "additional_prompt": "additional_prompt",
        "additional_tool_ids": [
          "additional_tool_ids"
        ],
        "conversation_config": {
          "asr": {
            "quality": "high",
            "provider": "scribe_realtime",
            "user_input_audio_format": "pcm_16000",
            "keywords": [
              "hello",
              "world"
            ]
          },
          "turn": {
            "turn_timeout": 7,
            "silence_end_call_timeout": -1,
            "turn_eagerness": "normal",
            "spelling_patience": "auto",
            "speculative_turn": false,
            "retranscribe_on_turn_timeout": false,
            "turn_model": "turn_v3",
            "interruption_ignore_terms": [
              "interruption_ignore_terms"
            ],
            "interruption_ignore_term_languages": [
              "interruption_ignore_term_languages"
            ],
            "merge_with_default_ignore_terms": false,
            "transcribe_on_disabled_interruptions": false,
            "soft_timeout_config": {
              "timeout_seconds": -1,
              "message": "Hhmmmm...yeah.",
              "use_llm_generated_message": false
            }
          },
          "tts": {
            "model_id": "eleven_turbo_v2",
            "voice_id": "cjVigY5qzO86Huf0OWal",
            "agent_output_audio_format": "pcm_16000",
            "optimize_streaming_latency": 3,
            "stability": 0.5,
            "speed": 1,
            "similarity_boost": 0.8,
            "pronunciation_dictionary_locators": [
              {
                "pronunciation_dictionary_id": "pronunciation_dictionary_id",
                "version_id": null
              }
            ]
          },
          "conversation": {
            "max_duration_seconds": 600,
            "client_events": [
              "audio",
              "interruption"
            ]
          },
          "agent": {
            "first_message": "Hello, how can I help you today?",
            "language": "en",
            "dynamic_variables": {
              "dynamic_variable_placeholders": {
                "user_name": "John Doe"
              }
            },
            "disable_first_message_interruptions": false,
            "prompt": {
              "prompt": "You are a helpful assistant that can answer questions about the topic of the conversation.",
              "llm": "gemini-2.0-flash-001",
              "temperature": 0,
              "max_tokens": -1,
              "tool_ids": [
                "tool_ids"
              ],
              "built_in_tools": {
                "transfer_to_agent": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "end_call": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "language_detection": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "transfer_to_number": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "skip_turn": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "play_keypad_touch_tone": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "voicemail_detection": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                }
              },
              "knowledge_base": [
                {
                  "type": "file",
                  "name": "My Knowledge Base",
                  "id": "123",
                  "usage_mode": "auto"
                }
              ],
              "tools": [
                {
                  "type": "api_integration_webhook",
                  "api_integration_connection_id": "api_integration_connection_id",
                  "api_integration_id": "api_integration_id",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ],
                  "description": "description",
                  "dynamic_variables": {
                    "dynamic_variable_placeholders": {
                      "user_name": "John Doe"
                    }
                  },
                  "execution_mode": "immediate",
                  "interruption_mode": "allow",
                  "name": "name",
                  "pre_tool_speech": "auto",
                  "response_timeout_secs": 1,
                  "tool_call_sound_behavior": "auto",
                  "tool_error_handling_mode": "auto",
                  "tool_version": "tool_version",
                  "disable_interruptions": true,
                  "force_pre_tool_speech": true,
                  "api_schema_overrides": null,
                  "tool_call_sound": null
                }
              ]
            }
          }
        },
        "edge_order": [
          "edge_order"
        ],
        "entry_behavior": "generate_immediately",
        "label": "label",
        "position": {
          "x": 1.1,
          "y": 1.1
        }
      },
      "start_node": {
        "type": "start",
        "edge_order": [
          "edge_order"
        ],
        "position": {
          "x": 1.1,
          "y": 1.1
        }
      },
      "success_conversation": {
        "type": "override_agent",
        "additional_knowledge_base": [
          {
            "type": "file",
            "name": "My Knowledge Base",
            "id": "123",
            "usage_mode": "auto"
          }
        ],
        "additional_prompt": "additional_prompt",
        "additional_tool_ids": [
          "additional_tool_ids"
        ],
        "conversation_config": {
          "asr": {
            "quality": "high",
            "provider": "scribe_realtime",
            "user_input_audio_format": "pcm_16000",
            "keywords": [
              "hello",
              "world"
            ]
          },
          "turn": {
            "turn_timeout": 7,
            "silence_end_call_timeout": -1,
            "turn_eagerness": "normal",
            "spelling_patience": "auto",
            "speculative_turn": false,
            "retranscribe_on_turn_timeout": false,
            "turn_model": "turn_v3",
            "interruption_ignore_terms": [
              "interruption_ignore_terms"
            ],
            "interruption_ignore_term_languages": [
              "interruption_ignore_term_languages"
            ],
            "merge_with_default_ignore_terms": false,
            "transcribe_on_disabled_interruptions": false,
            "soft_timeout_config": {
              "timeout_seconds": -1,
              "message": "Hhmmmm...yeah.",
              "use_llm_generated_message": false
            }
          },
          "tts": {
            "model_id": "eleven_turbo_v2",
            "voice_id": "cjVigY5qzO86Huf0OWal",
            "agent_output_audio_format": "pcm_16000",
            "optimize_streaming_latency": 3,
            "stability": 0.5,
            "speed": 1,
            "similarity_boost": 0.8,
            "pronunciation_dictionary_locators": [
              {
                "pronunciation_dictionary_id": "pronunciation_dictionary_id",
                "version_id": null
              }
            ]
          },
          "conversation": {
            "max_duration_seconds": 600,
            "client_events": [
              "audio",
              "interruption"
            ]
          },
          "agent": {
            "first_message": "Hello, how can I help you today?",
            "language": "en",
            "dynamic_variables": {
              "dynamic_variable_placeholders": {
                "user_name": "John Doe"
              }
            },
            "disable_first_message_interruptions": false,
            "prompt": {
              "prompt": "You are a helpful assistant that can answer questions about the topic of the conversation.",
              "llm": "gemini-2.0-flash-001",
              "temperature": 0,
              "max_tokens": -1,
              "tool_ids": [
                "tool_ids"
              ],
              "built_in_tools": {
                "transfer_to_agent": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "end_call": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "language_detection": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "transfer_to_number": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "skip_turn": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "play_keypad_touch_tone": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                },
                "voicemail_detection": {
                  "name": "end_call",
                  "params": {
                    "system_tool_type": "end_call"
                  },
                  "type": "system",
                  "description": "",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ]
                }
              },
              "knowledge_base": [
                {
                  "type": "file",
                  "name": "My Knowledge Base",
                  "id": "123",
                  "usage_mode": "auto"
                }
              ],
              "tools": [
                {
                  "type": "api_integration_webhook",
                  "api_integration_connection_id": "api_integration_connection_id",
                  "api_integration_id": "api_integration_id",
                  "assignments": [
                    {
                      "dynamic_variable": "user_name",
                      "value_path": "user.name",
                      "source": "response",
                      "sanitize": false,
                      "preserve_native_type": false
                    }
                  ],
                  "description": "description",
                  "dynamic_variables": {
                    "dynamic_variable_placeholders": {
                      "user_name": "John Doe"
                    }
                  },
                  "execution_mode": "immediate",
                  "interruption_mode": "allow",
                  "name": "name",
                  "pre_tool_speech": "auto",
                  "response_timeout_secs": 1,
                  "tool_call_sound_behavior": "auto",
                  "tool_error_handling_mode": "auto",
                  "tool_version": "tool_version",
                  "disable_interruptions": true,
                  "force_pre_tool_speech": true,
                  "api_schema_overrides": null,
                  "tool_call_sound": null
                }
              ]
            }
          }
        },
        "edge_order": [
          "edge_order"
        ],
        "entry_behavior": "generate_immediately",
        "label": "label",
        "position": {
          "x": 1.1,
          "y": 1.1
        }
      },
      "success_end": {
        "type": "end",
        "edge_order": [
          "edge_order"
        ],
        "outcome": "success",
        "position": {
          "x": 1.1,
          "y": 1.1
        }
      },
      "success_phone": {
        "type": "phone_number",
        "custom_sip_headers": [
          {
            "type": "dynamic",
            "key": "key",
            "value": "value"
          }
        ],
        "edge_order": [
          "edge_order"
        ],
        "position": {
          "x": 1.1,
          "y": 1.1
        },
        "sip_refer_play_dialtone": true,
        "transfer_destination": {
          "type": "phone",
          "phone_number": "phone_number"
        },
        "transfer_type": "blind",
        "post_dial_digits": null,
        "uui": null
      },
      "success_transfer": {
        "type": "standalone_agent",
        "delay_ms": 1,
        "edge_order": [
          "edge_order"
        ],
        "enable_transferred_agent_first_message": true,
        "position": {
          "x": 1.1,
          "y": 1.1
        },
        "preserve_client_tts_overrides": true,
        "preserve_voice_settings": true,
        "agent_id": null,
        "branch_id": null,
        "node_id": null,
        "transfer_message": null
      },
      "tool_node_a": {
        "type": "tool",
        "edge_order": [
          "edge_order"
        ],
        "position": {
          "x": 1.1,
          "y": 1.1
        },
        "tools": [
          {
            "tool_id": "tool_id"
          }
        ]
      },
      "tool_node_b": {
        "type": "tool",
        "edge_order": [
          "edge_order"
        ],
        "position": {
          "x": 1.1,
          "y": 1.1
        },
        "tools": [
          {
            "tool_id": "tool_id"
          }
        ]
      }
    },
    "prevent_subagent_loops": false
  },
  "access_info": {
    "is_creator": true,
    "creator_name": "John Doe",
    "creator_email": "john.doe@example.com",
    "role": "admin",
    "anonymous_access_level_override": "admin",
    "access_source": "creator"
  },
  "tags": [
    "tags"
  ],
  "version_id": "version_id",
  "branch_id": "branch_id",
  "main_branch_id": "main_branch_id",
  "procedures": {
    "key": {
      "procedure_id": "agtprc_6qbpwdq8n01bxhk44bgjy6f10ck3",
      "version_id": "agtprcv_7rbqxer9o12cyxi55ckw6sgz1dl4",
      "name": "Customer Support Procedure",
      "type": "free_form",
      "trigger": "When the customer asks for support",
      "referenced_tool_ids": [
        "tool_123"
      ],
      "referenced_kb_ids": [
        "kb_123"
      ],
      "referenced_procedure_ids": [
        "agtprc_other"
      ],
      "referenced_dynamic_variables": [
        "customer_id"
      ],
      "folder_parent_id": "folder_parent_id"
    }
  },
  "default_hold_audio_url": "default_hold_audio_url"
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz"

querystring = {"branch_id":"branch_id","enable_versioning_if_not_enabled":"true","include_procedure_generated_workflow_elements":"true"}

payload = {}
headers = {"Content-Type": "application/json"}

response = requests.patch(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz?branch_id=branch_id&enable_versioning_if_not_enabled=true&include_procedure_generated_workflow_elements=true';
const options = {method: 'PATCH', headers: {'Content-Type': 'application/json'}, body: '{}'};

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?branch_id=branch_id&enable_versioning_if_not_enabled=true&include_procedure_generated_workflow_elements=true"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("PATCH", 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?branch_id=branch_id&enable_versioning_if_not_enabled=true&include_procedure_generated_workflow_elements=true")

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

request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{}"

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.patch("https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz?branch_id=branch_id&enable_versioning_if_not_enabled=true&include_procedure_generated_workflow_elements=true")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('PATCH', 'https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz?branch_id=branch_id&enable_versioning_if_not_enabled=true&include_procedure_generated_workflow_elements=true', [
  'body' => '{}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz?branch_id=branch_id&enable_versioning_if_not_enabled=true&include_procedure_generated_workflow_elements=true");
var request = new RestRequest(Method.PATCH);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [] 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?branch_id=branch_id&enable_versioning_if_not_enabled=true&include_procedure_generated_workflow_elements=true")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
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()
```