Skip to main content
PUT
/
v1
/
agents
/
{agentId}
curl -X PUT https://api.telzino.com/v1/agents/123e4567-e89b-12d3-a456-426614174000 \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Agent Name",
    "systemPrompt": "Updated system prompt with new instructions...",
    "status": "active",
    "ttsModel": "cartesia",
    "voiceSettings": {"voice_id": "f786b574-daa5-4673-aa0c-cbe3e8534c02", "speed": 1.1},
    "transferEnabled": true,
    "transferRules": "Transfer to +15559876543 for technical issues",
    "language": "multi",
    "timezone": "Europe/London",
    "knowledgebaseLinks": ["https://example.com/updated-faq"]
  }'
{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "organization_id": "987fcdeb-51a2-3bc4-d567-890123456789",
    "name": "Updated Agent Name",
    "description": "Handles customer inquiries",
    "greeting_message": "Hello! How can I help you today?",
    "system_prompt": "Updated system prompt...",
    "agent_type": "simple",
    "model": "gpt-4.1",
    "voice_model": "gpt-4o-realtime-preview",
    "stt_model": "deepgram",
    "tts_model": "cartesia",
    "voice_settings": {"voice_id": "f786b574-daa5-4673-aa0c-cbe3e8534c02", "speed": 1.1},
    "config": {},
    "extensions": {},
    "integrations": {},
    "transfer_enabled": true,
    "transfer_rules": "Transfer to +15559876543 for technical issues",
    "language": "multi",
    "timezone": "Europe/London",
    "enable_recording": false,
    "echo_detection": false,
    "call_detection": false,
    "knowledgebase_links": ["https://example.com/updated-faq"],
    "email": null,
    "email_tool_enabled": false,
    "email_server_id": null,
    "pronunciations": [],
    "status": "active",
    "is_active": true,
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-16T14:20:00Z"
  }
}

Path Parameters

agentId
string
required
The unique identifier of the agent (UUID format)

Request Body

All fields are optional. Only include the fields you want to update.

Basic Information

name
string
Display name of the agent (1-255 characters)
description
string
Description of what the agent does
greetingMessage
string
Initial message the agent says when call starts
systemPrompt
string
System prompt defining agent behavior and personality
agentType
string
Type of agent configuration.Supported values: simple, advanced, custom, appointment_scheduler, receptionist, message_taker
status
string
Agent activation status.Supported values:
  • active - Agent is available to receive calls
  • inactive - Agent is temporarily disabled
  • cancelled - Agent is permanently disabled
  • pending - Agent is pending activation

AI/Voice Model Configuration

model
string
AI model used for the agent.Supported values: gpt-4.1 (recommended), gpt-4.1-mini, gpt-4o, gpt-4o-mini
voiceModel
string
Voice model for real-time speech
sttModel
string
Speech-to-text model.Supported values: deepgram
ttsModel
string
Text-to-speech model.Supported values: cartesia, minimax
voiceSettings
object
Voice configuration settings. Structure varies based on ttsModel:For Cartesia:
{"voice_id": "f786b574-daa5-4673-aa0c-cbe3e8534c02", "speed": 1.0}
For MiniMax:
{"voice_id": "English_radiant_girl", "model": "speech-2.6-turbo", "speed": 1.0}
Advanced Voice Timing (optional, applies to all TTS models):
PropertyTypeDefaultDescription
min_endpointing_delaynumber0.1Seconds to wait after the caller stops speaking before the agent responds.
max_endpointing_delaynumber2.0Maximum seconds to wait when the caller pauses mid-sentence.
vad_min_silence_durationnumber(system default)Minimum silence duration in seconds for Voice Activity Detection. Omit to use the system default.
Example with advanced timing:
{
  "voice_id": "f786b574-daa5-4673-aa0c-cbe3e8534c02",
  "speed": 1.0,
  "min_endpointing_delay": 0.1,
  "max_endpointing_delay": 5.0,
  "vad_min_silence_duration": 0.55
}

Call Features

transferEnabled
boolean
Whether SIP call transfer is enabled. Supports:
  • SIP extensions: sip:extension@hostname
  • US phone numbers: Automatically formatted to tel:+1XXXXXXXXXX
emailToolEnabled
boolean
Whether the agent can send emails during or after calls
emailToolInstructions
string
Instructions for the agent on how and when to use the email tool
callDetection
boolean
Whether to enable answering machine / voicemail detection
echoDetection
boolean
Whether to enable echo detection during calls
enableRecording
boolean
Enable call recording. Recordings are saved to cloud storage and accessible via the Call Logs API.
transferRules
string
Rules and conditions for call transfers. Describes when and where the agent should transfer calls.Example: "Transfer to +15551234567 if the caller asks for billing support. Transfer to +15559876543 for technical issues."
email
array
Array of email addresses used for notifications and the email tool.Example: ["[email protected]", "[email protected]"]
emailServerId
string | null
UUID of the email server to use for this agent. Must belong to the same account. Pass null to revert to the account’s default email server.Use the List Email Servers endpoint to retrieve available IDs.

Localization

language
string
Agent language for speech recognition and responses.Supported values:
  • en-US - English (US)
  • es-US - Spanish (US)
  • multi - Multilingual (English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, Dutch)
timezone
string
Agent timezone in IANA format. Used for date/time operations and calendar scheduling.Example: "America/New_York", "Europe/London", "Asia/Tokyo"

Knowledge Base

Array of URLs the agent can reference for knowledge. The content at these URLs is ingested and made available to the agent during conversations.Example: ["https://example.com/faq", "https://example.com/pricing"]

Pronunciations

pronunciations
array
Custom pronunciation rules for specific words and names in IPA format. Replaces the entire pronunciations list for the agent.Each entry is an object with:
  • word — The word or name (1–100 characters)
  • phonemes — The IPA phoneme string
Pass an empty array [] to clear all pronunciation rules.Example:
[
  { "word": "Telzino", "phonemes": "<<t|ɛ|l|ˈz|iː|n|oʊ>>" },
  { "word": "jacobsen", "phonemes": "<<ˈ|dʒ|eɪ|k|ə|b|s|ə|n>>" }
]

Advanced Configuration

config
object
General configuration object.Common properties:
PropertyTypeDescription
enable_recordingbooleanEnable call recording
user_timezonestringIANA timezone (e.g., America/New_York)
inactivity_timeoutnumberSeconds before inactivity prompt
ambient_typestringType of ambient background audio
ambient_volumenumberVolume level for ambient audio
thinking_sounds_enabledbooleanEnable thinking/processing sounds during pauses
thinking_volumenumberVolume level for thinking sounds
thinking_clip_idstringSound clip to play while the agent is thinking. KEYBOARD_TYPING (default) or KEYBOARD_TYPING2
background_audio_enabledbooleanEnable background audio during calls
summary_contextstringAdditional instructions for the AI-generated call summary. Use this to tell the summary what to focus on or what data to extract (e.g., "Focus on customer complaints. Extract any mentioned order numbers.").
extensions
object
Extensions configuration for webhooks and MCP servers.Webhook structure:
{
  "tools": [
    {
      "type": "webhook",
      "name": "Log_Call_To_CRM",
      "friendlyName": "Log to CRM",
      "description": "Logs call details and transcript to the CRM after the call ends",
      "condition": "after_call",
      "method": "POST",
      "url": "https://api.yourcrm.com/calls/log",
      "headers": [
        { "key": "Authorization", "value": "Bearer YOUR_API_TOKEN" }
      ],
      "parameters": [
        { "key": "caller_phone", "value": "" },
        { "key": "call_summary", "value": "" },
        { "key": "transcript", "value": "" },
        { "key": "sentiment", "value": "" }
      ]
    }
  ],
  "mcp_servers": []
}
Webhook conditions:
  • before_call - Execute before the agent answers
  • during_call - Execute while call is active
  • after_call - Execute after call ends
See Webhooks documentation for complete details and examples.
Integrations (Google Calendar, Outlook, ModMed) are configured via the Telzino Dashboard UI, not through this API.
curl -X PUT https://api.telzino.com/v1/agents/123e4567-e89b-12d3-a456-426614174000 \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Agent Name",
    "systemPrompt": "Updated system prompt with new instructions...",
    "status": "active",
    "ttsModel": "cartesia",
    "voiceSettings": {"voice_id": "f786b574-daa5-4673-aa0c-cbe3e8534c02", "speed": 1.1},
    "transferEnabled": true,
    "transferRules": "Transfer to +15559876543 for technical issues",
    "language": "multi",
    "timezone": "Europe/London",
    "knowledgebaseLinks": ["https://example.com/updated-faq"]
  }'
{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "organization_id": "987fcdeb-51a2-3bc4-d567-890123456789",
    "name": "Updated Agent Name",
    "description": "Handles customer inquiries",
    "greeting_message": "Hello! How can I help you today?",
    "system_prompt": "Updated system prompt...",
    "agent_type": "simple",
    "model": "gpt-4.1",
    "voice_model": "gpt-4o-realtime-preview",
    "stt_model": "deepgram",
    "tts_model": "cartesia",
    "voice_settings": {"voice_id": "f786b574-daa5-4673-aa0c-cbe3e8534c02", "speed": 1.1},
    "config": {},
    "extensions": {},
    "integrations": {},
    "transfer_enabled": true,
    "transfer_rules": "Transfer to +15559876543 for technical issues",
    "language": "multi",
    "timezone": "Europe/London",
    "enable_recording": false,
    "echo_detection": false,
    "call_detection": false,
    "knowledgebase_links": ["https://example.com/updated-faq"],
    "email": null,
    "email_tool_enabled": false,
    "email_server_id": null,
    "pronunciations": [],
    "status": "active",
    "is_active": true,
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-16T14:20:00Z"
  }
}

Update Behavior

  • Only provided fields are updated; omitted fields retain their current values
  • The updated_at timestamp is automatically set to the current time
  • The provider field cannot be changed after creation