Documentation Index
Fetch the complete documentation index at: https://docs.gloriagent.ai/llms.txt
Use this file to discover all available pages before exploring further.
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:
| Mode | Description | Required Fields |
|---|
pipeline | Traditional STT → LLM → TTS pipeline | llm_model_id |
multimodal | Real-time multimodal AI | multimodal_model_id |
dualplex | Multimodal brain + custom TTS voice | multimodal_model_id |
Request Body
Core Required Fields
The name of the assistant (max 255 characters)
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.
The language ID for the assistant. Use the Get Languages endpoint to get available languages.
The assistant type. Options: inbound, outbound
The engine mode. Options: pipeline, multimodal, dualplex
The timezone for the assistant (e.g., “Europe/Bucharest”, “America/New_York”)
The initial message the assistant will speak when the call starts (max 200 characters)
The system prompt that defines the assistant’s behavior and personality
Mode-Specific Fields
The LLM model ID to use. Required for pipeline mode.Use the Get Models endpoint to get available models.
The multimodal model ID. Required for multimodal and dualplex modes.Use the Get Models endpoint to get available multimodal models.
Fallback LLM model ID for tool calls in multimodal/dualplex modes. Optional.
Turn detection sensitivity for multimodal/dualplex modes (0-1). Default: auto
Secondary Languages
Array of additional language IDs the assistant can speak. The assistant will auto-detect and switch languages."secondary_language_ids": [2, 3, 4]
Knowledgebase Settings
The knowledgebase ID to attach to this assistant
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)
Phone Number
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.
Array of custom mid-call tool IDs to attach. Each tool must belong to your account.
Array of built-in tools to enable. Each tool has a type and tool-specific fields.
call_transfer - Transfer the call to another phone number
phone_number (required): Phone number to transfer to (e.g., “+1234567890”)
description: When to transfer the call
custom: If true, AI can determine transfer number dynamically
timezone: Timezone for transfer availability
end_call - End the call programmatically
description: When the AI should end the call
dtmf_input - Send DTMF tones (keypad input)
description: When to use DTMF input (for IVR navigation)
calendar_integration - Schedule appointments via Cal.com
calcom_api_key (required): Your Cal.com API key
calcom_event_slug (required): The event type slug
description: When to offer scheduling
"tools": [
{
"type": "call_transfer",
"phone_number": "+1234567890",
"description": "Transfer when customer requests human support"
},
{
"type": "dtmf_input",
"description": "Navigate IVR menus when needed"
},
{
"type": "end_call",
"description": "End call when customer confirms satisfaction"
}
]
Voice and TTS Settings
Whether to enable emotional text-to-speech synthesis
Voice stability setting (0-1). Higher = more consistent voice
Voice similarity setting (0-1). Higher = closer to original voice
Speech speed multiplier (0.7-1.2)
LLM temperature setting (0-1). Lower = more deterministic
Custom TTS provider ID. Auto-selected based on language if not provided.
Custom STT provider ID. Auto-selected based on language if not provided. Pipeline mode only.
Call Behavior Settings
Whether to allow caller interruptions.Cannot be disabled for multimodal and dualplex modes.
Whether to use filler audio during processing (e.g., “um”, “let me check”).Only available for pipeline mode.
Whether to record the call
enable_noise_cancellation
Whether to enable noise cancellation
If true, the assistant waits for the customer to speak first
Timing Settings
Maximum call duration in seconds (20-1200)
Maximum silence duration before re-engagement in seconds (1-360)
max_initial_silence_duration
Maximum silence at call start before ending (1-120 seconds). Optional.
Maximum ringing time before giving up (1-60 seconds)
Re-engagement Settings
Re-engagement interval in seconds (7-600)
Custom prompt for re-engagement messages (max 1000 characters)Example: "Are you still there? Do you have any other questions?"
Voicemail Settings
Whether to end call when voicemail is detected
Message to leave on voicemail before hanging up (max 1000 characters)
Endpoint Detection
Voice activity detection type. Options: vad, ai
Endpoint sensitivity level (0-5)
Interrupt sensitivity level (0-5)
Minimum words before interruption is allowed (0-10). Set to enable.
Ambient Sound
Background ambient sound. Options: off, office, city, forest, crowded_room, cafe, nature
Ambient sound volume level (0-1)
Webhook Configuration
Whether webhook notifications are enabled
The webhook URL for post-call notifications. Required if is_webhook_active is true.
send_webhook_only_on_completed
Whether to send webhooks only on completed calls (not failed/no-answer)
include_recording_in_webhook
Whether to include recording URL in webhook payload
Post-Call Evaluation
Whether to enable AI post-call evaluation
Schema definition for post-call data extractionShow post_call_schema properties
Field name (3-16 chars, lowercase, alphanumeric and underscores only)
Data type. Options: string, number, bool
Description of what this field represents (3-255 characters)
"post_call_schema": [
{"name": "status", "type": "bool", "description": "Was the call objective achieved"},
{"name": "summary", "type": "string", "description": "Brief summary of the call"}
]
Variables
Key-value pairs of custom variables accessible in prompts via {{variable_name}}"variables": {
"company_name": "Acme Corp",
"product": "Premium Widget",
"support_email": "support@acme.com"
}
Example Requests
Pipeline Mode Assistant
{
"name": "Sales Assistant",
"voice_id": 1,
"language_id": 1,
"type": "outbound",
"mode": "pipeline",
"timezone": "Europe/Bucharest",
"initial_message": "Hello! How can I help you today?",
"system_prompt": "You are a professional sales assistant...",
"llm_model_id": 2,
"secondary_language_ids": [2, 3],
"knowledgebase_id": 1,
"knowledgebase_mode": "prompt",
"fillers": true,
"tool_ids": [1, 5],
"tools": [
{"type": "end_call", "description": "End call when customer is satisfied"},
{"type": "call_transfer", "phone_number": "+1234567890", "description": "Transfer to support"}
],
"reengagement_interval": 20,
"reengagement_prompt": "Are you still there?"
}
Multimodal Mode Assistant
{
"name": "Support Bot",
"voice_id": 41,
"language_id": 1,
"type": "inbound",
"mode": "multimodal",
"timezone": "America/New_York",
"initial_message": "Hi! Welcome to support.",
"system_prompt": "You are a helpful support agent...",
"multimodal_model_id": 1,
"chat_llm_fallback_id": 2,
"turn_detection_threshold": 0.7,
"knowledgebase_id": 1,
"knowledgebase_mode": "function_call",
"tts_emotion_enabled": false
}
Dualplex Mode Assistant
{
"name": "Premium Agent",
"voice_id": 1,
"language_id": 2,
"type": "outbound",
"mode": "dualplex",
"timezone": "Europe/Bucharest",
"initial_message": "Buna ziua!",
"system_prompt": "Esti un asistent profesionist...",
"multimodal_model_id": 4,
"chat_llm_fallback_id": 2,
"secondary_language_ids": [1, 3],
"knowledgebase_id": 1,
"knowledgebase_mode": "function_call",
"ambient_sound": "office",
"ambient_sound_volume": 0.3
}
Response
Success message confirming assistant creation
The unique identifier of the created assistant
The name of the assistant
The current status (inactive for new assistants)
The type (inbound or outbound)
The engine mode (pipeline, multimodal, or dualplex)
{
"message": "Assistant created successfully",
"data": {
"id": 789,
"name": "Sales Assistant",
"status": "inactive",
"type": "outbound",
"mode": "pipeline"
}
}
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