changedInput schema / properties / requestBody / allOf
Previous value: -[
- {
- "description": "Agent configuration.",
- "properties": {
- "background_track": {
- "description": "Ambient background noise that plays under the agent's voice.",
- "properties": {
- "enabled": {
- "description": "Whether to mix the ambient track under the agent's audio.",
- "type": "boolean"
- },
- "name": {
- "description": "Ambient track to mix under the agent.",
- "enum": [
- "call_center",
- "filler",
- "office",
- "office_1",
- "restaurant"
- ],
- "type": "string"
- },
- "tts_volume_reduction": {
- "description": "Amount to drop the agent's TTS volume while the ambient track plays, on a 0–1 scale. Helps the voice cut through without raising the overall mix.",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "volume": {
- "default": 0.2,
- "description": "Volume level on a 0–1 scale. Default 0.2.",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "call_type": {
- "description": "Call type of the assistant.",
- "enum": [
- "Incoming",
- "Outgoing"
- ],
- "type": "string"
- },
- "context_breakdown": {
- "description": "List of context breakdowns, each containing `title`, `body`, and optional `is_enabled`.",
- "items": {
- "properties": {
- "body": {
- "description": "Body of the breakdown, the detailed prompt content.",
- "example": "This agent helps customers with product inquiries and support issues.",
- "type": "string"
- },
- "is_enabled": {
- "default": true,
- "description": "Whether this section is included in the prompt.",
- "type": "boolean"
- },
- "title": {
- "description": "Title of the breakdown.",
- "example": "Purpose",
- "type": "string"
- }
- },
- "required": [
- "title",
- "body"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "dynamic_variables": {
- "additionalProperties": {
- "type": "string"
- },
- "description": "Key/value map used to substitute placeholders in the agent's\nprompt and welcome message at call time. Reference a variable\nin your prompt with `{{variable_name}}`. Useful for\npersonalising the same agent across many calls.\n",
- "example": {
- "customer_name": "Jane Doe",
- "order_id": "ORD-12345"
- },
- "type": "object"
- },
- "end_call": {
- "description": "Hang up automatically when a condition is met.",
- "properties": {
- "condition": {
- "description": "Natural-language condition that triggers ending the call. Only evaluated when `enabled` is true.",
- "example": "End the call once the customer's issue is resolved.",
- "type": "string"
- },
- "enabled": {
- "type": "boolean"
- },
- "message": {
- "description": "What the agent says before hanging up.",
- "example": "Thank you for contacting us. Have a great day!",
- "type": "string"
- },
- "message_prompt": {
- "description": "LLM prompt used to generate the closing line when `message_type` is `prompt`.",
- "example": "End the call politely in the same language the user is speaking.",
- "type": "string"
- },
- "message_type": {
- "description": "`static` speaks `message` verbatim. `prompt` treats\n`message_prompt` as an LLM instruction and generates a\nfresh closing line each call (useful for matching the\ncaller's language and tone).\n",
- "enum": [
- "static",
- "prompt"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "initial_ringing_sound_enabled": {
- "description": "Plays a ringing tone after the call is picked up, until the agent starts speaking.",
- "type": "boolean"
- },
- "is_interruption_allowed": {
- "description": "Global toggle for whether the caller can interrupt the agent mid-sentence at any point in the call.",
- "type": "boolean"
- },
- "is_welcome_message_dynamic": {
- "description": "When true, the welcome message is treated as a directive the agent uses to generate a tailored greeting for each call, rather than being spoken word for word. When false, the welcome message is spoken exactly as written.",
- "type": "boolean"
- },
- "is_welcome_message_interruption": {
- "description": "Allow the caller to interrupt the welcome message. When false, the agent finishes speaking the welcome before listening.",
- "type": "boolean"
- },
- "languages": {
- "description": "Languages the agent should support. Pass each language as a display-name string exactly as it appears in the dashboard's language picker. Unrecognized names are skipped.",
- "example": [
- "English (India)",
- "Hindi"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "model": {
- "description": "Configuration for the language model.",
- "properties": {
- "model": {
- "description": "The language model to use. The current catalog is returned by the LLM providers list.",
- "enum": [
- "azure-gpt-4.1-mini",
- "azure-gpt-4.1-nano",
- "azure-gpt-4o",
- "azure-gpt-4o-mini",
- "gemini-2.5-flash",
- "gemini-2.5-flash-lite",
- "gpt-3.5-turbo",
- "gpt-4.1-mini",
- "gpt-4.1-nano",
- "gpt-4o",
- "gpt-4o-mini",
- "gpt-5.1",
- "llama-3.3-70b-versatile"
- ],
- "example": "gpt-4.1-mini",
- "type": "string"
- },
- "temperature": {
- "description": "Controls randomness in the model's output (0.0 to 1.0).",
- "example": 0.7,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "name": {
- "description": "Name for the agent.",
- "example": "Customer Support Agent",
- "type": "string"
- },
- "post_call_actions": {
- "description": "Side effects that fire once the call ends. Configure email, webhook, or both.",
- "properties": {
- "email": {
- "properties": {
- "enabled": {
- "type": "boolean"
- },
- "extracted_variables": {
- "description": "Variables the model should pull out of the conversation for the email.",
- "items": {
- "properties": {
- "key": {
- "description": "Unique identifier for the variable in the post-call payload.",
- "example": "customer_issue",
- "type": "string"
- },
- "prompt": {
- "description": "Instruction for the model on what to pull out of the conversation.",
- "example": "Identify the main issue the customer is experiencing.",
- "type": "string"
- }
- },
- "required": [
- "key",
- "prompt"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "include": {
- "description": "Which sections to include in the email body.",
- "items": {
- "enum": [
- "summary",
- "extracted_variables",
- "fullConversation",
- "sentiment"
- ],
- "type": "string"
- },
- "type": "array"
- },
- "recipients": {
- "description": "Email addresses that should receive the notification.",
- "example": [
- "support@example.com"
- ],
- "items": {
- "format": "email",
- "type": "string"
- },
- "type": "array"
- },
- "trigger_call_statuses": {
- "description": "Call outcomes that should fire this action. Omit to\nuse the default (`completed`, `voicemail_detected`).\nPass an explicit list to also include failed calls,\nno-answers, busy signals, etc.\n",
- "example": [
- "completed",
- "voicemail_detected"
- ],
- "items": {
- "enum": [
- "completed",
- "voicemail_detected",
- "failed",
- "no_answer",
- "busy",
- "cancelled"
- ],
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "webhook": {
- "properties": {
- "enabled": {
- "type": "boolean"
- },
- "extracted_variables": {
- "description": "Variables the model should pull out of the conversation for the webhook.",
- "items": {
- "properties": {
- "key": {
- "description": "Unique identifier for the variable in the post-call payload.",
- "example": "customer_issue",
- "type": "string"
- },
- "prompt": {
- "description": "Instruction for the model on what to pull out of the conversation.",
- "example": "Identify the main issue the customer is experiencing.",
- "type": "string"
- }
- },
- "required": [
- "key",
- "prompt"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "include": {
- "description": "Which sections to include in the webhook body.",
- "items": {
- "enum": [
- "summary",
- "extracted_variables",
- "fullConversation",
- "sentiment"
- ],
- "type": "string"
- },
- "type": "array"
- },
- "trigger_call_statuses": {
- "description": "Call outcomes that should fire this webhook. Omit to\nuse the default (`completed`, `voicemail_detected`).\n",
- "example": [
- "completed",
- "failed"
- ],
- "items": {
- "enum": [
- "completed",
- "voicemail_detected",
- "failed",
- "no_answer",
- "busy",
- "cancelled"
- ],
- "type": "string"
- },
- "type": "array"
- },
- "url": {
- "description": "Endpoint that receives a POST with the call payload.",
- "example": "https://your-webhook-endpoint.com/omnidim-callback",
- "format": "uri",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "transcriber": {
- "description": "Configuration for the speech-to-text transcriber.",
- "properties": {
- "diarize": {
- "description": "Identify different speakers in the transcript.",
- "type": "boolean"
- },
- "first_ideal_message": {
- "description": "First nudge spoken when the caller goes silent past the\nidle threshold. Set `is_first_ideal_message_dynamic` to\n`true` to have the LLM regenerate this each time.\n",
- "type": "string"
- },
- "interruption_min_words": {
- "description": "Minimum number of words the caller must say before their speech is treated as an interruption.",
- "example": 2,
- "minimum": 1,
- "type": "integer"
- },
- "is_first_ideal_message_dynamic": {
- "description": "When true, `first_ideal_message` is treated as a prompt and the LLM generates a fresh nudge each call.",
- "type": "boolean"
- },
- "is_second_ideal_message_dynamic": {
- "description": "When true, `second_ideal_message` is treated as a prompt and the LLM generates a fresh nudge each call.",
- "type": "boolean"
- },
- "language": {
- "description": "Language code for the transcriber. Format and supported\nvalues depend on the provider (e.g. `en-US` for Deepgram,\n`hi-IN` for Sarvam). Applies regardless of which\n`provider` is selected.\n",
- "example": "en-US",
- "type": "string"
- },
- "max_call_duration_in_sec": {
- "description": "Hard upper bound on call length in seconds. The agent will end the call once this is reached.",
- "example": 600,
- "minimum": 1,
- "type": "integer"
- },
- "model": {
- "description": "The model to use for transcription (required when provider is `deepgram_stream`).",
- "enum": [
- "nova-3",
- "nova-2"
- ],
- "example": "nova-3",
- "type": "string"
- },
- "numerals": {
- "description": "Convert numbers from words to digits.",
- "type": "boolean"
- },
- "provider": {
- "description": "The speech-to-text provider to use.",
- "enum": [
- "deepgram_stream",
- "cartesia",
- "sarvam",
- "azure_stream",
- "soniox"
- ],
- "example": "deepgram_stream",
- "type": "string"
- },
- "punctuate": {
- "description": "Add punctuation to the transcript.",
- "type": "boolean"
- },
- "second_ideal_message": {
- "description": "Second nudge spoken if silence continues after the first.",
- "type": "string"
- },
- "should_apply_noise_reduction": {
- "description": "Reduce background noise on the inbound audio stream before transcription.",
- "type": "boolean"
- },
- "silence_timeout_ms": {
- "description": "Silence timeout in milliseconds.",
- "example": 400,
- "type": "integer"
- },
- "smart_format": {
- "description": "Apply smart formatting to the transcript.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "transfer": {
- "description": "Conditional call transfer to a human agent or another number.",
- "properties": {
- "enabled": {
- "type": "boolean"
- },
- "transfer_options": {
- "description": "Where to transfer the call and under what condition. The first matching condition wins. In an agent update, sending this list replaces all saved options. Omit it to keep them unchanged, or send an empty array to clear them.",
- "items": {
- "properties": {
- "backup_numbers": {
- "description": "Fallback numbers tried if the primary is unreachable.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "number": {
- "description": "Primary phone number to transfer to. Include country code with leading `+`.",
- "example": "+15551234567",
- "type": "string"
- },
- "transfer_condition": {
- "description": "Natural-language condition that triggers this transfer option.",
- "example": "Transfer if the customer asks to speak with a human.",
- "type": "string"
- },
- "transfer_message": {
- "description": "Message the agent says to the caller before executing the transfer.",
- "example": "Please hold while I connect you to one of our agents.",
- "type": "string"
- },
- "type": {
- "default": "static",
- "description": "`static` transfers to `number`. `dynamic` lets the agent\npick a number at runtime based on the conversation.\n",
- "enum": [
- "static",
- "dynamic"
- ],
- "type": "string"
- }
- },
- "required": [
- "number",
- "transfer_condition",
- "transfer_message"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "voice": {
- "dependentRequired": {
- "provider": [
- "voice_id"
- ]
- },
- "description": "Configuration for the text-to-speech voice. `provider` and `voice_id` identify the voice together, so send both to change it. `provider` on its own is not accepted, and a `voice_id` on its own leaves the voice as it was. The other fields here apply independently.",
- "properties": {
- "model": {
- "description": "TTS model identifier. Only consumed when `provider` is\n`cartesia` (e.g. `sonic-3.5`). For ElevenLabs and other\nproviders the model is implied by `voice_id` and this\nfield is ignored.\n",
- "example": "sonic-3.5",
- "type": "string"
- },
- "provider": {
- "description": "The voice provider to use. The current catalog is returned by the TTS providers list. Send `voice_id` alongside it.",
- "enum": [
- "eleven_labs",
- "google",
- "cartesia",
- "sarvam"
- ],
- "example": "eleven_labs",
- "type": "string"
- },
- "speech_speed": {
- "default": 1,
- "description": "Playback speed multiplier for the agent's voice. 1.0 is normal speed.",
- "maximum": 2,
- "minimum": 0.5,
- "type": "number"
- },
- "voice_id": {
- "description": "The provider's voice identifier, returned in the `name` field of the voices list (not the numeric `id`). Takes effect when `provider` is sent alongside it.",
- "example": "JBFqnCBsd6RMkjVDRZzb",
- "type": "string"
- }
- },
- "type": "object"
- },
- "voicemail": {
- "description": "Voicemail / answering-machine handling for outbound calls. Set this with the nested object shown here; the agent object returns these values as the flat fields `voicemail_enabled` and `voicemail_message`. Voicemail detection is an access-gated feature. If it isn't enabled for your account, [request access](https://omnidim.io/contact-us?reason=product&lock=1).",
- "properties": {
- "enabled": {
- "description": "Detect voicemail and leave your message instead of speaking to a machine.",
- "type": "boolean"
- },
- "message": {
- "description": "Message to leave when voicemail is detected.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "web_search": {
- "description": "Configuration for web search capabilities.",
- "properties": {
- "enabled": {
- "description": "Enable or disable web search functionality.",
- "type": "boolean"
- },
- "provider": {
- "description": "The search provider to use.",
- "enum": [
- "DuckDuckGo"
- ],
- "example": "DuckDuckGo",
- "type": "string"
- }
- },
- "type": "object"
- },
- "welcome_message": {
- "description": "Initial message the agent will say when answering a call.",
- "example": "Hello! How can I help you today?",
- "type": "string"
- }
- },
- "type": "object"
- },
- {
- "required": [
- "name",
- "welcome_message",
- "context_breakdown"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "description": "Agent configuration.",
+ "properties": {
+ "background_track": {
+ "description": "Ambient background noise that plays under the agent's voice.",
+ "properties": {
+ "enabled": {
+ "description": "Whether to mix the ambient track under the agent's audio.",
+ "type": "boolean"
+ },
+ "name": {
+ "description": "Ambient track to mix under the agent.",
+ "enum": [
+ "call_center",
+ "filler",
+ "office",
+ "office_1",
+ "restaurant"
+ ],
+ "type": "string"
+ },
+ "tts_volume_reduction": {
+ "description": "Amount to drop the agent's TTS volume while the ambient track plays, on a 0–1 scale. Helps the voice cut through without raising the overall mix.",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "volume": {
+ "default": 0.2,
+ "description": "Volume level on a 0–1 scale. Default 0.2.",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "call_type": {
+ "description": "Call type of the assistant.",
+ "enum": [
+ "Incoming",
+ "Outgoing"
+ ],
+ "type": "string"
+ },
+ "context_breakdown": {
+ "description": "List of context breakdowns, each containing `title`, `body`, and optional `is_enabled`.",
+ "items": {
+ "properties": {
+ "body": {
+ "description": "Body of the breakdown, the detailed prompt content.",
+ "example": "This agent helps customers with product inquiries and support issues.",
+ "type": "string"
+ },
+ "is_enabled": {
+ "default": true,
+ "description": "Whether this section is included in the prompt.",
+ "type": "boolean"
+ },
+ "title": {
+ "description": "Title of the breakdown.",
+ "example": "Purpose",
+ "type": "string"
+ }
+ },
+ "required": [
+ "title",
+ "body"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "dynamic_variables": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Key/value map used to substitute placeholders in the agent's\nprompt and welcome message at call time. Reference a variable\nin your prompt with `{{variable_name}}`. Useful for\npersonalising the same agent across many calls.\n",
+ "example": {
+ "customer_name": "Jane Doe",
+ "order_id": "ORD-12345"
+ },
+ "type": "object"
+ },
+ "end_call": {
+ "description": "Hang up automatically when a condition is met.",
+ "properties": {
+ "condition": {
+ "description": "Natural-language condition that triggers ending the call. Only evaluated when `enabled` is true.",
+ "example": "End the call once the customer's issue is resolved.",
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "message": {
+ "description": "What the agent says before hanging up.",
+ "example": "Thank you for contacting us. Have a great day!",
+ "type": "string"
+ },
+ "message_prompt": {
+ "description": "LLM prompt used to generate the closing line when `message_type` is `prompt`.",
+ "example": "End the call politely in the same language the user is speaking.",
+ "type": "string"
+ },
+ "message_type": {
+ "description": "`static` speaks `message` verbatim. `prompt` treats\n`message_prompt` as an LLM instruction and generates a\nfresh closing line each call (useful for matching the\ncaller's language and tone).\n",
+ "enum": [
+ "static",
+ "prompt"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "initial_ringing_sound_enabled": {
+ "description": "Plays a ringing tone after the call is picked up, until the agent starts speaking.",
+ "type": "boolean"
+ },
+ "is_interruption_allowed": {
+ "description": "Global toggle for whether the caller can interrupt the agent mid-sentence at any point in the call.",
+ "type": "boolean"
+ },
+ "is_welcome_message_dynamic": {
+ "description": "When true, the welcome message is treated as a directive the agent uses to generate a tailored greeting for each call, rather than being spoken word for word. When false, the welcome message is spoken exactly as written.",
+ "type": "boolean"
+ },
+ "is_welcome_message_interruption": {
+ "description": "Allow the caller to interrupt the welcome message. When false, the agent finishes speaking the welcome before listening.",
+ "type": "boolean"
+ },
+ "languages": {
+ "description": "Languages the agent should support. Pass each language as a display-name string exactly as it appears in the dashboard's language picker. Unrecognized names are skipped.",
+ "example": [
+ "English (India)",
+ "Hindi"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "model": {
+ "description": "Configuration for the language model.",
+ "properties": {
+ "model": {
+ "description": "The language model to use. The current catalog is returned by the LLM providers list.",
+ "enum": [
+ "azure-gpt-4.1-mini",
+ "azure-gpt-4.1-nano",
+ "azure-gpt-4o",
+ "azure-gpt-4o-mini",
+ "gemini-2.5-flash",
+ "gemini-2.5-flash-lite",
+ "gpt-3.5-turbo",
+ "gpt-4.1-mini",
+ "gpt-4.1-nano",
+ "gpt-4o",
+ "gpt-4o-mini",
+ "gpt-5.1",
+ "llama-3.3-70b-versatile"
+ ],
+ "example": "gpt-4.1-mini",
+ "type": "string"
+ },
+ "temperature": {
+ "description": "Controls randomness in the model's output (0.0 to 1.0).",
+ "example": 0.7,
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "name": {
+ "description": "Name for the agent.",
+ "example": "Customer Support Agent",
+ "type": "string"
+ },
+ "post_call_actions": {
+ "description": "Side effects that fire once the call ends. Configure email, webhook, or both.",
+ "properties": {
+ "email": {
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "extracted_variables": {
+ "description": "Variables the model should pull out of the conversation for the email.",
+ "items": {
+ "properties": {
+ "key": {
+ "description": "Unique identifier for the variable in the post-call payload.",
+ "example": "customer_issue",
+ "type": "string"
+ },
+ "prompt": {
+ "description": "Instruction for the model on what to pull out of the conversation.",
+ "example": "Identify the main issue the customer is experiencing.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key",
+ "prompt"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "include": {
+ "description": "Which sections to include in the email body.",
+ "items": {
+ "enum": [
+ "summary",
+ "extracted_variables",
+ "fullConversation",
+ "sentiment"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "recipients": {
+ "description": "Email addresses that should receive the notification.",
+ "example": [
+ "support@example.com"
+ ],
+ "items": {
+ "format": "email",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "trigger_call_statuses": {
+ "description": "Call outcomes that should fire this action. Omit to\nuse the default (`completed`, `voicemail_detected`).\nPass an explicit list to also include failed calls,\nno-answers, busy signals, etc.\n",
+ "example": [
+ "completed",
+ "voicemail_detected"
+ ],
+ "items": {
+ "enum": [
+ "completed",
+ "voicemail_detected",
+ "failed",
+ "no_answer",
+ "busy",
+ "cancelled"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "webhook": {
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "extracted_variables": {
+ "description": "Variables the model should pull out of the conversation for the webhook.",
+ "items": {
+ "properties": {
+ "key": {
+ "description": "Unique identifier for the variable in the post-call payload.",
+ "example": "customer_issue",
+ "type": "string"
+ },
+ "prompt": {
+ "description": "Instruction for the model on what to pull out of the conversation.",
+ "example": "Identify the main issue the customer is experiencing.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key",
+ "prompt"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "include": {
+ "description": "Which sections to include in the webhook body.",
+ "items": {
+ "enum": [
+ "summary",
+ "extracted_variables",
+ "fullConversation",
+ "sentiment"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "trigger_call_statuses": {
+ "description": "Call outcomes that should fire this webhook. Omit to\nuse the default (`completed`, `voicemail_detected`).\n",
+ "example": [
+ "completed",
+ "failed"
+ ],
+ "items": {
+ "enum": [
+ "completed",
+ "voicemail_detected",
+ "failed",
+ "no_answer",
+ "busy",
+ "cancelled"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "url": {
+ "description": "Endpoint that receives a POST with the call payload.",
+ "example": "https://your-webhook-endpoint.com/omnidim-callback",
+ "format": "uri",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "timezone": {
+ "description": "IANA timezone for this agent, for example `Asia/Kolkata`. Sets the local date and time the agent works with during calls. If not set, the account timezone is used as fallback. Pass an empty string to clear it.",
+ "example": "America/New_York",
+ "type": "string"
+ },
+ "transcriber": {
+ "description": "Configuration for the speech-to-text transcriber.",
+ "properties": {
+ "diarize": {
+ "description": "Identify different speakers in the transcript.",
+ "type": "boolean"
+ },
+ "first_ideal_message": {
+ "description": "First nudge spoken when the caller goes silent past the\nidle threshold. Set `is_first_ideal_message_dynamic` to\n`true` to have the LLM regenerate this each time.\n",
+ "type": "string"
+ },
+ "interruption_min_words": {
+ "description": "Minimum number of words the caller must say before their speech is treated as an interruption.",
+ "example": 2,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "is_first_ideal_message_dynamic": {
+ "description": "When true, `first_ideal_message` is treated as a prompt and the LLM generates a fresh nudge each call.",
+ "type": "boolean"
+ },
+ "is_second_ideal_message_dynamic": {
+ "description": "When true, `second_ideal_message` is treated as a prompt and the LLM generates a fresh nudge each call.",
+ "type": "boolean"
+ },
+ "language": {
+ "description": "Language code for the transcriber. Format and supported\nvalues depend on the provider (e.g. `en-US` for Deepgram,\n`hi-IN` for Sarvam). Applies regardless of which\n`provider` is selected.\n",
+ "example": "en-US",
+ "type": "string"
+ },
+ "max_call_duration_in_sec": {
+ "description": "Hard upper bound on call length in seconds. The agent will end the call once this is reached.",
+ "example": 600,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "model": {
+ "description": "The model to use for transcription (required when provider is `deepgram_stream`).",
+ "enum": [
+ "nova-3",
+ "nova-2"
+ ],
+ "example": "nova-3",
+ "type": "string"
+ },
+ "numerals": {
+ "description": "Convert numbers from words to digits.",
+ "type": "boolean"
+ },
+ "provider": {
+ "description": "The speech-to-text provider to use.",
+ "enum": [
+ "deepgram_stream",
+ "cartesia",
+ "sarvam",
+ "azure_stream",
+ "soniox"
+ ],
+ "example": "deepgram_stream",
+ "type": "string"
+ },
+ "punctuate": {
+ "description": "Add punctuation to the transcript.",
+ "type": "boolean"
+ },
+ "second_ideal_message": {
+ "description": "Second nudge spoken if silence continues after the first.",
+ "type": "string"
+ },
+ "should_apply_noise_reduction": {
+ "description": "Reduce background noise on the inbound audio stream before transcription.",
+ "type": "boolean"
+ },
+ "silence_timeout_ms": {
+ "description": "Silence timeout in milliseconds.",
+ "example": 400,
+ "type": "integer"
+ },
+ "smart_format": {
+ "description": "Apply smart formatting to the transcript.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "transfer": {
+ "description": "Conditional call transfer to a human agent or another number.",
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "transfer_options": {
+ "description": "Where to transfer the call and under what condition. The first matching condition wins. In an agent update, sending this list replaces all saved options. Omit it to keep them unchanged, or send an empty array to clear them.",
+ "items": {
+ "properties": {
+ "backup_numbers": {
+ "description": "Fallback numbers tried if the primary is unreachable.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "number": {
+ "description": "Primary phone number to transfer to. Include country code with leading `+`.",
+ "example": "+15551234567",
+ "type": "string"
+ },
+ "transfer_condition": {
+ "description": "Natural-language condition that triggers this transfer option.",
+ "example": "Transfer if the customer asks to speak with a human.",
+ "type": "string"
+ },
+ "transfer_message": {
+ "description": "Message the agent says to the caller before executing the transfer.",
+ "example": "Please hold while I connect you to one of our agents.",
+ "type": "string"
+ },
+ "type": {
+ "default": "static",
+ "description": "`static` transfers to `number`. `dynamic` lets the agent\npick a number at runtime based on the conversation.\n",
+ "enum": [
+ "static",
+ "dynamic"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "number",
+ "transfer_condition",
+ "transfer_message"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "voice": {
+ "dependentRequired": {
+ "provider": [
+ "voice_id"
+ ]
+ },
+ "description": "Configuration for the text-to-speech voice. `provider` and `voice_id` identify the voice together, so send both to change it. `provider` on its own is not accepted, and a `voice_id` on its own leaves the voice as it was. The other fields here apply independently.",
+ "properties": {
+ "model": {
+ "description": "TTS model identifier. Only consumed when `provider` is\n`cartesia` (e.g. `sonic-3.5`). For ElevenLabs and other\nproviders the model is implied by `voice_id` and this\nfield is ignored.\n",
+ "example": "sonic-3.5",
+ "type": "string"
+ },
+ "provider": {
+ "description": "The voice provider to use. The current catalog is returned by the TTS providers list. Send `voice_id` alongside it.",
+ "enum": [
+ "eleven_labs",
+ "google",
+ "cartesia",
+ "sarvam"
+ ],
+ "example": "eleven_labs",
+ "type": "string"
+ },
+ "speech_speed": {
+ "default": 1,
+ "description": "Playback speed multiplier for the agent's voice. 1.0 is normal speed.",
+ "maximum": 2,
+ "minimum": 0.5,
+ "type": "number"
+ },
+ "voice_id": {
+ "description": "The provider's voice identifier, returned in the `name` field of the voices list (not the numeric `id`). Takes effect when `provider` is sent alongside it.",
+ "example": "JBFqnCBsd6RMkjVDRZzb",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "voicemail": {
+ "description": "Voicemail / answering-machine handling for outbound calls. Set this with the nested object shown here; the agent object returns these values as the flat fields `voicemail_enabled` and `voicemail_message`. Voicemail detection is an access-gated feature. If it isn't enabled for your account, [request access](https://omnidim.io/contact-us?reason=product&lock=1).",
+ "properties": {
+ "enabled": {
+ "description": "Detect voicemail and leave your message instead of speaking to a machine.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message to leave when voicemail is detected.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "web_search": {
+ "description": "Configuration for web search capabilities.",
+ "properties": {
+ "enabled": {
+ "description": "Enable or disable web search functionality.",
+ "type": "boolean"
+ },
+ "provider": {
+ "description": "The search provider to use.",
+ "enum": [
+ "DuckDuckGo"
+ ],
+ "example": "DuckDuckGo",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "welcome_message": {
+ "description": "Initial message the agent will say when answering a call.",
+ "example": "Hello! How can I help you today?",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "required": [
+ "name",
+ "welcome_message",
+ "context_breakdown"
+ ],
+ "type": "object"
+ }
+]