---
title: "Create Agent"
method: POST
path: "/v1/agents"
tags: ["Agents"]
---

# Create Agent

`POST /v1/agents`

Creates a new single prompt agent with the specified configuration, including system prompt and agent settings. Returns the created agent including its agentId, which is required for all subsequent update, call, and simulation operations.

## Request body

- CreateAgentRequest — Request body for creating a new single prompt agent, including its instructions, welcome message configuration, runtime settings, and available tools.
  - `agentName` string — Human-readable name of the agent used to identify it in the dashboard and APIs.
  - `instructions` string, required — Core system prompt that defines the agent’s behavior, personality, tone, response style, goals, and task handling logic. These instructions guide how the agent interacts with users and responds during conversations.
  - `welcomeMessageType` 'static' | 'prompt' — Determines how the agent’s welcome message is generated. Use 'static' to send a fixed predefined message, or 'prompt' to dynamically generate the welcome message using AI instructions.
  - `welcomeMessage` string — The content of the welcome message. If 'welcomeMessageType' is 'static', this contains the exact message shown to the user. If it is 'prompt', this contains the prompt used to generate the welcome message dynamically.
  - `agentSettings` CreateAgentSettingsRequest — Configuration settings that define the agent’s runtime behavior, including voice, llm model and other operational settings.
    - `language` 'multi_nova3' | 'multi_nova2' | 'en' | 'en_US' | 'en_AU' | 'en_GB' | 'en_NZ' | 'en_IN' | 'hi' | 'de' | 'de_CH' | 'nl' | 'sv' | 'sv_SE' | 'da' | 'da_DK' | 'es' | 'es_419' | 'fr' | 'fr_CA' | 'pt' | 'pt_BR' | 'pt_PT' | 'it' | 'tr' | 'no' | 'id' | 'bg' | 'ca' | 'zh' | 'zh_CN' | 'zh_Hans' | 'zh_TW' | 'zh_Hant' | 'zh_HK' | 'cs' | 'et' | 'fi' | 'nl_BE' | 'el' | 'hu' | 'ja' | 'ko' | 'ko_KR' | 'lv' | 'lt' | 'ms' | 'pl' | 'ro' | 'ru' | 'sk' | 'th' | 'th_TH' | 'uk' | 'vi' — The language your customers will primarily speak during calls.
    - `aiStartsConversation` boolean — If true the AI agent will initiate the conversation immediately when the call connects. If false the call will connect silently, waiting for the customer to speak first before the AI responds
    - `backgroundSound` 'keyboard_typing' | 'office_ambience' | 'none' — Add ambient background audio during the call.
    - `globalPrompt` string — A global system prompt that is applied to every conversation to define the agent’s overall behavior, tone, and constraints.
    - `remindersIntervalDuration` integer — Interval (in seconds) after which a follow-up reminder is automatically sent if the user does not respond.
    - `remindersLimit` integer — Maximum number of follow-up reminders to send when the user does not respond. Set to 0 to disable reminders.
    - `endCallOnSilenceDuration` number, float — Specifies the duration of continuous silence (in minutes) after which the call will be automatically ended.
    - `maxCallDuration` integer — Maximum call duration (in minutes) before the call is automatically terminated.
    - `llmModel` 'gpt-5.2' | 'gpt-5.2-fast-tier' | 'gpt-5.1' | 'gpt-5.1-fast-tier' | 'gpt-5' | 'gpt-5-fast-tier' | 'gpt-5-mini' | 'gpt-5-mini-fast-tier' | 'gpt-5-nano' | 'gpt-4.1' | 'gpt-4.1-fast-tier' | 'gpt-4.1-mini' | 'gpt-4.1-mini-fast-tier' | 'gpt-4.1-nano' | 'gpt-4.1-nano-fast-tier' | 'gpt-4o' | 'gpt-4o-fast-tier' | 'gpt-4o-mini' | 'gpt-4o-mini-fast-tier' | 'claude-haiku-4-5-20251001' | 'claude-sonnet-4-5-20250929' | 'claude-sonnet-4-20250514' | 'gemini-3.1-flash-lite-preview' | 'gemini-3-flash-preview' | 'gemini-2.5-flash-lite' | 'gemini-2.5-flash' — The language model that powers the AI's responses. To use OpenAI priority tier models, append '-fast-tier' to the model name (e.g., 'gpt-4o-mini-fast-tier').
    - `llmTemperature` number, double — Controls randomness in the model's output. Lower values make responses more deterministic; higher values make them more creative. If not provided, the default value is derived from the selected llmModel.
    - `llmTopP` number, double — Controls how diverse the output is by selecting from the most probable tokens within a probability limit. Lower values make responses more focused. If not provided, the default value is derived from the selected llmModel.
    - `llmTopK` integer — Limits token selection to the top-k most probable tokens. Lower values make output more deterministic; higher values increase variation. If not provided, the default value is derived from the selected llmModel
    - `voiceId` string — This is the AI's speaking voice id.
    - `voiceModelId` 'eleven_multilingual_v2' | 'eleven_flash_v2_5' | 'eleven_turbo_v2_5' | 'eleven_turbo_v2' | 'eleven_flash_v2' | 'eleven_multilingual_v1' | 'eleven_monolingual_v1' | 'tts-1' | 'tts-1-hd' | 'gpt-4o-mini-tts' | 'sonic' | 'sonic-2' | 'sonic-lite' | 'sonic-preview' | 'sonic-turbo' | 'arcana' | 'mist' | 'mistv2' | 'octave2_multi' | 'inworld-tts-1' | 'inworld-tts-1-max' — Specifies the text-to-speech (TTS) model used by the agent to generate spoken audio responses. Different models may vary in voice quality, latency, language support, and naturalness.
    - `ttsSpeed` number, double — Controls the speech playback speed. Lower values make speech slower; higher values make it faster. If not provided, the default value is derived from the selected voiceModel.
    - `ttsTemperature` number, double — Controls variation in speech delivery. Lower values make speech more consistent; higher values add more expressiveness. If not provided, the default value is derived from the selected voiceModel.
    - `ttsVolume` number, double — Controls the output audio volume. Lower values make it quieter; higher values make it louder. If not provided, the default value is derived from the selected voiceModel.
    - `aiStartsSpeakingPlan` number, double — How quickly AI starts speaking after user input.
    - `aiStopsSpeakingPlan` number, double — How quickly AI stops speaking when interrupted.
    - `ivrHangup` boolean — Determines whether the call should be automatically disconnected when an IVR system is detected during the call.
    - `agentTimezone` string — The timezone of the agent in IANA format. Used to contextualize time-sensitive responses and scheduling.
    - `autoVolumeNormalization` boolean — If true, it keeps the user's microphone volume consistent regardless of distance or loudness.
    - `backgroundNoiseFilter` boolean — If true, it removes hums, buzzes, and rumbles from the audio signal.
    - `echoCancellation` boolean — If true, it stops the AI's audio from looping back into the microphone.
    - `enablePostConversationAnalysis` boolean — Indicates whether post-conversation analysis should be performed to extract insights after the conversation ends.
    - `postConversationAnalysisLlmModel` 'gpt-5.2' | 'gpt-5.2-fast-tier' | 'gpt-5.1' | 'gpt-5.1-fast-tier' | 'gpt-5' | 'gpt-5-fast-tier' | 'gpt-5-mini' | 'gpt-5-mini-fast-tier' | 'gpt-5-nano' | 'gpt-4.1' | 'gpt-4.1-fast-tier' | 'gpt-4.1-mini' | 'gpt-4.1-mini-fast-tier' | 'gpt-4.1-nano' | 'gpt-4.1-nano-fast-tier' | 'gpt-4o' | 'gpt-4o-fast-tier' | 'gpt-4o-mini' | 'gpt-4o-mini-fast-tier' | 'claude-haiku-4-5-20251001' | 'claude-sonnet-4-5-20250929' | 'claude-sonnet-4-20250514' | 'gemini-3.1-flash-lite-preview' | 'gemini-3-flash-preview' | 'gemini-2.5-flash-lite' | 'gemini-2.5-flash' — The language model that powers the AI's post-conversation analysis.
    - `postConversationAnalysis` PostConversationAnalysisRequest[] — List of configurations defining what insights should be extracted after the conversation ends.
      - `insightName` string, required — A Unique name of the insight that will be generated from the conversation.
      - `insightInstructions` string, required — Instructions or prompt that define how the insight should be generated from the conversation.
      - `dataType` 'string' | 'boolean' | 'number' | 'selector', required — Defines the expected data type of the generated insight result.
      - `options` string[] — List of allowed selectable values. Required only when dataType is selector.
    - `webhooks` WebhookConfig[] — List of webhook configurations that define external endpoints to be notified on specific events.
      - `name` string, required — Human-readable name for this webhook. Used to identify it in listings and dashboards. Does not need to be unique, but a descriptive name helps distinguish multiple webhooks on the same agent.
      - `url` string, required — HTTPS endpoint that will receive event payloads as HTTP POST requests. Must be publicly reachable. The system expects an HTTP 2xx response within the configured timeout to confirm delivery. Non-2xx responses or timeouts are treated as delivery failures.
      - `events` string[], required — Set of event types that will trigger a delivery to this webhook. 'conversation_started' fires when an agent session begins. 'conversation_ended' fires when a session closes. 'conversation_analysed' fires when post-call analysis is complete. At least one event must be specified. Only events in this set will be sent — all others are silently ignored.
  - `tools` CreateToolRequest[]
    - union
      - object — Transfers the active voice call to another number
        - `type` 'voice_transfer_call', required — The type determines the tool’s behavior and configuration schema, such as call transfer, variable extraction, IVR navigation, integrations, etc.
        - `toolName` string — A unique name used to identify the tool within an agent. The name may contain only alphanumeric characters and underscores (_). If not provided, a name will be generated automatically. Tool names must be unique within the same agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
        - `transferToRouting` 'static' | 'dynamic' — Defines how the destination for the call transfer is determined. Use 'static' to always transfer to a fixed phone number. Use 'dynamic' to determine the destination at runtime based on conditions or extracted variables (e.g., user intent such as OPD, radiology, etc.).
        - `transferTo` string, required — Destination for the call transfer. If transferToRouting is 'static', provide a valid E.164 formatted phone number. If transferToRouting is 'dynamic', provide instructions or a dynamic variable placeholder to resolve the destination at runtime. For example: If the user wants to connect with OPD, transfer to {{dynamic_variable}} or a specific number. If the user wants to connect with radiology, transfer to {{dynamic_variable}} or a specific number.
        - `extensionNumber` string — Optional extension number to dial after the call is transferred. This is typically used in IVR systems to reach a specific department or user.
        - `transferSettings` TransferSettings — Configuration for the call transfer behaviour
          - `transferType` 'warm' | 'cold', required — Type of transfer to perform. 'warm' keeps the current agent connected during the transfer, while 'cold' disconnects the agent immediately after initiating the transfer.
          - `ringingDuration` integer — Specifies the maximum duration (in seconds) to wait for the call to be answered.
          - `waitForParticipantAnswer` boolean — If true, agent will wait for the new participant to answer the call.
          - `enableWhisperMessage` boolean — If true, a whisper message will be played privately to the destination participant before the caller is connected.
          - `whisperMessage` string — The content of the whisper message. Its interpretation depends on whisperMessageType. If the type is 'static', this text is played directly. If the type is 'prompt', the text is treated as a prompt that the system uses to dynamically generate the whisper message.
          - `whisperMessageType` 'static' | 'prompt' — Defines how the whisperMessage should be interpreted. 'static' means the message is used as-is, while 'prompt' means the message is treated as a prompt for generating the final whisper message.
          - `enableThreeWayMessage` boolean — If true, a message will be delivered once the call becomes a three-way conversation between the caller, the current agent, and the destination participant.
          - `threeWayMessage` string — The content of the message delivered during the three-way connection. Its interpretation depends on threeWayMessageType. If 'static', the message is used directly. If 'prompt', it is treated as a prompt for generating the final message.
          - `threeWayMessageType` 'static' | 'prompt' — Defines how the threeWayMessage should be interpreted. 'static' means the message is used as-is, while 'prompt' means the message is treated as a prompt for generating the final message.
          - `customHeaders` object — Send custom header key and values along with call transfer.
      - object — Extracts and stores named variables from the conversation
        - `type` 'extract_variables', required — The type determines the tool’s behavior and configuration schema, such as call transfer, variable extraction, IVR navigation, integrations, etc.
        - `toolName` string — A unique name used to identify the tool within an agent. The name may contain only alphanumeric characters and underscores (_). If not provided, a name will be generated automatically. Tool names must be unique within the same agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
        - `variables` Variable[], required — List of variables to extract from the conversation
          - `variableName` string, required — Name of the variable
          - `dataType` 'text' | 'boolean' | 'number' | 'dateTimeIso8601' — Data type of the variable to be extracted.
          - `description` string, required — Description of what this variable represents
      - object — This tool is used to navigate through IVR.
        - `type` 'ivr_navigator', required — The type determines the tool’s behavior and configuration schema, such as call transfer, variable extraction, IVR navigation, integrations, etc.
        - `toolName` string — A unique name used to identify the tool within an agent. The name may contain only alphanumeric characters and underscores (_). If not provided, a name will be generated automatically. Tool names must be unique within the same agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
        - `ivrStartsConversation` boolean — Indicates whether the call is initiated by an IVR (Interactive Voice Response) system. Set to true when the interaction begins with an automated IVR prompt before connecting to an agent or system flow.
        - `pauseDelay` integer — Specifies the duration (in milliseconds) to wait before assuming the IVR system has finished its input or prompt. This delay helps ensure that subsequent actions are triggered only after the IVR interaction is complete.
      - object — Ends the current voice call
        - `type` 'voice_end_call', required — The type determines the tool’s behavior and configuration schema, such as call transfer, variable extraction, IVR navigation, integrations, etc.
        - `toolName` string — A unique name used to identify the tool within an agent. The name may contain only alphanumeric characters and underscores (_). If not provided, a name will be generated automatically. Tool names must be unique within the same agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
      - object — Triggers an action from a connected app (e.g. Shopify, HubSpot)
        - `type` 'integration_tool', required — Type of the tool
        - `toolName` string — A unique name used to identify the tool within an agent. The name may contain only alphanumeric characters and underscores (_). If not provided, a name will be generated automatically. Tool names must be unique within the same agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
        - `toolId` string, required — toolId of the specific integration tool to execute
        - `speakWhileWaiting` boolean — If enabled, the agent will provide filler or holding speech while waiting for the tool to respond.
        - `placeholders` object — Defines values for the placeholders expected by the integration tool. Each key represents a placeholder name and its value can either be a static value or a dynamic variable using the format {{variable_name}} to inject runtime data.
        - `mapVariables` object — Maps the response paths of the tool to dynamic variables. Each key is the variable name and the value is the mapped response path.

## Response `201`

Created

- CreateAgentResponse
  - `agentId` string — Id of the agent.
  - `agentName` string — Human-readable name of the agent used to identify it in the dashboard and APIs.
  - `instructions` string — Core system prompt that defines the agent’s behavior, personality, tone, response style, goals, and task handling logic. These instructions guide how the agent interacts with users and responds during conversations.
  - `welcomeMessageType` 'static' | 'prompt' — Determines how the agent’s welcome message is generated. Use 'static' to send a fixed predefined message, or 'prompt' to dynamically generate the welcome message using AI instructions.
  - `welcomeMessage` string — The content of the welcome message. If 'welcomeMessageType' is 'static', this contains the exact message shown to the user. If it is 'prompt', this contains the prompt used to generate the welcome message dynamically.
  - `agentSettings` CreateAgentSettingsResponse — Configuration settings that define the agent’s runtime behavior, including voice, llm model and other operational settings.
    - `language` string — The language your customers will primarily speak during calls.
    - `aiStartsConversation` boolean — If true the AI agent will initiate the conversation immediately when the call connects. If false the call will connect silently, waiting for the customer to speak first before the AI responds
    - `backgroundSound` 'keyboard_typing' | 'office_ambience' | 'none' — Add ambient background audio during the call.
    - `globalPrompt` string — A global system prompt that is applied to every conversation to define the agent’s overall behavior, tone, and constraints.
    - `remindersIntervalDuration` integer — Interval (in seconds) after which a follow-up reminder is automatically sent if the user does not respond.
    - `remindersLimit` integer — Maximum number of follow-up reminders to send when the user does not respond.Set to 0 to disable reminders.
    - `endCallOnSilenceDuration` number, float — Specifies the duration of continuous silence (in minutes) after which the call will be automatically ended.
    - `maxCallDuration` integer — Maximum call duration (in minutes) before the call is automatically terminated.
    - `llmModel` string — The language model that powers the AI's responses.
    - `llmTemperature` number, double — Controls randomness in the model's output. Lower values make responses more deterministic; higher values make them more creative. If not provided, the default value is derived from the selected llmModel.
    - `llmTopP` number, double — Controls how diverse the output is by selecting from the most probable tokens within a probability limit. Lower values make responses more focused. If not provided, the default value is derived from the selected llmModel.
    - `llmTopK` integer — Limits token selection to the top-k most probable tokens. Lower values make output more deterministic; higher values increase variation. If not provided, the default value is derived from the selected llmModel
    - `voiceId` string — This is the AIs speaking voice id.
    - `voiceModelId` string — This is the AIs text to speech engine version.
    - `ttsSpeed` number, double — Controls the speech playback speed. Lower values make speech slower; higher values make it faster. If not provided, the default value is derived from the selected voiceModel.
    - `ttsTemperature` number, double — Controls variation in speech delivery. Lower values make speech more consistent; higher values add more expressiveness. If not provided, the default value is derived from the selected voiceModel.
    - `ttsVolume` number, double — Controls the output audio volume. Lower values make it quieter; higher values make it louder. If not provided, the default value is derived from the selected voiceModel.
    - `aiStartsSpeakingPlan` number, double — How quickly AI starts speaking after user input.
    - `aiStopsSpeakingPlan` number, double — How quickly AI stops speaking when interrupted.
    - `ivrHangup` boolean — Indicates whether post-conversation analysis should be performed to extract insights after the conversation ends.
    - `agentTimezone` string — The timezone of the agent in IANA format. Used to contextualize time-sensitive responses and scheduling.
    - `autoVolumeNormalization` boolean — If true, it keeps the user's microphone volume consistent regardless of distance or loudness.
    - `backgroundNoiseFilter` boolean — If true, it removes hums, buzzes, and rumbles from the audio signal.
    - `echoCancellation` boolean — If true, it stops the AI's audio from looping back into the microphone.
    - `enablePostConversationAnalysis` boolean — Indicates whether post-conversation analysis should be performed to extract insights after the conversation ends.
    - `postConversationAnalysisLlmModel` string — The language model that powers the AI's post-conversation analysis.
    - `postConversationAnalysis` PostConversationAnalysisRequest[] — List of configurations defining what insights should be extracted after the conversation ends.
      - `insightName` string, required — A Unique name of the insight that will be generated from the conversation.
      - `insightInstructions` string, required — Instructions or prompt that define how the insight should be generated from the conversation.
      - `dataType` 'string' | 'boolean' | 'number' | 'selector', required — Defines the expected data type of the generated insight result.
      - `options` string[] — List of allowed selectable values. Required only when dataType is selector.
    - `webhooks` WebhookConfigResponse[] — List of webhook configurations that define external endpoints to be notified on specific events.
      - `webhookId` string — A unique identifier for the webhook.
      - `name` string — Human-readable name for this webhook. Used to identify it in listings and dashboards. Does not need to be unique, but a descriptive name helps distinguish multiple webhooks on the same agent.
      - `url` string — HTTPS endpoint that will receive event payloads as HTTP POST requests. Must be publicly reachable. The system expects an HTTP 2xx response within the configured timeout to confirm delivery. Non-2xx responses or timeouts are treated as delivery failures.
      - `secret` string — Secret key used to authenticate webhook payloads. This key should be securely stored and verified on the receiving server.
      - `events` string[] — Set of event types that will trigger a delivery to this webhook. 'conversation_started' fires when an agent session begins. 'conversation_ended' fires when a session closes. 'conversation_analysed' fires when post-call analysis is complete. At least one event must be specified. Only events in this set will be sent — all others are silently ignored.
  - `tools` CreateToolResponse[]
    - union
      - object — Transfers the active voice call to another number
        - `type` 'voice_transfer_call' — The type determines the tool’s behavior and configuration schema, such as call transfer, variable extraction, IVR navigation, integrations, etc.
        - `nodeId` string — The unique identifier of the tool within the agent.
        - `toolName` string — A unique name used to identify the tool within an agent. Use this name to reference the tool within the agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
        - `transferToRouting` 'static' | 'dynamic' — Defines how the destination for the call transfer is determined. Use 'static' to always transfer to a fixed phone number. Use 'dynamic' to determine the destination at runtime based on conditions or extracted variables (e.g., user intent such as OPD, radiology, etc.).
        - `transferTo` string — Destination for the call transfer. If transferToRouting is 'static', provide a valid E.164 formatted phone number. If transferToRouting is 'dynamic', provide instructions or a dynamic variable placeholder to resolve the destination at runtime. For example: If the user wants to connect with OPD, transfer to {{dynamic_variable}} or a specific number. If the user wants to connect with radiology, transfer to {{dynamic_variable}} or a specific number.
        - `extensionNumber` string — Optional extension number to dial after the call is transferred. This is typically used in IVR systems to reach a specific department or user.
        - `transferSettings` TransferSettings — Configuration for the call transfer behaviour
          - `transferType` 'warm' | 'cold', required — Type of transfer to perform. 'warm' keeps the current agent connected during the transfer, while 'cold' disconnects the agent immediately after initiating the transfer.
          - `ringingDuration` integer — Specifies the maximum duration (in seconds) to wait for the call to be answered.
          - `waitForParticipantAnswer` boolean — If true, agent will wait for the new participant to answer the call.
          - `enableWhisperMessage` boolean — If true, a whisper message will be played privately to the destination participant before the caller is connected.
          - `whisperMessage` string — The content of the whisper message. Its interpretation depends on whisperMessageType. If the type is 'static', this text is played directly. If the type is 'prompt', the text is treated as a prompt that the system uses to dynamically generate the whisper message.
          - `whisperMessageType` 'static' | 'prompt' — Defines how the whisperMessage should be interpreted. 'static' means the message is used as-is, while 'prompt' means the message is treated as a prompt for generating the final whisper message.
          - `enableThreeWayMessage` boolean — If true, a message will be delivered once the call becomes a three-way conversation between the caller, the current agent, and the destination participant.
          - `threeWayMessage` string — The content of the message delivered during the three-way connection. Its interpretation depends on threeWayMessageType. If 'static', the message is used directly. If 'prompt', it is treated as a prompt for generating the final message.
          - `threeWayMessageType` 'static' | 'prompt' — Defines how the threeWayMessage should be interpreted. 'static' means the message is used as-is, while 'prompt' means the message is treated as a prompt for generating the final message.
          - `customHeaders` object — Send custom header key and values along with call transfer.
      - object — Extracts and stores named variables from the conversation
        - `type` 'extract_variables' — The type determines the tool’s behavior and configuration schema, such as call transfer, variable extraction, IVR navigation, integrations, etc.
        - `nodeId` string — The unique identifier of the tool within the agent.
        - `toolName` string — A unique name used to identify the tool within an agent. Use this name to reference the tool within the agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
        - `variables` Variable[] — List of variables to extract from the conversation
          - `variableName` string, required — Name of the variable
          - `dataType` 'text' | 'boolean' | 'number' | 'dateTimeIso8601' — Data type of the variable to be extracted.
          - `description` string, required — Description of what this variable represents
      - object — This tool is used to navigate through IVR.
        - `type` 'ivr_navigator' — The type determines the tool’s behavior and configuration schema, such as call transfer, variable extraction, IVR navigation, integrations, etc.
        - `nodeId` string — The unique identifier of the tool within the agent.
        - `toolName` string — A unique name used to identify the tool within an agent. Use this name to reference the tool within the agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
        - `ivrStartsConversation` boolean — Indicates whether the call is initiated by an IVR (Interactive Voice Response) system. Set to true when the interaction begins with an automated IVR prompt before connecting to an agent or system flow.
        - `pauseDelay` integer — Specifies the duration (in milliseconds) to wait before assuming the IVR system has finished its input or prompt. This delay helps ensure that subsequent actions are triggered only after the IVR interaction is complete.
      - object — Ends the current voice call
        - `type` 'voice_end_call' — The type determines the tool’s behavior and configuration schema, such as call transfer, variable extraction, IVR navigation, integrations, etc.
        - `nodeId` string — The unique identifier of the tool within the agent.
        - `toolName` string — A unique name used to identify the tool within an agent. Use this name to reference the tool within the agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
      - object — Triggers an action from a connected app (e.g. Shopify, HubSpot)
        - `type` 'integration_tool' — Type of the tool
        - `nodeId` string — The unique identifier of the tool within the agent.
        - `toolName` string — A unique name used to identify the tool within an agent. Use this name to reference the tool within the agent.
        - `instruction` string — Instructions that define when the agent should invoke this tool during a conversation. Use this field to describe the scenarios, user intents, or conditions under which the tool should be triggered.
        - `toolId` string — The specific tool to execute
        - `speakWhileWaiting` boolean — If enabled, the agent will provide filler or holding speech while waiting for the tool to respond
        - `placeholders` object — Defines values for the placeholders expected by the integration tool. Each key represents a placeholder name and its value can either be a static value or a dynamic variable using the format {{variable_name}} to inject runtime data.
        - `mapVariables` object — Maps the response paths of the tool to dynamic variables. Each key is the variable name and the value is the mapped response path

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/sigmamind/apis/sigmamind-apis.md) · [All operations](https://skmtc.net/sigmamind/apis/sigmamind-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sigmamind/sigmamind-apis/versions/d00f52b5123f/schema)
