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

# Hérité : compiler les procédures

POST https://api.elevenlabs.io/v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/compile

Ancien. Ne pas utiliser. L'enregistrement d'un brouillon d'agent (`POST /v1/convai/agents/{agent_id}/drafts`) et la publication d'un agent (`PATCH /v1/convai/agents/{agent_id}`) compilent les procédures structurées en nœuds et arêtes de workflow, enregistrent le workflow compilé avec le brouillon ou la version, et renvoient les erreurs de validation. Un appel de compilation distinct n'est donc plus nécessaire. Cet endpoint reste disponible pour le moment afin de ne pas interrompre les appelants existants, en tant qu'exécution à blanc qui compile les brouillons de procédure actuels dans un workflow sans rien conserver. Il sera à terme obsolète.

Reference: https://elevenlabs.io/docs/api-reference/agents/procedures/compile

## 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) — ID de l'agent depuis lequel récupérer le brouillon de procédure
- `branch_id` (string, required) — ID de branche depuis laquelle récupérer le brouillon de procédure

## Response

### 200

Réponse réussie

- `workflow` (AgentWorkflowResponseModel, required) — Workflow généré à partir de la compilation

## Errors

### 400 Bad Request Error

Échec de la validation de la procédure structurée.

- `errors` (map from string to list of ProcedureValidationError, required) — Erreurs de validation indexées par ID de procédure.

### 422 Unprocessable Entity Error

Erreur de validation

- `detail` (list of ValidationError, optional)

## Types

### AgentWorkflowResponseModel

- `edges` (map from string to WorkflowEdgeModel-Output, required)
- `nodes` (map from string to AgentWorkflowResponseModelNodes, required)
- `prevent_subagent_loops` (boolean, required, default: false) — Indique s'il faut empêcher les boucles dans l'exécution du workflow.

### ProcedureValidationError

- `path` (string, required) — Chemin JSON vers l’erreur, par exemple : 'trigger', 'steps[0].instruction'
- `message` (string, required) — Message d’erreur lisible

### ValidationError

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

### WorkflowEdgeModel-Output

- `source` (string, required) — ID du nœud source.
- `target` (string, required) — ID du nœud cible.
- `forward_condition` (WorkflowEdgeModelOutputForwardCondition, required, nullable) — Condition à remplir pour parcourir l'arête dans le sens direct (de la source vers la cible).
- `backward_condition` (WorkflowEdgeModelOutputBackwardCondition, required, nullable) — Condition à remplir pour parcourir l'arête dans le sens inverse (de la cible vers la source).

### AgentWorkflowResponseModelNodes

- `type`: `end` (WorkflowEndNodeModel)
  - `edge_order` (list of string, required) — Les ID des arêtes sortantes, dans l’ordre où elles doivent être évaluées.
  - `outcome` (enum, required, default: success) — Indique si l’atteinte de ce nœud End termine la conversation par une réussite ou un échec.
    - Allowed values: `success`, `failure`
  - `position` (Position-Output, required) — Position du nœud dans le workflow.
- `type`: `override_agent` (WorkflowOverrideAgentNodeModel)
  - `additional_knowledge_base` (list of KnowledgeBaseLocator, required) — Documents supplémentaires de la base de connaissances auxquels le sous-agent a accès. Ils seront utilisés en complément des documents de l'agent principal.
  - `additional_prompt` (string, required) — Objectif spécifique de ce sous-agent. Il sera ajouté au prompt système et peut servir à affiner davantage le comportement de l’agent dans ce contexte précis.
  - `additional_tool_ids` (list of string, required) — ID des outils supplémentaires auxquels le sous-agent a accès. Ils seront utilisés en plus des outils de l’agent principal.
  - `conversation_config` (ConversationalConfigAPIModelWorkflowOverride-Output, required) — Remplacements de configuration appliqués pendant que le sous-agent mène la conversation.
  - `edge_order` (list of string, required) — Les ID des arêtes sortantes, dans l’ordre où elles doivent être évaluées.
  - `entry_behavior` (enum, required, default: auto) — Indique si ce nœud doit générer une réponse immédiatement lorsqu’il est atteint ou attendre une entrée utilisateur. Lorsque cette valeur est définie sur "auto", le comportement dépend du type du nœud précédent : "wait_for_user" après les nœuds "say" et "start", et "generate_immediately" dans les autres cas.
    - Allowed values: `generate_immediately`, `wait_for_user`, `auto`
  - `label` (string, required) — Libellé lisible du nœud, utilisé dans toute l’interface.
  - `position` (Position-Output, required) — Position du nœud dans le workflow.
- `type`: `phone_number` (WorkflowPhoneNumberNodeModel)
  - `custom_sip_headers` (list of WorkflowPhoneNumberNodeModelOutputCustomSipHeadersItems, required) — En-têtes SIP personnalisés à inclure lors du transfert de l'appel. Chaque en-tête peut être une valeur statique ou une référence de variable dynamique.
  - `edge_order` (list of string, required) — Les ID des arêtes sortantes, dans l’ordre où elles doivent être évaluées.
  - `position` (Position-Output, required) — Position du nœud dans le workflow.
  - `post_dial_digits` (WorkflowPhoneNumberNodeModelOutputPostDialDigits, required, nullable) — Chiffres DTMF à envoyer après la connexion de l’appel, par exemple 'ww1234' pour un poste. Peut correspondre à une valeur statique ou à une référence de variable dynamique. Utilisez 'w' pour une pause de 0,5 s. Pris en charge uniquement pour les transferts Twilio.
  - `sip_refer_play_dialtone` (boolean, required, default: true) — Lorsque la valeur est True, une tonalité est diffusée sur la branche d’appel d’origine pendant l’exécution d’un transfert SIP REFER. La tonalité est transmise via RTP au pair SIP exécutant le REFER ; désactivez cette option si le système destinataire, par exemple un SBC ou un centre de contact, ne doit pas l’entendre. Lorsqu’elle est désactivée, l’appelant entend le silence jusqu’à la fin du transfert. Uniquement pour les transferts SIP REFER.
  - `transfer_destination` (WorkflowPhoneNumberNodeModelOutputTransferDestination, required)
  - `transfer_type` (enum, required, default: conference)
    - Allowed values: `blind`, `conference`, `sip_refer`
  - `uui` (UUITransferConfig, required, nullable) — Informations d’utilisateur à utilisateur (RFC 7433) à joindre aux transferts SIP REFER. Transmet le contexte de l’appel, tel que les identifiants CRM ou le motif d’escalade, lors du transfert.
- `type`: `standalone_agent` (WorkflowStandaloneAgentNodeModel)
  - `agent_id` (string, required, nullable) — L’ID de l’agent vers lequel transférer la conversation. None signifie un transfert au sein de l’agent actuel.
  - `branch_id` (string, required, nullable) — ID de branche facultatif pour l’agent cible. La valeur None suit le déploiement du trafic de l’agent cible ou utilise sa branche principale lorsque node_id est défini.
  - `delay_ms` (integer, required, default: 0) — Délai artificiel en millisecondes appliqué avant le transfert de la conversation.
  - `edge_order` (list of string, required) — Les ID des arêtes sortantes, dans l’ordre où elles doivent être évaluées.
  - `enable_transferred_agent_first_message` (boolean, required, default: false) — Indique s'il faut autoriser l'agent transféré à envoyer son premier message configuré après le transfert.
  - `node_id` (string, required, nullable) — ID facultatif du nœud cible dans le workflow de l'agent de destination. Lorsqu'il est défini, le transfert commence à ce nœud plutôt qu'au nœud d'entrée par défaut.
  - `position` (Position-Output, required) — Position du nœud dans le workflow.
  - `preserve_client_tts_overrides` (boolean, required, default: false) — Définit si les remplacements côté client du TTS doivent être transférés vers l'agent cible.
  - `preserve_voice_settings` (boolean, required, default: false) — Définit si la voix de base, le modèle TTS et les paramètres vocaux doivent être transférés vers l'agent cible.
  - `transfer_message` (string, required, nullable) — Message facultatif envoyé à l'utilisateur avant le lancement du transfert.
- `type`: `start` (WorkflowStartNodeModel)
  - `edge_order` (list of string, required) — Les ID des arêtes sortantes, dans l’ordre où elles doivent être évaluées.
  - `position` (Position-Output, required) — Position du nœud dans le workflow.
- `type`: `tool` (WorkflowToolNodeModel)
  - `edge_order` (list of string, required) — Les ID des arêtes sortantes, dans l’ordre où elles doivent être évaluées.
  - `position` (Position-Output, required) — Position du nœud dans le workflow.
  - `tools` (list of WorkflowToolLocator, required) — Liste des outils à exécuter en parallèle. L'ensemble du nœud est considéré comme réussi si tous les outils s'exécutent correctement.
- `type`: `say` (WorkflowSayNodeModel)
  - `additional_knowledge_base` (list of KnowledgeBaseLocator, required) — Documents de la base de connaissances disponibles pour le LLM lorsque ce nœud génère son message, en plus des documents de l'agent.
  - `additional_prompt` (string, required) — Accepté pour assurer la cohérence avec les nœuds de sous-agents, mais non utilisé. Décrivez le message dans `message.prompt` ou remplacez le prompt système par `conversation_config.agent.prompt.prompt`.
  - `additional_tool_ids` (list of string, required) — Accepté pour assurer la cohérence avec les nœuds de sous-agents, mais non utilisé. Un nœud say ne peut pas appeler d'outils.
  - `conversation_config` (ConversationalConfigAPIModelWorkflowOverride-Output, required) — Remplacements de configuration appliqués pendant que ce nœud parle, comme la voix ou, pour les messages de type prompt, le LLM et le prompt système.
  - `edge_order` (list of string, required) — Les ID des arêtes sortantes, dans l’ordre où elles doivent être évaluées.
  - `label` (string, required) — Libellé lisible du nœud, utilisé dans toute l’interface.
  - `message` (WorkflowSayNodeModelOutputMessage, required) — Message prononcé par ce nœud. Utilisez `literal` pour un texte exact ou `prompt` pour que le LLM génère le message à partir d'une description.
  - `position` (Position-Output, required) — Position du nœud dans le workflow.
  - `wait_for_speech_completion` (boolean, required, default: false) — Lorsque la valeur est true, le workflow ne passe au nœud suivant qu'une fois le message entièrement prononcé.
  - `wait_for_user_response` (boolean, required, default: false) — Lorsque la valeur est true, le nœud prononce son message, puis attend la réponse de l'utilisateur avant d'évaluer les transitions sortantes afin qu'elles puissent varier selon cette réponse. Si l'utilisateur reste silencieux, le workflow avance après le délai d'expiration du tour.
- `type`: `update_state` (WorkflowUpdateStateNodeModel)
  - `edge_order` (list of string, required) — Les ID des arêtes sortantes, dans l’ordre où elles doivent être évaluées.
  - `label` (string, required) — Libellé lisible du nœud, utilisé dans toute l’interface.
  - `position` (Position-Output, required) — Position du nœud dans le workflow.
  - `updates` (list of WorkflowStateUpdate-Output, required) — Mises à jour d'état appliquées lorsque le workflow atteint ce nœud. Un nœud accepte au maximum 50 mises à jour.

### ValidationErrorLocItems

- string
- integer

### WorkflowEdgeModelOutputForwardCondition

Condition à remplir pour parcourir l'arête dans le sens direct (de la source vers la cible).

- `type`: `expression` (WorkflowExpressionConditionModel)
  - `expression` (ASTNode-Output, required) — Expression à évaluer.
  - `label` (string, required, nullable) — Libellé facultatif lisible par l'utilisateur pour la condition, utilisé dans toute l'interface.
- `type`: `llm` (WorkflowLLMConditionModel)
  - `condition` (string, required) — Condition à évaluer
  - `label` (string, required, nullable) — Libellé facultatif lisible par l'utilisateur pour la condition, utilisé dans toute l'interface.
- `type`: `result` (WorkflowResultConditionModel)
  - `label` (string, required, nullable) — Libellé facultatif lisible par l'utilisateur pour la condition, utilisé dans toute l'interface.
  - `successful` (boolean, required) — Indique si tous les outils du nœud d’outils exécuté précédemment ont été exécutés avec succès.
- `type`: `unconditional` (WorkflowUnconditionalModel)
  - `label` (string, required, nullable) — Libellé facultatif lisible par l'utilisateur pour la condition, utilisé dans toute l'interface.

### WorkflowEdgeModelOutputBackwardCondition

Condition à remplir pour parcourir l'arête dans le sens inverse (de la cible vers la source).

- `type`: `expression` (WorkflowExpressionConditionModel)
  - `expression` (ASTNode-Output, required) — Expression à évaluer.
  - `label` (string, required, nullable) — Libellé facultatif lisible par l'utilisateur pour la condition, utilisé dans toute l'interface.
- `type`: `llm` (WorkflowLLMConditionModel)
  - `condition` (string, required) — Condition à évaluer
  - `label` (string, required, nullable) — Libellé facultatif lisible par l'utilisateur pour la condition, utilisé dans toute l'interface.
- `type`: `result` (WorkflowResultConditionModel)
  - `label` (string, required, nullable) — Libellé facultatif lisible par l'utilisateur pour la condition, utilisé dans toute l'interface.
  - `successful` (boolean, required) — Indique si tous les outils du nœud d’outils exécuté précédemment ont été exécutés avec succès.
- `type`: `unconditional` (WorkflowUnconditionalModel)
  - `label` (string, required, nullable) — Libellé facultatif lisible par l'utilisateur pour la condition, utilisé dans toute l'interface.

### Position-Output

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

### KnowledgeBaseLocator

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

### ConversationalConfigAPIModelWorkflowOverride-Output

- `asr` (ASRConversationalConfigWorkflowOverride, optional, nullable) — Configuration de la transcription conversationnelle
- `turn` (TurnConfigWorkflowOverride, optional, nullable) — Configuration de la détection des tours de parole
- `tts` (TTSConversationalConfigWorkflowOverride-Output, optional, nullable) — Configuration de la synthèse vocale conversationnelle
- `conversation` (ConversationConfigWorkflowOverride-Output, optional, nullable) — Configuration des événements conversationnels
- `language_presets` (map from string to LanguagePreset-Output, optional, nullable) — Paramètres prédéfinis de langue pour les conversations
- `vad` (VADConfigWorkflowOverride, optional, nullable) — Configuration de la détection d'activité vocale
- `agent` (AgentConfigAPIModelWorkflowOverride-Output, optional, nullable) — Configuration spécifique à l'agent

### WorkflowPhoneNumberNodeModelOutputCustomSipHeadersItems

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

### WorkflowPhoneNumberNodeModelOutputPostDialDigits

Chiffres DTMF à envoyer après la connexion de l’appel, par exemple 'ww1234' pour un poste. Peut correspondre à une valeur statique ou à une référence de variable dynamique. Utilisez 'w' pour une pause de 0,5 s. Pris en charge uniquement pour les transferts Twilio.

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

### WorkflowPhoneNumberNodeModelOutputTransferDestination

- `type`: `phone` (PhoneNumberTransferDestination)
  - `phone_number` (string, required)
- `type`: `phone_dynamic_variable` (PhoneNumberDynamicVariableTransferDestination)
  - `phone_number` (string, required)
- `type`: `sip_uri` (SIPUriTransferDestination)
  - `sip_uri` (string, required)
- `type`: `sip_uri_dynamic_variable` (SIPUriDynamicVariableTransferDestination)
  - `sip_uri` (string, required)

### UUITransferConfig

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

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

### WorkflowToolLocator

- `tool_id` (string, required)
- `schema_overrides` (map from string to WorkflowToolLocatorSchemaOverrides, optional, nullable) — Remplacements de paramètres par nœud appliqués en complément de la configuration propre à l’outil. Les clés sont des chemins de paramètres séparés par des points (les outils webhook préfixent les clés par path_params./query_params./request_body.). Ils prévalent sur tout remplacement déjà défini sur l’outil lui-même.

### WorkflowSayNodeModelOutputMessage

Message prononcé par ce nœud. Utilisez `literal` pour un texte exact ou `prompt` pour que le LLM génère le message à partir d'une description.

- `type`: `literal` (SayNodeLiteralMessage)
  - `text` (string, required) — Texte exact prononcé par l'agent. Prend en charge les espaces réservés de variables dynamiques `{{variable_name}}`.
  - `text_translations` (map from string to TranslatedString, required) — Traductions de `text`, indexées par code de langue. Lorsque la langue de la conversation possède une entrée, sa valeur est prononcée à la place de `text`.
- `type`: `prompt` (SayNodePromptMessage)
  - `prompt` (string, required) — Description du message que le LLM doit générer. Elle est ajoutée au prompt système de l'agent lorsque ce nœud est actif.

### WorkflowStateUpdate-Output

- `type` ("dynamic_variable", required)
- `variable_name` (string, required) — Nom de la variable dynamique à attribuer.
- `expression` (ASTNode-Output, required) — Expression dont le résultat est attribué à la variable. Elle peut combiner des constantes, d'autres variables dynamiques, des valeurs extraites par le LLM et des opérateurs.
- `required` (boolean, required, default: true) — Lorsque la valeur est false, le LLM peut omettre les valeurs dont dépend cette mise à jour. La mise à jour est alors ignorée et la variable conserve sa valeur actuelle.

### ASTNode-Output

- `type`: `add_operator` (ASTAdditionOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `and_operator` (ASTAndOperatorNode)
  - `children` (list of ASTNode-Output, required) — Nœuds enfants de l'opérateur logique.
- `type`: `boolean_literal` (ASTBooleanNode)
  - `value` (boolean, required) — Valeur de ce littéral.
- `type`: `conditional_operator` (ASTConditionalOperatorNode)
  - `condition` (ASTNode-Output, required) — Condition déterminant l'expression à sélectionner.
  - `falseExpression` (ASTNode-Output, required) — Expression sélectionnée si la condition est false.
  - `trueExpression` (ASTNode-Output, required) — Expression sélectionnée si la condition est true.
- `type`: `div_operator` (ASTDivisionOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `dynamic_variable` (ASTDynamicVariableNode)
  - `name` (string, required) — Le nom de la variable dynamique.
- `type`: `eq_operator` (ASTEqualsOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `gt_operator` (ASTGreaterThanOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `gte_operator` (ASTGreaterThanOrEqualsOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `llm` (ASTLLMNode)
  - `value_schema` (LLMLiteralJsonSchemaProperty, required) — Schéma JSON décrivant la valeur que le LLM doit extraire.
  - `prompt` (string, required, deprecated) — Le prompt à évaluer en valeur booléenne. Obsolète. Utilisez plutôt un schéma booléen.
- `type`: `lt_operator` (ASTLessThanOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `lte_operator` (ASTLessThanOrEqualsOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `mul_operator` (ASTMultiplicationOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `neq_operator` (ASTNotEqualsOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.
- `type`: `null_literal` (ASTNullNode)
- `type`: `number_literal` (ASTNumberNode)
  - `value` (AstNumberNodeOutputValue, required) — Valeur de ce littéral.
- `type`: `or_operator` (ASTOrOperatorNode)
  - `children` (list of ASTNode-Output, required) — Nœuds enfants de l'opérateur logique.
- `type`: `string_literal` (ASTStringNode)
  - `value` (string, required) — Valeur de ce littéral.
- `type`: `sub_operator` (ASTSubtractionOperatorNode)
  - `left` (ASTNode-Output, required) — Opérande gauche de l'opérateur binaire.
  - `right` (ASTNode-Output, required) — Opérande droit de l’opérateur binaire.

### ASRConversationalConfigWorkflowOverride

- `quality` (enum, optional, nullable, default: high) — La qualité de la transcription
  - Allowed values: `high`
- `provider` (enum, optional, nullable, default: scribe_realtime) — Le fournisseur du service de transcription
  - Allowed values: `elevenlabs`, `scribe_realtime`, `scribe_v2_turbo`
- `user_input_audio_format` (enum, optional, nullable, default: pcm_16000) — Le format de l’audio à transcrire
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `keywords` (list of string, optional, nullable) — Mots-clés dont la probabilité de prédiction doit être augmentée

### TurnConfigWorkflowOverride

- `turn_timeout` (double, optional, nullable) — Temps d’attente maximal de la réponse de l’utilisateur avant de le solliciter à nouveau
- `initial_wait_time` (double, optional, nullable) — How long the agent will wait for the user to start the conversation if the first message is empty. If not set, uses the regular turn_timeout.
- `silence_end_call_timeout` (double, optional, nullable) — Temps d’attente maximal depuis la dernière intervention de l’utilisateur avant de mettre fin à l’appel
- `turn_eagerness` (enum, optional, nullable, default: normal) — Contrôle la réactivité de l'agent. Faible = moins réactif (attend davantage), Standard = réactivité par défaut, Élevé = plus réactif (répond plus rapidement)
  - Allowed values: `patient`, `normal`, `eager`
- `spelling_patience` (enum, optional, nullable, default: auto) — Détermine si l'agent doit attendre davantage lorsque l'utilisateur épelle des nombres et des entités nommées. Auto = selon le modèle, Off = ne jamais attendre davantage
  - Allowed values: `auto`, `off`
- `speculative_turn` (boolean, optional, nullable) — Lorsque cette option est activée, la génération des réponses du LLM commence pendant le silence, avant que la confiance totale du tour de parole soit atteinte, afin de réduire la latence perçue. Peut augmenter les coûts du LLM.
- `retranscribe_on_turn_timeout` (boolean, optional, nullable) — Lorsqu’elle est activée, si la VAD ne détecte aucune parole, tente de retranscrire l’audio accumulé à l’expiration du délai du tour. Désactive la facturation avec réduction pour les silences tant qu’elle est activée pour l’agent ou le nœud de workflow actif.
- `turn_model` (enum, optional, nullable, default: turn_v3) — Version du modèle de détection des tours de parole à utiliser.
  - Allowed values: `turn_v2`, `turn_v3`
- `interruption_ignore_terms` (list of string, optional, nullable) — Liste des termes qui ne doivent pas déclencher d'interruption lorsqu'ils sont prononcés par l'utilisateur, par exemple « gotcha » ou « understood ». Utilise une correspondance exacte insensible à la casse.
- `interruption_ignore_term_languages` (list of string, optional, nullable) — Codes de langue pour lesquels des catégories prédéfinies de termes à ignorer ont été activées. Ils sont stockés explicitement afin que l'affichage ne soit pas déduit du chevauchement des termes.
- `merge_with_default_ignore_terms` (boolean, optional, nullable) — Lorsque cette option est activée, les termes par défaut sélectionnés pour interruption_ignore_term_languages sont utilisés en plus de interruption_ignore_terms.
- `transcribe_on_disabled_interruptions` (boolean, optional, nullable) — Lorsque les interruptions sont désactivées, transcrit tout de même ce que dit l’utilisateur afin de le reporter au tour suivant. Lorsque cette option est désactivée, la parole de l’utilisateur pendant un tour non interruptible est ignorée et ne déclenche pas de tour de parole.
- `soft_timeout_config` (SoftTimeoutConfigWorkflowOverride, optional, nullable) — Configuration de la fonctionnalité de délai d'expiration souple. Fournit un retour immédiat pendant les réponses plus longues des LLM.

### TTSConversationalConfigWorkflowOverride-Output

- `model_id` (enum, optional, nullable, default: eleven_v4_turbo) — Le modèle à utiliser pour le 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, nullable) — L’ID de voix à utiliser pour le TTS
- `supported_voices` (list of SupportedVoice, optional, nullable) — Voix supplémentaires prises en charge pour l'agent
- `expressive_mode` (boolean, optional, nullable) — Lorsque cette option est activée, applique le prompt de balises audio expressives. Elle est automatiquement désactivée pour les modèles autres que v3.
- `suggested_audio_tags` (list of SuggestedAudioTag, optional, nullable) — Suggested audio tags to boost expressive speech (for eleven_v3 and eleven_v3_conversational models). The agent can still use other tags not listed here.
- `agent_output_audio_format` (enum, optional, nullable, default: pcm_16000) — Format audio à utiliser pour le TTS
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `optimize_streaming_latency` (enum, optional, nullable) — Obsolète : ce champ n'a aucun effet et est ignoré.
  - Allowed values: `0`, `1`, `2`, `3`, `4`
- `stability` (double, optional, nullable) — La stabilité de la parole générée
- `speed` (double, optional, nullable) — La vitesse de la parole générée
- `similarity_boost` (double, optional, nullable) — L'amélioration de similarité pour la parole générée
- `text_normalisation_type` (enum, optional, nullable, default: system_prompt) — Méthode de conversion des nombres en mots avant la synthèse vocale. Si elle est définie sur SYSTEM_PROMPT, le prompt système est mis à jour pour inclure des instructions de normalisation. Si elle est définie sur ELEVENLABS, le texte est normalisé après la génération, ce qui entraîne une légère latence supplémentaire.
  - Allowed values: `system_prompt`, `elevenlabs`
- `pronunciation_dictionary_locators` (list of PydanticPronunciationDictionaryVersionLocator, optional, nullable) — Les localisateurs de dictionnaires de prononciation
- `enable_phoneme_tags` (boolean, optional, nullable) — Active la gestion des balises de phonèmes SSML pour les modèles V3. Lorsqu'elle est activée, les balises de phonèmes, en ligne et issues des dictionnaires de prononciation, sont analysées en API en ligne avant d'être envoyées au modèle.
- `audio_effects` (EffectsSpec-Output, optional, nullable) — Spécification facultative des effets TTS : préréglage de filtre, distance (égalisation de proximité) et environnement (réverbération par convolution).

### ConversationConfigWorkflowOverride-Output

- `text_only` (boolean, optional, nullable) — Si cette option est activée, l’audio ne sera pas traité et seul le texte sera utilisé, afin d’éviter la tarification audio.
- `max_duration_seconds` (integer, optional, nullable) — La durée maximale d’une conversation, en secondes
- `client_events` (list of enum, optional, nullable) — Les événements qui seront envoyés au client
  - 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, nullable) — Configuration des entrées de fichiers (chargements d'images/PDF) pendant les conversations.
- `monitoring_enabled` (boolean, optional, nullable) — Active la surveillance des conversations en temps réel via WebSocket
- `monitoring_events` (list of enum, optional, nullable) — Les événements qui seront envoyés aux connexions de surveillance.
  - 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, nullable) — Configurez la collecte de saisies DTMF (clavier téléphonique) pendant les appels
- `background_sound` (BackgroundSoundConfigWorkflowOverride, optional, nullable) — Configuration du son d'arrière-plan durant les conversations.
- `source_attribution` (boolean, optional, nullable) — Lorsque cette option est activée et que la base de connaissances contient du contenu, le LLM reçoit l’instruction d’indiquer les sources qu’il a utilisées.

### LanguagePreset-Output

- `overrides` (ConversationConfigClientOverride-Output, required) — Les remplacements du préréglage linguistique
- `first_message_translation` (LanguagePresetTranslation, optional, nullable) — La traduction du premier message.
- `soft_timeout_translation` (LanguagePresetTranslation, optional, nullable) — La traduction du message de délai d’expiration souple.

### VADConfigWorkflowOverride

### AgentConfigAPIModelWorkflowOverride-Output

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

### WorkflowToolLocatorSchemaOverrides

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

### TranslatedString

- `value` (string, required)

### LLMLiteralJsonSchemaProperty

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

### AstNumberNodeOutputValue

Valeur de ce littéral.

- double
- integer

### SoftTimeoutConfigWorkflowOverride

- `timeout_seconds` (double, optional, nullable) — Délai, en secondes, avant l’affichage du message prédéfini pendant l’attente de la réponse du LLM. Définissez -1 pour désactiver cette option.
- `message` (string, optional, nullable) — Message à afficher lorsque le premier délai d’expiration souple est atteint pendant l’attente d’une réponse LLM. Prend en charge les variables dynamiques, par exemple \{\{system\_\_time}} et \{\{custom\_variable}}.
- `additional_soft_timeout_messages` (list of string, optional, nullable) — Messages statiques de remplissage supplémentaires pour les délais d'attente souples suivants dans la même génération LLM. Le premier délai utilise `message`. Si moins de messages sont configurés que `max_soft_timeouts_per_generation`, le dernier message configuré est répété ; sinon, un message de remplissage intégré est utilisé.
- `use_llm_generated_message` (boolean, optional, nullable) — Si cette option est activée, le message de délai d’inactivité sera généré dynamiquement au lieu d’utiliser le message statique.
- `randomize_fillers` (boolean, optional, nullable) — Si cette option est activée, mélangez une fois l’ordre des messages statiques de délai d’inactivité au début de chaque tour. S’applique uniquement lorsque use_llm_generated_message est false.
- `max_soft_timeouts_per_generation` (integer, optional, nullable) — Maximum filler messages while waiting for a single LLM response. Fires every timeout_seconds until the LLM streams content or this limit is reached.
- `llm_generated_message_prompt_override` (string, optional, nullable) — Prompt personnalisé pour générer le message de remplissage lors d'un délai d'attente souple lorsque use\_llm\_generated\_message est activé. Le contexte récent de la conversation est fourni dans un message utilisateur distinct. S'il n'est pas défini, le prompt par défaut est utilisé. Prend en charge les variables dynamiques (par exemple, \{\{system\_\_time}}, \{\{custom\_variable}}).
- `disable_until_first_user_message` (boolean, optional, nullable) — Lorsque la valeur est true, les fillers de délai d’expiration souple sont supprimés jusqu’à ce que la conversation comporte au moins un véritable message utilisateur. Empêche les fillers pendant le tour d’ouverture de l’agent, par exemple avec le workflow generate-immediately ou des appels d’outils avant que l’utilisateur ne parle.

### SupportedVoice

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

### SuggestedAudioTag

- `tag` (string, required) — Balise audio à utiliser (pour de meilleures performances, 1 à 2 mots, par exemple « happy », « excited »)
- `description` (string, optional, nullable) — Description facultative des cas d'utilisation de cette balise

### PydanticPronunciationDictionaryVersionLocator

Un localisateur permettant à d'autres documents de référencer un dictionnaire spécifique et sa version. Il s'agit d'une version Pydantic de PronunciationDictionaryVersionLocatorDBModel. Requis pour assurer la compatibilité avec les autres modèles de données de l'agent.

- `pronunciation_dictionary_id` (string, required) — L’ID du dictionnaire de prononciation
- `version_id` (string, required, nullable) — L’ID de la version du dictionnaire de prononciation

### EffectsSpec-Output

Effets audio appliqués à la parole générée : un préréglage de filtre, une distance perçue, un environnement de réverbération, un fond sonore et un panoramique stéréo. Laissez chaque champ à sa valeur par défaut pour obtenir un audio non traité.

- `filter_preset_id` (string, required, nullable) — ID d’un préréglage de filtre qui colore la voix, tel que `phone` ou `old_radio`. Répertoriez les ID valides avec `GET /v1/audio-effects/catalog`.
- `distance` (double, required, default: 0) — Distance à laquelle le locuteur semble se trouver du microphone, de 0 (proche, inchangée) à 1 (loin). Des valeurs plus élevées atténuent les basses et hautes fréquences et, lorsqu’un environnement est défini, déplacent l’équilibre de la voix sèche vers la réverbération.
- `environment_id` (string, required, nullable) — ID d’un environnement de réverbération qui place la voix dans un espace, tel que `small_room` ou `hall`. Répertoriez les ID valides avec `GET /v1/audio-effects/catalog`. La réverbération est produite en stéréo et ajoute une traîne pouvant durer plusieurs secondes après la fin de la parole.
- `background_noise_id` (string, required, nullable) — ID d’un fond sonore diffusé en boucle sous la voix, tel que `cafe` ou `keyboard`. Répertoriez les ID valides avec `GET /v1/audio-effects/catalog`.
- `send_level` (double, required, default: 1) — Quantité de voix envoyée vers la réverbération, de 0 (aucune) à 1 (totale). S’applique uniquement lorsque `environment_id` est défini ; 0 désactive la réverbération.
- `pan` (double, required, default: 0) — Position stéréo de la voix, de -1 (complètement à gauche) à 1 (complètement à droite), en passant par 0 (au centre). Seule la voix est panoramiquée ; la réverbération et le bruit de fond restent centrés.

### FileInputConfigWorkflowOverride

- `enabled` (boolean, optional, nullable) — Lorsque cette option est activée, les utilisateurs peuvent joindre des images, des fichiers PDF ou des fichiers texte dans le chat si le LLM prend en charge les entrées multimodales.
- `max_files_in_memory` (integer, optional, nullable) — Nombre de fichiers les plus récents conservés en mémoire au cours d’une conversation. Les fichiers plus anciens sont résumés et leur mémoire est libérée.
- `max_files_per_conversation` (integer, optional, nullable) — Nombre total de fichiers qu’un utilisateur peut importer au cours d’une conversation. Les importations sont facturées par fichier. Utilisez -1 pour aucune limite, ou une valeur >= max_files_in_memory.

### DTMFInputConfig

Configuration de la collecte de saisies DTMF (clavier téléphonique) pendant les appels.

- `dtmf_input_timeout` (double, optional, default: 2) — Délai d’expiration, en secondes, pour attendre des chiffres DTMF supplémentaires
- `hash_terminator` (boolean, optional, default: true) — Si true, appuyer sur # termine immédiatement la saisie DTMF.
- `redact_input` (boolean, optional, default: false) — Si true, remplace les saisies DTMF du correspondant, effectuées au clavier, par un marqueur de masquage dans la transcription, le journal de conversation et l’analyse. Les chiffres que l’agent répète ou transmet à un outil ne sont pas concernés.

### BackgroundSoundConfigWorkflowOverride

- `source_type` (enum, optional, nullable) — Le type de source sonore d’arrière-plan.
  - Allowed values: `preset`
- `source_id` (enum, optional, nullable) — Identifiant de la source sonore.
  - Allowed values: `office2`, `office1`, `restaurant`, `city`, `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `volume` (double, optional, nullable) — Niveau de volume du son d’arrière-plan (de 0,01 à 1,0).
- `crossfade_loop` (boolean, optional, nullable) — Applique un fondu enchaîné à la jonction de la boucle afin d'éviter les clics audibles lors de la répétition du son.

### ConversationConfigClientOverride-Output

- `asr` (ASRConversationalConfigOverride, optional, nullable) — Configuration de la transcription conversationnelle
- `turn` (TurnConfigOverride, optional, nullable) — Configuration de la détection des tours de parole
- `tts` (TTSConversationalConfigOverride, optional, nullable) — Configuration de la synthèse vocale conversationnelle
- `conversation` (ConversationConfigOverride, optional, nullable) — Configuration des événements conversationnels
- `agent` (AgentConfigOverride-Output, optional, nullable) — Configuration spécifique à l'agent

### LanguagePresetTranslation

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

### DynamicVariablesConfigWorkflowOverride

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

### BehaviorOverride

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

### PromptAgentAPIModelWorkflowOverride-Output

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

### WorkflowToolLocatorSchemaOverridesDiscriminatorMappingConstantConstantValue

Valeur constante à utiliser

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

### LlmLiteralJsonSchemaPropertyType

- enum
  - Allowed values: `boolean`, `string`, `integer`, `number`
- list of string

### ASRConversationalConfigOverride

- `keywords` (list of string, optional, nullable) — Mots-clés dont la probabilité de prédiction doit être augmentée

### TurnConfigOverride

- `soft_timeout_config` (SoftTimeoutConfigOverride, optional, nullable) — Configuration de la fonctionnalité de délai d'expiration souple. Fournit un retour immédiat pendant les réponses plus longues des LLM.

### TTSConversationalConfigOverride

- `model_id` (enum, optional, nullable, default: eleven_v4_turbo) — Le modèle à utiliser pour le 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, nullable) — L’ID de voix à utiliser pour le TTS
- `supported_voices` (list of SupportedVoice, optional, nullable) — Voix supplémentaires prises en charge pour l'agent
- `stability` (double, optional, nullable) — La stabilité de la parole générée
- `speed` (double, optional, nullable) — La vitesse de la parole générée
- `similarity_boost` (double, optional, nullable) — L'amélioration de similarité pour la parole générée
- `pronunciation_dictionary_locators` (list of PydanticPronunciationDictionaryVersionLocator, optional, nullable) — Les localisateurs de dictionnaires de prononciation

### ConversationConfigOverride

- `text_only` (boolean, optional, nullable) — Si cette option est activée, l’audio ne sera pas traité et seul le texte sera utilisé, afin d’éviter la tarification audio.
- `max_duration_seconds` (integer, optional, nullable) — La durée maximale d’une conversation, en secondes

### AgentConfigOverride-Output

- `first_message` (string, optional, nullable) — S’il n’est pas vide, premier message que l’agent prononcera. S’il est vide, l’agent attend que l’utilisateur commence la discussion.
- `language` (string, optional, nullable) — Langue de l'agent, utilisée pour l'ASR et le TTS
- `max_conversation_duration_message` (string, optional, nullable) — S’il n’est pas vide, message que l’agent enverra lorsque la durée maximale de la conversation sera atteinte.
- `prompt` (PromptAgentAPIModelOverride-Output, optional, nullable) — Le prompt de l’agent

### BuiltInToolsWorkflowOverride-Output

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

### CustomLLM

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

### RagConfigWorkflowOverride-Output

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

### PromptAgentApiModelWorkflowOverrideOutputBackupLlmConfig

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

- BackupLLMDefault: BackupLLMDefault
- BackupLLMDisabled: BackupLLMDisabled
- BackupLLMOverride: BackupLLMOverride

### PromptAgentApiModelWorkflowOverrideOutputToolsItems

Le type d’outil.

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

### SoftTimeoutConfigOverride

- `message` (string, optional, nullable) — Message à afficher lorsque le premier délai d’expiration souple est atteint pendant l’attente d’une réponse LLM. Prend en charge les variables dynamiques, par exemple \{\{system\_\_time}} et \{\{custom\_variable}}.
- `additional_soft_timeout_messages` (list of string, optional, nullable) — Messages statiques de remplissage supplémentaires pour les délais d'attente souples suivants dans la même génération LLM. Le premier délai utilise `message`. Si moins de messages sont configurés que `max_soft_timeouts_per_generation`, le dernier message configuré est répété ; sinon, un message de remplissage intégré est utilisé.

### PromptAgentAPIModelOverride-Output

- `prompt` (string, optional, nullable) — Le prompt de l’agent
- `llm` (enum, optional, nullable) — Le LLM à interroger avec le prompt et l’historique de discussion. En cas de résidence des données européenne, le LLM doit être pris en charge dans l’environnement de résidence des données.
  - Allowed values: `gpt-4o-mini`, `gpt-4o`, `gpt-4`, `gpt-4-turbo`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-5`, `gpt-5.1`, `gpt-5.2`, `gpt-5.2-chat-latest`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano`, `gpt-5.5`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-6-astra`, `gpt-6-sol`, `gpt-6-luna`, `gpt-6.1-sol`, `gpt-5-mini`, `gpt-5-nano`, `gpt-3.5-turbo`, `gemini-1.5-pro`, `gemini-1.5-flash`, `gemini-2.0-flash`, `gemini-2.0-flash-lite`, `gemini-2.5-flash-lite`, `gemini-2.5-flash`, `gemini-3-pro-preview`, `gemini-3-flash-preview`, `gemini-3.1-pro-preview`, `gemini-3.1-flash-lite-preview`, `gemini-3.1-flash-lite`, `gemini-3.5-flash`, `gemini-3.5-flash-lite`, `gemini-3.6-flash`, `gemini-3.7-flash`, `gemini-3.8-flash`, `gemini-4-argon`, `claude-sonnet-4-5`, `claude-opus-4-6`, `claude-opus-4-7`, `claude-opus-4-8`, `claude-opus-5`, `claude-opus-5-5`, `claude-sonnet-4-6`, `claude-sonnet-5`, `claude-sonnet-5-5`, `claude-sonnet-4`, `claude-haiku-4-5`, `claude-haiku-5-5`, `claude-3-7-sonnet`, `claude-3-5-sonnet`, `claude-3-5-sonnet-v1`, `claude-3-haiku`, `grok-beta`, `custom-llm`, `qwen3-4b`, `qwen3-30b-a3b`, `qwen36-35b-a3b`, `qwen35-397b-a17b`, `gpt-oss-20b`, `gpt-oss-120b`, `glm-45-air-fp8`, `glm-52`, `deepseek-v41-flash`, `nemotron-35-super-vl-nvfp4`, `gemini-2.5-flash-preview-09-2025`, `gemini-2.5-flash-lite-preview-09-2025`, `gemini-2.5-flash-preview-05-20`, `gemini-2.5-flash-preview-04-17`, `gemini-2.5-flash-lite-preview-06-17`, `gemini-2.0-flash-lite-001`, `gemini-2.0-flash-001`, `gemini-1.5-flash-002`, `gemini-1.5-flash-001`, `gemini-1.5-pro-002`, `gemini-1.5-pro-001`, `claude-sonnet-4@20250514`, `claude-sonnet-4-5@20250929`, `claude-haiku-4-5@20251001`, `claude-3-7-sonnet@20250219`, `claude-3-5-sonnet@20240620`, `claude-3-5-sonnet-v2@20241022`, `claude-3-haiku@20240307`, `gpt-5-2025-08-07`, `gpt-5.1-2025-11-13`, `gpt-5.2-2025-12-11`, `gpt-5.4-2026-03-05`, `gpt-5.4-mini-2026-03-17`, `gpt-5.4-nano-2026-03-17`, `gpt-5.5-2026-04-23`, `gpt-5-mini-2025-08-07`, `gpt-5-nano-2025-08-07`, `gpt-4.1-2025-04-14`, `gpt-4.1-mini-2025-04-14`, `gpt-4.1-nano-2025-04-14`, `gpt-4o-mini-2024-07-18`, `gpt-4o-2024-11-20`, `gpt-4o-2024-08-06`, `gpt-4o-2024-05-13`, `gpt-4-0613`, `gpt-4-0314`, `gpt-4-turbo-2024-04-09`, `gpt-3.5-turbo-0125`, `gpt-3.5-turbo-1106`, `watt-tool-8b`, `watt-tool-70b`
- `tool_ids` (list of string, optional, nullable) — Liste des ID des outils utilisés par l’agent.
- `tool_ids_strict` (boolean, optional, nullable) — Only applies as a conversation override, allowed whenever tool_ids may be overridden. When true, the overridden tool_ids is the full list of tools allowed in the conversation, including tools on workflow nodes. Ignored when set on the agent.
- `native_mcp_server_ids` (list of string, optional, nullable) — Liste des identifiants de serveurs MCP natifs à utiliser par l'agent
- `knowledge_base` (list of KnowledgeBaseLocator, optional, nullable) — Liste des bases de connaissances à utiliser par l'agent

### SystemToolConfig

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

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

### CustomLlmApiKey

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

- ConvAISecretLocator: ConvAISecretLocator
- ConvAIEnvVarLocator: ConvAIEnvVarLocator

### CustomLlmAuthConnection

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

- AuthConnectionLocator: AuthConnectionLocator
- EnvironmentAuthConnectionLocator: EnvironmentAuthConnectionLocator

### CustomLlmRequestHeaders

- string
- ConvAISecretLocator: ConvAISecretLocator
- ConvAIDynamicVariable: ConvAIDynamicVariable
- ConvAIEnvVarLocator: ConvAIEnvVarLocator

### KnowledgeBaseToolInfo

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

### BackupLLMDefault

### BackupLLMDisabled

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

### ApiIntegrationWebhookOverrides

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

### DynamicVariableAssignment

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

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

### DynamicVariablesConfig

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

### ObjectJsonSchemaProperty-Output

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

### ToolResponseModelToolConfigDiscriminatorMappingSystemParams

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

### WebhookToolApiSchemaConfig-Output

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

### ConvAISecretLocator

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

- `secret_id` (string, required)

### ConvAIEnvVarLocator

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

- `env_var_label` (string, required)

### AuthConnectionLocator

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

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

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

- `env_var_label` (string, required)

### ConvAIDynamicVariable

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

- `variable_name` (string, required)

### ApiIntegrationWebhookOverridesSchemaOverrides

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

### ApiIntegrationWebhookOverridesRequestHeaders

- string
- ConvAIDynamicVariable: ConvAIDynamicVariable

### ObjectJsonSchemaPropertyOutput

- LiteralJsonSchemaProperty: LiteralJsonSchemaProperty
- ObjectJsonSchemaProperty: ObjectJsonSchemaProperty-Output
- ArrayJsonSchemaProperty: ArrayJsonSchemaProperty-Output

### RequiredConstraints

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

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

### ToolResponseModelToolConfigDiscriminatorMappingSystemParamsDiscriminatorMappingEndProcedureProcedures

- ProcedureVersionRef: ProcedureVersionRef
- ProcedureDraftRef: ProcedureDraftRef

### ToolResponseModelToolConfigDiscriminatorMappingSystemParamsDiscriminatorMappingStartProcedureProcedures

- ProcedureVersionRef: ProcedureVersionRef
- ProcedureDraftRef: ProcedureDraftRef

### AgentTransfer-Output

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

### PhoneNumberTransfer

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

### WebhookToolApiSchemaConfigOutputRequestHeaders

- string
- ConvAISecretLocator: ConvAISecretLocator
- ConvAIDynamicVariable: ConvAIDynamicVariable
- ConvAIEnvVarLocator: ConvAIEnvVarLocator

### LiteralJsonSchemaProperty

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

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

### QueryParamsJsonSchema-Output

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

### ResponseFilter

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

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

### WebhookToolApiSchemaConfigOutputAuthConnection

Connexion d'authentification facultative à utiliser avec ce webhook

- AuthConnectionLocator: AuthConnectionLocator
- EnvironmentAuthConnectionLocator: EnvironmentAuthConnectionLocator

### ArrayJsonSchemaProperty-Output

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

### RequiredConstraint

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

- `required` (list of string, required)

### ProcedureVersionRef

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

### ProcedureDraftRef

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

### PhoneNumberTransferTransferDestination

- `type`: `phone` (PhoneNumberTransferDestination)
  - `phone_number` (string, required)
- `type`: `phone_dynamic_variable` (PhoneNumberDynamicVariableTransferDestination)
  - `phone_number` (string, required)
- `type`: `sip_uri` (SIPUriTransferDestination)
  - `sip_uri` (string, required)
- `type`: `sip_uri_dynamic_variable` (SIPUriDynamicVariableTransferDestination)
  - `sip_uri` (string, required)

### PhoneNumberTransferCustomSipHeadersItems

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

### PhoneNumberTransferPostDialDigits

Chiffres DTMF à envoyer après la connexion de l’appel, par exemple 'ww1234' pour un poste. Peut correspondre à une valeur statique ou à une référence de variable dynamique. Utilisez 'w' pour une pause de 0,5 s. Pris en charge uniquement pour les transferts Twilio.

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

### LiteralJsonSchemaPropertyType

- enum
  - Allowed values: `boolean`, `string`, `integer`, `number`
- list of string

### AllowedValues

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

### LiteralJsonSchemaPropertyConstantValue

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

- string
- integer
- double
- boolean

### ArrayJsonSchemaPropertyOutputItems

Schéma des éléments du tableau.

- LiteralJsonSchemaProperty: LiteralJsonSchemaProperty
- ObjectJsonSchemaProperty: ObjectJsonSchemaProperty-Output
- ArrayJsonSchemaProperty: ArrayJsonSchemaProperty-Output

## Examples

**Response**

```json
{
  "workflow": {
    "edges": [],
    "nodes": [],
    "prevent_subagent_loops": false
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches/agtbranch_0901k4aafjxxfxt93gd841r7tv5t/procedures/compile"

response = requests.post(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches/agtbranch_0901k4aafjxxfxt93gd841r7tv5t/procedures/compile';
const options = {method: 'POST'};

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"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches/agtbranch_0901k4aafjxxfxt93gd841r7tv5t/procedures/compile"

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

	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/branches/agtbranch_0901k4aafjxxfxt93gd841r7tv5t/procedures/compile")

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

request = Net::HTTP::Post.new(url)

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

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

HttpResponse<String> response = Unirest.post("https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches/agtbranch_0901k4aafjxxfxt93gd841r7tv5t/procedures/compile")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches/agtbranch_0901k4aafjxxfxt93gd841r7tv5t/procedures/compile');

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches/agtbranch_0901k4aafjxxfxt93gd841r7tv5t/procedures/compile");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/agents/agent_3701k3ttaq12ewp8b7qv5rfyszkz/branches/agtbranch_0901k4aafjxxfxt93gd841r7tv5t/procedures/compile")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

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