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

# Tool bijwerken

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

Werk een tool bij die beschikbaar is in de workspace.

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

## Servers

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

## Request

### Path parameters

- `tool_id` (string, required) — ID van de aangevraagde tool.

### Body (application/json)

This endpoint expects a ToolRequestModel.

- `tool_config` (ToolRequestModelToolConfig, required) — Configuratie voor de tool
- `response_mocks` (list of ToolResponseMockConfigInput, optional) — Mockreacties met optionele parametervoorwaarden. Worden van boven naar beneden geëvalueerd; de eerste overeenkomst geldt.

## Response

### 200

Geslaagde response

- `id` (string, required)
- `tool_config` (ToolResponseModelToolConfig, required) — Het type tool
- `access_info` (ResourceAccessInfo, required)
- `usage_stats` (ToolUsageStatsResponseModel, required)
- `response_mocks` (list of ToolResponseMockConfigOutput, optional) — Mockreacties met optionele parametervoorwaarden. Worden van boven naar beneden geëvalueerd; de eerste overeenkomst geldt.

## Errors

### 422 Tools Update Request Unprocessable Entity Error

Validatiefout

- `detail` (list of ValidationError, optional)

## Types

### ToolRequestModelToolConfig

Configuratie voor de tool

- `type`: `client`
  - `description` (string, required) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuratie voor dynamische variabelen
  - `execution_mode` (enum, optional, default: immediate) — Bepaalt wanneer en hoe de tool wordt uitgevoerd: 'immediate' voert de tool direct uit wanneer de LLM hierom vraagt, 'post_tool_speech' wacht tot de agent is uitgesproken voordat de tool wordt uitgevoerd en 'async' voert de tool op de achtergrond uit zonder te blokkeren - het beste voor langlopende bewerkingen.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — Als true, moet het aanroepen van deze tool het gesprek blokkeren totdat de client reageert met een reactie die aan het LLM wordt doorgegeven. Als false, zetten we het gesprek voort zonder op een reactie van de client te wachten. Dit is nuttig om content aan een gebruiker te tonen zonder het gesprek te blokkeren.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaPropertyInput, optional) — Schema voor alle parameters die aan de client moeten worden doorgegeven
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid. Moet tussen 1 en 120 seconden liggen (inclusief), of -1 om onbeperkt op de reactie van de client te wachten (vereist expects_response).
  - `tool_call_sound` (enum, optional) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.
- `type`: `mcp`
  - `value` (any, required)
- `type`: `system`
  - `name` (string, required)
  - `params` (SystemToolConfigInputParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `description` (string, optional, default: ) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet. Laat leeg om de standaardbeschrijving te gebruiken, die is geoptimaliseerd voor het specifieke tooltype.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid.
  - `tool_call_sound` (enum, optional) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.
- `type`: `webhook`
  - `api_schema` (WebhookToolApiSchemaConfigInput, required) — Het schema voor de uitgaande webhook, inclusief parameters en URL-specificatie
  - `description` (string, required) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuratie voor dynamische variabelen
  - `execution_mode` (enum, optional, default: immediate) — Bepaalt wanneer en hoe de tool wordt uitgevoerd: 'immediate' voert de tool direct uit wanneer de LLM hierom vraagt, 'post_tool_speech' wacht tot de agent is uitgesproken voordat de tool wordt uitgevoerd en 'async' voert de tool op de achtergrond uit zonder te blokkeren - het beste voor langlopende bewerkingen.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — Of een redirect vanaf het endpoint moet worden gevolgd en de uiteindelijke response moet worden teruggestuurd. Er wordt één redirect gevolgd, als een GET zonder de requestbody; niets dat voor deze tool is geconfigureerd (headers, authenticatie, clientcertificaat) wordt naar het redirectdoel gestuurd. Zowel het endpoint als het redirectdoel moet HTTPS gebruiken. Niet ondersteund voor API-integratietools.
  - `follow_redirects_allowed_domains` (list of string, optional) — Domeinen waarnaar een redirect kan verwijzen, bijvoorbeeld 'test.example.com'. Vereist bij het volgen van redirects; een doel buiten de lijst wordt geweigerd.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid. Moet tussen 5 en 300 seconden liggen (inclusief).
  - `tool_call_sound` (enum, optional) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.

### ToolResponseMockConfigInput

- `mock_result` (string, required) — De retourwaarde die de LLM ziet wanneer deze mock actief is.
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — Als de lijst leeg is, wordt de mock altijd geactiveerd.
- `is_error` (boolean, optional, default: false) — Als true, wordt het mockresultaat aan het LLM weergegeven als een toolfout in plaats van als een geslaagd resultaat.

### ToolResponseModelToolConfig

Het type tool

- `type`: `client`
  - `description` (string, required) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuratie voor dynamische variabelen
  - `execution_mode` (enum, optional, default: immediate) — Bepaalt wanneer en hoe de tool wordt uitgevoerd: 'immediate' voert de tool direct uit wanneer de LLM hierom vraagt, 'post_tool_speech' wacht tot de agent is uitgesproken voordat de tool wordt uitgevoerd en 'async' voert de tool op de achtergrond uit zonder te blokkeren - het beste voor langlopende bewerkingen.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — Als true, moet het aanroepen van deze tool het gesprek blokkeren totdat de client reageert met een reactie die aan het LLM wordt doorgegeven. Als false, zetten we het gesprek voort zonder op een reactie van de client te wachten. Dit is nuttig om content aan een gebruiker te tonen zonder het gesprek te blokkeren.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaPropertyOutput, optional) — Schema voor alle parameters die aan de client moeten worden doorgegeven
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid. Moet tussen 1 en 120 seconden liggen (inclusief), of -1 om onbeperkt op de reactie van de client te wachten (vereist expects_response).
  - `tool_call_sound` (enum, optional) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.
- `type`: `mcp`
  - `value` (any, required)
- `type`: `system`
  - `name` (string, required)
  - `params` (SystemToolConfigOutputParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `description` (string, optional, default: ) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet. Laat leeg om de standaardbeschrijving te gebruiken, die is geoptimaliseerd voor het specifieke tooltype.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid.
  - `tool_call_sound` (enum, optional) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.
- `type`: `webhook`
  - `api_schema` (WebhookToolApiSchemaConfigOutput, required) — Het schema voor de uitgaande webhook, inclusief parameters en URL-specificatie
  - `description` (string, required) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuratie voor dynamische variabelen
  - `execution_mode` (enum, optional, default: immediate) — Bepaalt wanneer en hoe de tool wordt uitgevoerd: 'immediate' voert de tool direct uit wanneer de LLM hierom vraagt, 'post_tool_speech' wacht tot de agent is uitgesproken voordat de tool wordt uitgevoerd en 'async' voert de tool op de achtergrond uit zonder te blokkeren - het beste voor langlopende bewerkingen.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — Of een redirect vanaf het endpoint moet worden gevolgd en de uiteindelijke response moet worden teruggestuurd. Er wordt één redirect gevolgd, als een GET zonder de requestbody; niets dat voor deze tool is geconfigureerd (headers, authenticatie, clientcertificaat) wordt naar het redirectdoel gestuurd. Zowel het endpoint als het redirectdoel moet HTTPS gebruiken. Niet ondersteund voor API-integratietools.
  - `follow_redirects_allowed_domains` (list of string, optional) — Domeinen waarnaar een redirect kan verwijzen, bijvoorbeeld 'test.example.com'. Vereist bij het volgen van redirects; een doel buiten de lijst wordt geweigerd.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid. Moet tussen 5 en 300 seconden liggen (inclusief).
  - `tool_call_sound` (enum, optional) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.

### ResourceAccessInfo

- `is_creator` (boolean, required) — Of de gebruiker die de request doet de maker van de agent is
- `creator_name` (string, required) — Naam van de maker van de agent
- `creator_email` (string, required) — E-mailadres van de maker van de agent
- `role` (enum, required) — De rol van de gebruiker die de request uitvoert
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional) — Het toegangsniveau voor anonieme gebruikers. Als dit None is, wordt de resource niet openbaar gedeeld.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional) — Waarom de aanvragende gebruiker toegang heeft tot deze resource. 'creator' = de aanroeper is de eigenaar. 'explicit' = de aanroeper (of een van diens workspacegroepen) staat in role_to_group_ids, naast de workspacebrede everyone-groep. 'workspace_default' = de workspacebrede everyone-groep staat in role_to_group_ids (elk niet-anoniem workspacelid, inclusief beheerders, ziet deze resource). 'workspace_admin' = de aanroeper is een workspacebeheerder en de beheerdersrol is de *enige* manier om toegang te krijgen; gereserveerd voor documenten die niemand anders kan zien. Hiermee kan de UI uitleggen waarom een kijker die beheerdersrechten omzeilt een document ziet dat niet expliciet met diegene is gedeeld.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ToolUsageStatsResponseModel

- `avg_latency_secs` (double, required)
- `total_calls` (integer, optional, default: 0) — Het totale aantal oproepen naar de tool

### ToolResponseMockConfigOutput

- `mock_result` (string, required) — De retourwaarde die de LLM ziet wanneer deze mock actief is.
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — Als de lijst leeg is, wordt de mock altijd geactiveerd.
- `is_error` (boolean, optional, default: false) — Als true, wordt het mockresultaat aan het LLM weergegeven als een toolfout in plaats van als een geslaagd resultaat.

### ValidationError

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

### DynamicVariableAssignment

Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen.

- `dynamic_variable` (string, required) — De naam van de dynamische variabele waaraan de geëxtraheerde waarde wordt toegewezen
- `value_path` (string, required) — Pad in puntnotatie om de waarde uit de bron te extraheren (bijvoorbeeld 'user.name' of 'data.0.id')
- `source` ("response", optional) — De bron waaruit de waarde wordt geëxtraheerd. Momenteel wordt alleen 'response' ondersteund.
- `sanitize` (boolean, optional, default: false) — Als true, wordt de waarde van deze toewijzing uit de toolreactie verwijderd voordat deze naar het LLM en het transcript wordt verzonden, maar wordt deze nog wel verwerkt voor variabeletoewijzing.
- `preserve_native_type` (boolean, optional, default: false) — Als true, worden niet-scalaire waarden (lijsten, objecten) uit de toolreactie opgeslagen in hun oorspronkelijke type, in plaats van als JSON-string. Schakel dit in om geëxtraheerde arrays rechtstreeks als dynamische lijstvariabelen te gebruiken.

### DynamicVariablesConfig

- `dynamic_variable_placeholders` (map from string to any, optional) — Een woordenboek met tijdelijke aanduidingen voor dynamische variabelen en hun waarden

### ObjectJsonSchemaPropertyInput

- `property_kind` (enum, optional, default: object)
  - Allowed values: `array`, `object`
- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Wanneer ingesteld, wordt de volledige parameter tijdens runtime ingevuld vanuit deze dynamische variabele. Kan niet samen worden gebruikt met description (door de LLM aangeleverde waarde), constant_value en is_omitted.
- `constant_value` (map from string to any, optional) — Wanneer ingesteld, gebruikt het volledige object deze constante JSON-waarde tijdens runtime. Kan niet samen worden gebruikt met description (door de LLM aangeleverd object), dynamic_variable en is_omitted.
- `is_omitted` (boolean, optional, default: false) — Als true is, wordt deze parameter volledig uit de request weggelaten. Alleen geldig voor optionele parameters. Kan niet samen worden gebruikt met description, dynamic_variable en constant_value.
- `type` ("object", optional)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyInputPropertiesValue, optional)
- `required_constraints` (RequiredConstraints, optional) — Wrapper voor anyOf/allOf-compositiebeperkingen die gelden voor verplichte velden.

### SystemToolConfigInputParams

- `system_tool_type`: `end_call`
- `system_tool_type`: `end_procedure`
  - `procedures` (map from string to EndProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `knowledge_base`
  - `enabled_strategies` (list of enum, optional)
    - Allowed values: `cat`, `keyword`, `semantic`, `ls`
- `system_tool_type`: `knowledge_base_rag`
- `system_tool_type`: `language_detection`
  - `only_at_conversation_start` (boolean, optional, default: false) — Als er in de eerste 2 gebruikersbeurten geen taalwissel plaatsvindt, mislukken latere pogingen en blijft het gesprek in de huidige taal. Als de taal tijdens die beurten wisselt, blijft later wisselen mogelijk. Schakel dit in om de kans op onjuiste taalwisselingen te verkleinen.
- `system_tool_type`: `play_keypad_touch_tone`
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — Als true, genereert de agent geen verdere spraak nadat DTMF-tonen zijn afgespeeld. Dit voorkomt dat de spraak van de agent IVR-systemen verstoort.
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — Verstuur DTMF-tonen als out-of-band RTP-events (RFC 4733) in plaats van als in-band audio. Alleen effectief voor nummers die via een SIP trunk zijn geïmporteerd.
- `system_tool_type`: `skip_turn`
  - `wait_timeout_secs` (double, optional, default: -1) — Seconden om na skip_turn te wachten voordat de agent een contextuele check-in genereert. De timer "Gesprek beëindigen na stilte" wordt tijdens het wachten gepauzeerd. -1 schakelt het wachten uit: na skip_turn blijft de agent stil totdat de beller spreekt, terwijl die timer blijft lopen. Alleen van toepassing op spraakgesprekken.
- `system_tool_type`: `start_procedure`
  - `procedures` (map from string to StartProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `transfer_to_agent`
  - `transfers` (list of AgentTransferInput, required)
- `system_tool_type`: `transfer_to_number`
  - `transfers` (list of PhoneNumberTransfer, required)
  - `enable_client_message` (boolean, optional, default: true) — Of er een bericht voor de klant moet worden afgespeeld terwijl die op overdracht wacht. Standaard is dit true voor achterwaartse compatibiliteit.
- `system_tool_type`: `voicemail_detection`
  - `voicemail_message` (string, optional) — Optioneel bericht om achter te laten op de voicemail wanneer deze wordt gedetecteerd. Als dit niet wordt opgegeven, wordt het gesprek onmiddellijk beëindigd wanneer voicemail wordt gedetecteerd. Ondersteunt dynamische variabelen (bijv. \{\{system\_\_time}}, \{\{system\_\_call\_duration\_secs}}, \{\{custom\_variable}}).

### WebhookToolApiSchemaConfigInput

- `url` (string, required) — De URL waarnaar de webhook wordt verzonden. Kan path parameters bevatten, bijvoorbeeld [https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigInputRequestHeadersValue, optional) — Headers die in de aanvraag moeten worden opgenomen
- `method` (enum, optional, default: GET) — De HTTP-methode die voor de webhook moet worden gebruikt
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — Schema voor eventuele padparameters. De sleutels moeten overeenkomen met de placeholders in de URL.
- `query_params_schema` (QueryParamsJsonSchemaInput, optional) — Schema voor eventuele queryparameters. Deze worden als queryparameters aan het einde van de URL toegevoegd. Let op: eigenschappen in een queryparameter moeten allemaal letterlijke typen zijn
- `request_body_schema` (ObjectJsonSchemaPropertyInput, optional) — Schema voor eventuele bodyparameters. Wordt gebruikt voor POST/PATCH/PUT-requests. Het schema moet een object zijn dat als JSON-body wordt verzonden
- `response_body_schema` (ObjectJsonSchemaPropertyInput, optional) — Schema dat de verwachte structuur van de responsebody beschrijft. Alleen voor documentatie; niet beschikbaar voor de LLM.
- `response_filter` (ResponseFilter, optional) — Optioneel allowlistfilter dat op het antwoord wordt toegepast voordat de LLM het ziet, zodat grote antwoorden de context niet vervuilen. Standaard wordt het volledige antwoord gebruikt.
- `content_type` (enum, optional, default: application/json) — Contenttype voor de requestbody. Alleen van toepassing op POST/PUT/PATCH-requests.
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — URL-placeholders die worden opgelost vanuit de auth connection (bijvoorbeeld geheimen die via UrlSecretAuthConnection worden ingevoegd) in plaats van vanuit path_params_schema.
- `auth_connection` (WebhookToolApiSchemaConfigInputAuthConnection, optional) — Optionele authverbinding voor authenticatie bij deze webhook

### UnitTestToolCallParameter

- `eval` (UnitTestToolCallParameterEval, required)
- `path` (string, required)

### ObjectJsonSchemaPropertyOutput

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Wanneer ingesteld, wordt de volledige parameter tijdens runtime ingevuld vanuit deze dynamische variabele. Kan niet samen worden gebruikt met description (door de LLM aangeleverde waarde), constant_value en is_omitted.
- `constant_value` (map from string to any, optional) — Wanneer ingesteld, gebruikt het volledige object deze constante JSON-waarde tijdens runtime. Kan niet samen worden gebruikt met description (door de LLM aangeleverd object), dynamic_variable en is_omitted.
- `is_omitted` (boolean, optional, default: false) — Als true is, wordt deze parameter volledig uit de request weggelaten. Alleen geldig voor optionele parameters. Kan niet samen worden gebruikt met description, dynamic_variable en constant_value.
- `type` ("object", optional)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyOutputPropertiesValue, optional)
- `required_constraints` (RequiredConstraints, optional) — Wrapper voor anyOf/allOf-compositiebeperkingen die gelden voor verplichte velden.

### SystemToolConfigOutputParams

- `system_tool_type`: `end_call`
- `system_tool_type`: `end_procedure`
  - `procedures` (map from string to EndProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `knowledge_base`
  - `enabled_strategies` (list of enum, optional)
    - Allowed values: `cat`, `keyword`, `semantic`, `ls`
- `system_tool_type`: `knowledge_base_rag`
- `system_tool_type`: `language_detection`
  - `only_at_conversation_start` (boolean, optional, default: false) — Als er in de eerste 2 gebruikersbeurten geen taalwissel plaatsvindt, mislukken latere pogingen en blijft het gesprek in de huidige taal. Als de taal tijdens die beurten wisselt, blijft later wisselen mogelijk. Schakel dit in om de kans op onjuiste taalwisselingen te verkleinen.
- `system_tool_type`: `play_keypad_touch_tone`
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — Als true, genereert de agent geen verdere spraak nadat DTMF-tonen zijn afgespeeld. Dit voorkomt dat de spraak van de agent IVR-systemen verstoort.
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — Verstuur DTMF-tonen als out-of-band RTP-events (RFC 4733) in plaats van als in-band audio. Alleen effectief voor nummers die via een SIP trunk zijn geïmporteerd.
- `system_tool_type`: `skip_turn`
  - `wait_timeout_secs` (double, optional, default: -1) — Seconden om na skip_turn te wachten voordat de agent een contextuele check-in genereert. De timer "Gesprek beëindigen na stilte" wordt tijdens het wachten gepauzeerd. -1 schakelt het wachten uit: na skip_turn blijft de agent stil totdat de beller spreekt, terwijl die timer blijft lopen. Alleen van toepassing op spraakgesprekken.
- `system_tool_type`: `start_procedure`
  - `procedures` (map from string to StartProcedureToolConfigProceduresValue, optional)
- `system_tool_type`: `transfer_to_agent`
  - `transfers` (list of AgentTransferOutput, required)
- `system_tool_type`: `transfer_to_number`
  - `transfers` (list of PhoneNumberTransfer, required)
  - `enable_client_message` (boolean, optional, default: true) — Of er een bericht voor de klant moet worden afgespeeld terwijl die op overdracht wacht. Standaard is dit true voor achterwaartse compatibiliteit.
- `system_tool_type`: `voicemail_detection`
  - `voicemail_message` (string, optional) — Optioneel bericht om achter te laten op de voicemail wanneer deze wordt gedetecteerd. Als dit niet wordt opgegeven, wordt het gesprek onmiddellijk beëindigd wanneer voicemail wordt gedetecteerd. Ondersteunt dynamische variabelen (bijv. \{\{system\_\_time}}, \{\{system\_\_call\_duration\_secs}}, \{\{custom\_variable}}).

### WebhookToolApiSchemaConfigOutput

- `url` (string, required) — De URL waarnaar de webhook wordt verzonden. Kan path parameters bevatten, bijvoorbeeld [https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigOutputRequestHeadersValue, optional) — Headers die in de aanvraag moeten worden opgenomen
- `method` (enum, optional, default: GET) — De HTTP-methode die voor de webhook moet worden gebruikt
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — Schema voor eventuele padparameters. De sleutels moeten overeenkomen met de placeholders in de URL.
- `query_params_schema` (QueryParamsJsonSchemaOutput, optional) — Schema voor eventuele queryparameters. Deze worden als queryparameters aan het einde van de URL toegevoegd. Let op: eigenschappen in een queryparameter moeten allemaal letterlijke typen zijn
- `request_body_schema` (ObjectJsonSchemaPropertyOutput, optional) — Schema voor eventuele bodyparameters. Wordt gebruikt voor POST/PATCH/PUT-requests. Het schema moet een object zijn dat als JSON-body wordt verzonden
- `response_body_schema` (ObjectJsonSchemaPropertyOutput, optional) — Schema dat de verwachte structuur van de responsebody beschrijft. Alleen voor documentatie; niet beschikbaar voor de LLM.
- `response_filter` (ResponseFilter, optional) — Optioneel allowlistfilter dat op het antwoord wordt toegepast voordat de LLM het ziet, zodat grote antwoorden de context niet vervuilen. Standaard wordt het volledige antwoord gebruikt.
- `content_type` (enum, optional, default: application/json) — Contenttype voor de requestbody. Alleen van toepassing op POST/PUT/PATCH-requests.
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — URL-placeholders die worden opgelost vanuit de auth connection (bijvoorbeeld geheimen die via UrlSecretAuthConnection worden ingevoegd) in plaats van vanuit path_params_schema.
- `auth_connection` (WebhookToolApiSchemaConfigOutputAuthConnection, optional) — Optionele authverbinding voor authenticatie bij deze webhook

### ValidationErrorLocItem

### ObjectJsonSchemaPropertyInputPropertiesValue

### RequiredConstraints

Wrapper voor anyOf/allOf-compositiebeperkingen die gelden voor verplichte velden.

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

### EndProcedureToolConfigProceduresValue

### StartProcedureToolConfigProceduresValue

### AgentTransferInput

- `condition` (string, required)
- `agent_id` (string, optional)
- `branch_id` (string, optional)
- `node_id` (string, optional)
- `delay_ms` (integer, optional, default: 0)
- `transfer_message` (string, optional)
- `enable_transferred_agent_first_message` (boolean, optional, default: false)
- `is_workflow_node_transfer` (boolean, optional, default: false)
- `preserve_client_tts_overrides` (boolean, optional, default: false) — Definieert of TTS-clientoverschrijvingen moeten worden overgedragen naar de doorverbonden agent.
- `preserve_voice_settings` (boolean, optional, default: false) — Definieert of de basisstem, het TTS-model en de steminstellingen moeten worden overgedragen naar de doorverbonden agent.

### PhoneNumberTransfer

- `transfer_destination` (PhoneNumberTransferTransferDestination, required)
- `condition` (string, required)
- `custom_sip_headers` (list of PhoneNumberTransferCustomSipHeadersItem, optional) — Aangepaste SIP-headers die moeten worden opgenomen bij het doorverbinden van het gesprek. Elke header kan een statische waarde of een verwijzing naar een dynamische variabele zijn.
- `transfer_type` (enum, optional, default: conference)
  - Allowed values: `blind`, `conference`, `sip_refer`
- `sip_refer_play_dialtone` (boolean, optional, default: true) — Wanneer True, wordt op het oorspronkelijke gesprekstraject een beltoon afgespeeld terwijl een SIP REFER-transfer wordt voltooid. De toon wordt via RTP doorgegeven aan de SIP-peer die de REFER uitvoert, dus schakel dit uit als het ontvangende systeem (bijvoorbeeld een SBC of contactcenter) deze niet mag horen. Wanneer dit is uitgeschakeld, hoort de beller stilte totdat de transfer is voltooid. Alleen voor SIP REFER-transfers.
- `uui` (UuiTransferConfig, optional) — User-to-User Information (RFC 7433) om aan SIP REFER-transfers toe te voegen. Draagt oproepcontext, zoals CRM-identificatiecodes of de reden voor escalatie, over de transfergrens heen.
- `post_dial_digits` (PhoneNumberTransferPostDialDigits, optional) — DTMF-cijfers die moeten worden verzonden nadat de oproep is verbonden (bijvoorbeeld 'ww1234' voor een doorkiesnummer). Kan een statische waarde of een verwijzing naar een dynamische variabele zijn. Gebruik 'w' voor een pauze van 0,5 s. Alleen ondersteund voor Twilio-transfers.
- `phone_number` (string, optional, deprecated)

### WebhookToolApiSchemaConfigInputRequestHeadersValue

### LiteralJsonSchemaProperty

Schema-eigenschap voor letterlijke JSON-typen. BELANGRIJK: slechts EEN van de volgende velden kan worden ingesteld: description (LLM levert waarde), dynamic_variable (waarde uit variabele), is_system_provided (systeem levert waarde), constant_value (vaste waarde) of is_omitted (parameter wordt weggelaten). Deze sluiten elkaar uit.

- `type` (LiteralJsonSchemaPropertyType, required)
- `description` (string, optional, default: ) — De beschrijving van de eigenschap. Wanneer deze is ingesteld, geeft de LLM de waarde op basis van deze beschrijving. Kan niet samen worden gebruikt met dynamic_variable, is_system_provided, constant_value en is_omitted.
- `enum` (list of string, optional) — List of allowed string values for string type parameters
- `is_system_provided` (boolean, optional, default: false) — Als true, wordt de waarde tijdens runtime door het systeem ingevuld. Wordt door API Integration Webhook-tools gebruikt voor templating. Kan niet tegelijk worden gebruikt met description, dynamic_variable, constant_value en is_omitted.
- `dynamic_variable` (string, optional, default: ) — De naam van de dynamische variabele die voor de waarde van deze eigenschap moet worden gebruikt. Kan niet worden gecombineerd met description, is_system_provided, constant_value en is_omitted.
- `allowed_values` (AllowedValues, optional) — Server-side afwijscontrole voor een door de LLM opgegeven waarde: de runtime wijst elke waarde buiten de toegestane set die dit object benoemt af, en de set wordt niet als enum aan de LLM getoond. Alleen ondersteund wanneer de waardebron `description` is; een combinatie met dynamic_variable, is_system_provided, constant_value of is_omitted wordt afgewezen.
- `constant_value` (LiteralJsonSchemaPropertyConstantValue, optional) — Een constante waarde voor deze eigenschap. Kan niet samen worden gebruikt met description, dynamic_variable, is_system_provided en is_omitted.
- `is_omitted` (boolean, optional, default: false) — Als true is, wordt deze parameter volledig uit de request weggelaten. Alleen geldig voor optionele parameters. Kan niet samen worden gebruikt met description, dynamic_variable, is_system_provided en constant_value.
- `allowed_values_dynamic_variable` (string, optional, default: , deprecated) — VEROUDERD: gebruik in plaats daarvan `allowed_values`. Wanneer ingesteld, levert de LLM de waarde, maar weigert de runtime elke waarde die niet voorkomt in de lijst van deze dynamische variabele (moet een JSON-array zijn zoals ["ws_alpha", "ws_beta"]). Gebruik dit om de LLM te laten kiezen uit een door de server geverifieerde set (bijv. de ID's waartoe de huidige gebruiker toegang heeft). Vereist description; kan niet samen met dynamic_variable, is_system_provided, constant_value en is_omitted worden gebruikt.

### QueryParamsJsonSchemaInput

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

### ResponseFilter

Configuratie voor het filteren van toolresponses voordat ze zichtbaar zijn voor de agent.

- `mode` (enum, optional, default: all) — Bepaalt hoe toolresponses worden gefilterd. 'all' retourneert de volledige response, 'allow' retourneert alleen opgegeven paden en 'hide_all' verbergt de volledige response.
  - Allowed values: `all`, `allow`, `hide_all`
- `filters` (list of string, optional) — Paden in puntnotatie die moeten worden opgenomen wanneer de modus 'allow' is (bijvoorbeeld ['ticket.id', 'ticket.status']).
- `content_type` ("application/json", optional) — Contenttype voor het filteren van responses. Alleen responses van het type 'application/json' worden gefilterd.

### WebhookToolApiSchemaConfigInputAuthConnection

Optionele authverbinding voor authenticatie bij deze webhook

### UnitTestToolCallParameterEval

- `type`: `anything`
- `type`: `exact`
  - `expected_value` (string, required) — De exacte tekenreekswaarde waarmee de parameter moet overeenkomen.
- `type`: `llm`
  - `description` (string, required) — Een beschrijving van de evaluatiestrategie voor de test.
- `type`: `regex`
  - `pattern` (string, required) — Een regex-patroon waarmee het antwoord van de agent wordt vergeleken.

### ObjectJsonSchemaPropertyOutputPropertiesValue

### AgentTransferOutput

- `condition` (string, required)
- `agent_id` (string, optional)
- `branch_id` (string, optional)
- `node_id` (string, optional)
- `delay_ms` (integer, optional, default: 0)
- `transfer_message` (string, optional)
- `enable_transferred_agent_first_message` (boolean, optional, default: false)
- `is_workflow_node_transfer` (boolean, optional, default: false)
- `preserve_client_tts_overrides` (boolean, optional, default: false) — Definieert of TTS-clientoverschrijvingen moeten worden overgedragen naar de doorverbonden agent.
- `preserve_voice_settings` (boolean, optional, default: false) — Definieert of de basisstem, het TTS-model en de steminstellingen moeten worden overgedragen naar de doorverbonden agent.

### WebhookToolApiSchemaConfigOutputRequestHeadersValue

### QueryParamsJsonSchemaOutput

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

### WebhookToolApiSchemaConfigOutputAuthConnection

Optionele authverbinding voor authenticatie bij deze webhook

### ArrayJsonSchemaPropertyInput

- `property_kind` (enum, optional, default: array)
  - Allowed values: `array`, `object`
- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Wanneer ingesteld, wordt de volledige parameter tijdens runtime ingevuld vanuit deze dynamische variabele. Kan niet samen worden gebruikt met description (door de LLM aangeleverde waarde), constant_value en is_omitted.
- `constant_value` (list of any, optional) — Wanneer ingesteld, gebruikt de volledige array deze constante waarde tijdens runtime. Kan niet samen worden gebruikt met description (door de LLM aangeleverde array), dynamic_variable en is_omitted.
- `is_omitted` (boolean, optional, default: false) — Als true is, wordt deze parameter volledig uit de request weggelaten. Alleen geldig voor optionele parameters. Kan niet samen worden gebruikt met description, dynamic_variable en constant_value.
- `type` ("array", optional)
- `items` (ArrayJsonSchemaPropertyInputItems, optional) — Schema voor arrayelementen.

### RequiredConstraint

Een set velden die allemaal aanwezig moeten zijn om aan deze beperking te voldoen.

- `required` (list of string, required)

### ProcedureVersionRef

- `procedure_id` (string, required) — Procedure-ID
- `version_id` (string, required) — Versie-ID van de procedureversie.

### ProcedureDraftRef

- `procedure_id` (string, required) — Procedure-ID
- `version_id` (any, optional)

### PhoneNumberTransferTransferDestination

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

### PhoneNumberTransferCustomSipHeadersItem

- `type`: `dynamic`
  - `key` (string, required) — De naam van de SIP-header (bijvoorbeeld 'X-Customer-ID')
  - `value` (string, required) — De naam van de dynamische variabele die moet worden opgelost
- `type`: `static`
  - `key` (string, required) — De naam van de SIP-header (bijvoorbeeld 'X-Customer-ID')
  - `value` (string, required) — De headerwaarde

### UuiTransferConfig

User-to-User Information-envelop voor SIP REFER-transfers (RFC 7433). Uitgaande payloads zijn hex-gecodeerd (de enige codering die RFC 7433 definieert). Met de protocol-discriminatoras kunnen formaten per platform (Talkdesk, Genesys, ...) via configuratie worden uitgedrukt in plaats van via verspreide transferflags. Verdere assen (ASCII-codering, headernaam, doel-/inhoudsparameters) kunnen hier worden toegevoegd zonder het transfermodel aan te passen.

- `data` (string, required) — UUI-payload om te versturen bij SIP REFER-transfers. Ondersteunt inline dynamische variabelen en wordt tijdens de transfer hex-gecodeerd.
- `protocol_discriminator` (string, optional) — Optionele protocolonderscheider van één octet (twee hexadecimale cijfers, bijv. '00'). Vereist door platforms zoals Genesys Cloud, die anders het eerste octet van de payload verwijderen. Laat niet ingesteld voor platforms zoals Talkdesk die een kale hexadecimale payload verwachten.
- `protocol_discriminator_mode` (enum, optional, default: prefix) — Hoe protocol\_discriminator moet worden toegevoegd. 'prefix' plaatst het octet vóór de hex-payload (User-to-User=XX\<hex>;encoding=hex). 'pd\_parameter' verstuurt het als afzonderlijke parameter (User-to-User=\<hex>;pd=XX;encoding=hex). Wordt genegeerd wanneer protocol\_discriminator niet is ingesteld.
  - Allowed values: `prefix`, `pd_parameter`

### PhoneNumberTransferPostDialDigits

- `type`: `dynamic`
  - `value` (string, required) — De naam van de dynamische variabele die moet worden opgelost
- `type`: `static`
  - `value` (string, required) — DTMF-cijfers die moeten worden verzonden nadat de oproep is verbonden (bijvoorbeeld 'ww1234' voor een doorkiesnummer)

### ConvAiSecretLocator

Gebruikt om naar een geheim uit de secret store van de agent te verwijzen.

- `secret_id` (string, required)

### ConvAiDynamicVariable

Gebruikt om naar een dynamische variabele te verwijzen.

- `variable_name` (string, required)

### ConvAiEnvVarLocator

Gebruikt om via een label naar een omgevingsvariabele te verwijzen.

- `env_var_label` (string, required)

### LiteralJsonSchemaPropertyType

### AllowedValues

- `dynamic_variable` (string, required) — Naam van een dynamische variabele die moet worden opgelost naar een JSON-array met toegestane waarden, bijv. ["ws_alpha", "ws_beta"]. Systeemvariabelen werken alleen als ze worden opgelost naar een lijst.

### LiteralJsonSchemaPropertyConstantValue

Een constante waarde voor deze eigenschap. Kan niet samen worden gebruikt met description, dynamic_variable, is_system_provided en is_omitted.

### AuthConnectionLocator

Gebruikt om naar een auth connection uit de auth connection-store van de workspace te verwijzen.

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

Verwijst op label naar een omgevingsvariabele van het type 'auth_connection'. Tijdens runtime wordt deze omgezet naar de auth connection voor de huidige omgeving, met terugval op de standaardomgeving.

- `env_var_label` (string, required)

### ArrayJsonSchemaPropertyOutput

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Wanneer ingesteld, wordt de volledige parameter tijdens runtime ingevuld vanuit deze dynamische variabele. Kan niet samen worden gebruikt met description (door de LLM aangeleverde waarde), constant_value en is_omitted.
- `constant_value` (list of any, optional) — Wanneer ingesteld, gebruikt de volledige array deze constante waarde tijdens runtime. Kan niet samen worden gebruikt met description (door de LLM aangeleverde array), dynamic_variable en is_omitted.
- `is_omitted` (boolean, optional, default: false) — Als true is, wordt deze parameter volledig uit de request weggelaten. Alleen geldig voor optionele parameters. Kan niet samen worden gebruikt met description, dynamic_variable en constant_value.
- `type` ("array", optional)
- `items` (ArrayJsonSchemaPropertyOutputItems, optional) — Schema voor arrayelementen.

### ArrayJsonSchemaPropertyInputItems

Schema voor arrayelementen.

### ArrayJsonSchemaPropertyOutputItems

Schema voor arrayelementen.

## Examples

**Request**

```json
{
  "tool_config": {
    "type": "client",
    "description": "description",
    "name": "name",
    "expects_response": false
  }
}
```

**Response**

```json
{
  "id": "id",
  "tool_config": {
    "type": "client",
    "description": "description",
    "name": "name",
    "assignments": [
      {
        "dynamic_variable": "user_name",
        "value_path": "user.name",
        "source": "response",
        "sanitize": false,
        "preserve_native_type": false
      }
    ],
    "dynamic_variables": {
      "dynamic_variable_placeholders": {
        "user_name": "John Doe"
      }
    },
    "execution_mode": "immediate",
    "expects_response": false,
    "interruption_mode": "allow",
    "parameters": {
      "description": "description",
      "dynamic_variable": "dynamic_variable",
      "constant_value": {
        "key": "value"
      },
      "is_omitted": true,
      "type": "object",
      "required": [
        "required"
      ],
      "properties": {
        "key": {
          "description": "A user-provided message",
          "type": "string"
        }
      }
    },
    "pre_tool_speech": "auto",
    "response_timeout_secs": 1,
    "tool_call_sound": "typing",
    "tool_call_sound_behavior": "auto",
    "tool_error_handling_mode": "auto"
  },
  "access_info": {
    "is_creator": true,
    "creator_name": "John Doe",
    "creator_email": "john.doe@example.com",
    "role": "admin",
    "anonymous_access_level_override": "admin",
    "access_source": "creator"
  },
  "usage_stats": {
    "avg_latency_secs": 1.1,
    "total_calls": 1
  },
  "response_mocks": [
    {
      "mock_result": "mock_result",
      "parameter_conditions": [
        {
          "eval": {
            "type": "anything"
          },
          "path": "path"
        }
      ],
      "is_error": true
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/tools/tool_id"

payload = { "tool_config": {
        "type": "client",
        "description": "description",
        "name": "name",
        "expects_response": False
    } }
headers = {"Content-Type": "application/json"}

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

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/tools/tool_id';
const options = {
  method: 'PATCH',
  headers: {'Content-Type': 'application/json'},
  body: '{"tool_config":{"type":"client","description":"description","name":"name","expects_response":false}}'
};

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

```go
package main

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

func main() {

	url := "https://api.elevenlabs.io/v1/convai/tools/tool_id"

	payload := strings.NewReader("{\n  \"tool_config\": {\n    \"type\": \"client\",\n    \"description\": \"description\",\n    \"name\": \"name\",\n    \"expects_response\": false\n  }\n}")

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

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

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

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

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

}
```

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

url = URI("https://api.elevenlabs.io/v1/convai/tools/tool_id")

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

request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"tool_config\": {\n    \"type\": \"client\",\n    \"description\": \"description\",\n    \"name\": \"name\",\n    \"expects_response\": false\n  }\n}"

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

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

HttpResponse<String> response = Unirest.patch("https://api.elevenlabs.io/v1/convai/tools/tool_id")
  .header("Content-Type", "application/json")
  .body("{\n  \"tool_config\": {\n    \"type\": \"client\",\n    \"description\": \"description\",\n    \"name\": \"name\",\n    \"expects_response\": false\n  }\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('PATCH', 'https://api.elevenlabs.io/v1/convai/tools/tool_id', [
  'body' => '{
  "tool_config": {
    "type": "client",
    "description": "description",
    "name": "name",
    "expects_response": false
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/tools/tool_id");
var request = new RestRequest(Method.PATCH);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"tool_config\": {\n    \"type\": \"client\",\n    \"description\": \"description\",\n    \"name\": \"name\",\n    \"expects_response\": false\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["tool_config": [
    "type": "client",
    "description": "description",
    "name": "name",
    "expects_response": false
  ]] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/tools/tool_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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

dataTask.resume()
```