Update an assistant
Update an existing assistant. Only provided fields will be updated.
Authorization
BearerAuth API key authentication. Get your key from the dashboard.
In: header
Path Parameters
Assistant UUID
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/assistants/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{
"assistant": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "Customer Support Agent",
"business_name": "Acme Corp",
"notification_email": "support@acme.com",
"notification_emails": [
"support@acme.com",
"sales@acme.com"
],
"recording_consent": {
"enabled": true,
"message": "This call may be recorded and processed by an AI assistant. Press 1 to agree, or press 2 to hang up."
},
"first_message": "Hello, welcome to Acme. How can I help you today?",
"is_active": true,
"autonomous_silence_handling": true,
"silence_timeout_seconds": 8,
"max_duration_seconds": 1800,
"voicemail_detection": true,
"voicemail_message": "Hello, this is Acme Corp. We will call you back at a later time. Thank you!",
"gdpr_mode": false,
"webhook_url": "http://example.com",
"webhook_secret": "string",
"webhook_events": [
"string"
],
"analysis_plan": {
"structured_data_plan": {
"enabled": true,
"schema": {
"type": "object",
"properties": {
"intent": {
"type": "string"
},
"sentiment": {
"type": "string",
"enum": [
"positive",
"neutral",
"negative"
]
},
"appointment_booked": {
"type": "boolean"
}
}
},
"messages": [
{
"role": "system",
"content": "Analyze the following call transcript according to this schema: {{schema}}"
}
]
},
"min_messages_threshold": 5
},
"stt_config": {
"provider": "deepgram",
"model": "nova-3",
"language": "en",
"keyterms": [
"Acme",
"VoiceDock"
],
"smart_format": true,
"endpointing": 25,
"numerals": true,
"filler_words": true,
"utterance_end_ms": 1000,
"no_delay": true
},
"llm_config": {
"provider": "openai",
"model": "gpt-5.4",
"max_completion_tokens": 400,
"temperature": 0.7,
"messages": [
{
"role": "system",
"content": "string"
}
],
"tools": [
{
"name": "lookup_contact",
"description": "Look up contact information by name or phone number",
"url": "https://n8n.example.com/webhook/contacts",
"async": false,
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Name or phone number to search"
}
},
"required": [
"query"
]
}
}
]
},
"tts_config": {
"provider": "elevenlabs",
"voice_id": "voice-id",
"model": "eleven_flash_v2_5",
"stability": 0.5,
"similarity_boost": 0.75,
"style": 0,
"use_speaker_boost": true,
"speed": 1,
"apply_text_normalization": "auto",
"apply_language_text_normalization": false,
"language": "nl"
},
"speech_config": {
"turn_taking": {
"endpointing_min_delay": 0.4,
"endpointing_max_delay": 2,
"interruption_min_duration": 0.3,
"interruption_min_words": 2,
"false_interruption_timeout": 1.5
},
"pronunciation": [
{
"from": "VoiceDock",
"to": "Wojs Dock"
}
],
"background_audio": {
"enabled": true,
"clip": "office",
"volume": 0.3
},
"silence": {
"messages": [
"Are you still there?",
"I can still hear you, take your time."
],
"final_message": "I will end the call for now. Feel free to call back.",
"first_check_seconds": 3,
"interval_seconds": 12,
"max_attempts": 3
},
"end_call_message": "Thanks for calling. Goodbye.",
"first_message_outbound": "Hello, you are speaking with the assistant of Acme. Do you have a moment?"
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
}{
"error": "Invalid API key",
"message": "string"
}{
"error": "Invalid API key",
"message": "string"
}{
"error": "Invalid API key",
"message": "string"
}Create a new assistant POST
Create a new AI voice assistant with custom STT, LLM, and TTS configurations. Beyond `name`, a pipeline agent also needs `tts_config`: a voice is provider-specific, so there is no default the platform can pick for you. A realtime (speech-to-speech) agent needs neither `stt_config` nor `tts_config`; everything else falls back to a platform default.
Delete an assistant DELETE
Delete an assistant. Any phone numbers assigned to this assistant will have their assistant_id set to null.