POST
Create assistant
This endpoint allows you to create a new AI assistant with comprehensive configuration options.

Engine Modes

The API supports three engine modes, each with different capabilities:

Request Body

Core Required Fields

name
string
required
The name of the assistant (max 255 characters)
voice_id
integer
required
The voice ID to use for the assistant. Use the Get Voices endpoint with the mode parameter to get compatible voices for your engine mode.
language_id
integer
required
The language ID for the assistant. Use the Get Languages endpoint to get available languages.
type
string
required
The assistant type. Options: inbound, outbound
mode
string
required
The engine mode. Options: pipeline, multimodal, dualplex
timezone
string
required
The timezone for the assistant (e.g., “Europe/Bucharest”, “America/New_York”)
initial_message
string
required
The initial message the assistant will speak when the call starts (max 200 characters)
system_prompt
string
required
The system prompt that defines the assistant’s behavior and personality

Mode-Specific Fields

llm_model_id
integer
The LLM model ID to use. Required for pipeline mode.Use the Get Models endpoint to get available models.
multimodal_model_id
integer
The multimodal model ID. Required for multimodal and dualplex modes.Use the Get Models endpoint to get available multimodal models.
chat_llm_fallback_id
integer
Fallback LLM model ID for tool calls in multimodal/dualplex modes. Optional.
turn_detection_threshold
number
Turn detection sensitivity for multimodal/dualplex modes (0-1). Default: auto

Secondary Languages

secondary_language_ids
integer[]
Array of additional language IDs the assistant can speak. The assistant will auto-detect and switch languages.

Knowledgebase Settings

knowledgebase_id
integer
The knowledgebase ID to attach to this assistant
knowledgebase_mode
string
How to use the knowledgebase. Options:
  • function_call - AI calls a function to search (required for multimodal/dualplex)
  • prompt - Knowledge is injected into prompt (pipeline only)

Organization

folder_id
integer
ID of a folder to place this assistant in. Must belong to your account. Send null to leave the assistant uncategorized.
label_ids
integer[]
Array of label IDs to apply to this assistant. Each label must belong to your account.

Phone Number

phone_number_id
integer
The ID of a phone number to assign to the assistant. Must belong to your account.
For inbound assistants, the phone number cannot be a Caller ID type and cannot be already assigned to another inbound assistant.

Custom Mid-Call Tools

tool_ids
integer[]
Array of custom mid-call tool IDs to attach. Each tool must belong to your account.

Built-in Tools

tools
array
Array of built-in tools to enable. Each tool has a type and tool-specific fields.

Voice and TTS Settings

tts_emotion_enabled
boolean
default:"true"
Whether to enable emotional text-to-speech synthesis
voice_stability
number
default:"0.70"
Voice stability setting (0-1). Higher = more consistent voice
voice_similarity
number
default:"0.50"
Voice similarity setting (0-1). Higher = closer to original voice
speech_speed
number
default:"1.00"
Speech speed multiplier (0.7-1.2)
llm_temperature
number
default:"0.10"
LLM temperature setting (0-1). Lower = more deterministic
synthesizer_provider_id
integer
Custom TTS provider ID. Auto-selected based on language if not provided. Use the Get Synthesizer Providers endpoint to discover available providers.
transcriber_provider_id
integer
Custom STT provider ID. Auto-selected based on language if not provided. Pipeline mode only. Use the Get Transcriber Providers endpoint to discover available providers.

Call Behavior Settings

allow_interruptions
boolean
default:"true"
Whether to allow caller interruptions.
Cannot be disabled for multimodal and dualplex modes.
fillers
boolean
default:"false"
Whether to use filler audio during processing (e.g., “um”, “let me check”).
Only available for pipeline mode.
filler_config
object
Custom filler word profiles per category. If not provided, defaults are set based on the assistant’s language. Each category is an array of short phrases.
  • positive: Filler words for positive/affirmative responses (e.g., “Great!”, “Perfect!”)
  • negative: Filler words for negative/neutral responses (e.g., “Hmm.”, “Mhm.”)
  • question: Filler words when processing a question (e.g., “Hmm.”, “Let me think.”)
  • neutral: Filler words for neutral acknowledgments (e.g., “Ok.”, “I understand.”)
record
boolean
default:"false"
Whether to record the call
enable_noise_cancellation
boolean
default:"true"
Whether to enable noise cancellation
wait_for_customer
boolean
default:"false"
If true, the assistant waits for the customer to speak first

Timing Settings

max_duration
integer
default:"600"
Maximum call duration in seconds (20-1200)
max_silence_duration
integer
default:"40"
Maximum silence duration before re-engagement in seconds (1-360)
max_initial_silence_duration
integer
Maximum silence at call start before ending (1-120 seconds). Optional.
ringing_time
integer
default:"30"
Maximum ringing time before giving up (1-60 seconds)

Re-engagement Settings

reengagement_interval
integer
default:"30"
Re-engagement interval in seconds (7-600)
reengagement_prompt
string
Custom prompt for re-engagement messages (max 1000 characters)Example: "Are you still there? Do you have any other questions?"

Voicemail Settings

end_call_on_voicemail
boolean
default:"true"
Whether to end call when voicemail is detected
voice_mail_message
string
Message to leave on voicemail before hanging up (max 1000 characters)

Endpoint Detection

endpoint_type
string
default:"vad"
Voice activity detection type. Options: vad, ai
endpoint_sensitivity
number
default:"0.5"
Endpoint sensitivity level (0-5)
interrupt_sensitivity
number
default:"0.5"
Interrupt sensitivity level (0-5)
min_interrupt_words
integer
Minimum words before interruption is allowed (0-10). Set to enable.

Ambient Sound

ambient_sound
string
Background ambient sound. Options: off, office, city, forest, crowded_room, cafe, nature
ambient_sound_volume
number
default:"0.5"
Ambient sound volume level (0-1)

Webhook Configuration

is_webhook_active
boolean
default:"false"
Whether webhook notifications are enabled
webhook_url
string
The webhook URL for post-call notifications. Required if is_webhook_active is true.
send_webhook_only_on_completed
boolean
default:"true"
Whether to send webhooks only on completed calls (not failed/no-answer)
include_recording_in_webhook
boolean
default:"true"
Whether to include recording URL in webhook payload

Post-Call Evaluation

post_call_evaluation
boolean
default:"true"
Whether to enable AI post-call evaluation
post_call_schema
array
Schema definition for post-call data extraction

Variables

variables
object
Key-value pairs of custom variables accessible in prompts via {{variable_name}}

Conversation Ended Settings

conversation_inactivity_timeout
integer
default:"30"
Minutes of chat inactivity before the conversation is considered ended (1-1440)
conversation_ended_retrigger
boolean
default:"false"
Whether to allow re-triggering the conversation after it ends due to inactivity
conversation_ended_webhook_url
string
Webhook URL called when a chat conversation ends due to inactivity. Separate from the main call webhook.

Example Requests

Pipeline Mode Assistant

Multimodal Mode Assistant

Dualplex Mode Assistant


Response

message
string
Success message confirming assistant creation
data
object

Notes

  • All required fields must be provided for successful assistant creation
  • Use the Get Voices endpoint with mode parameter to get compatible voices
  • For multimodal/dualplex modes, knowledgebase_mode must be function_call
  • For multimodal/dualplex modes, allow_interruptions is always enabled
  • Fillers are only available in pipeline mode
  • The assistant is created with inactive status by default