Update assistant
https://app.sulus.ai/api/assistants/{assistantId}
Update an assistant (re-renders the prompt, syncs live)
Authentication
Send a bearer token created on your dashboard's Developer page:
Authorization: Bearer <YOUR_API_KEY>
Path parameters
assistantId
string
Required
The assistant's public id (UUID).
uuid — the public assistant_idRequest body
name
string
Required
Assistant display name (max 40 characters).
required|string|max:40assistants.nametype
string
Optional
Nullable
Assistant type.
nullable|string|in:demo,productionassistants.typeuser_id
integer
Optional
Nullable
Owner assignment — honoured only for admin roles.
nullable|integer|exists:users,idassistants.user_idtemplate_id
integer
Optional
Nullable
Prompt template the assistant is built from.
nullable|integerassistants.template_idfirstMessage
string
Optional
Nullable
What the assistant says when answering.
nullable|string|max:1000assistants.first_messagefirstMessageMode
string
Optional
Nullable
Who speaks first on a call.
nullable|string|in:assistant-speaks-first,assistant-speaks-first-with-model-generated-message,assistant-waits-for-userassistants.first_message_modefirstMessageInterruptionsEnabled
boolean
Optional
Nullable
Whether callers may interrupt the greeting.
nullable|booleanassistants.first_message_interruptions_enabledvoicemailMessage
string
Optional
Nullable
Message left when voicemail is detected.
nullable|string|max:1000assistants.voicemail_messageendCallMessage
string
Optional
Nullable
What the assistant says before hanging up.
nullable|string|max:1000assistants.end_call_messageendCallPhrases
array
Optional
Nullable
Caller phrases that end the call.
nullable|arrayassistants.end_call_phrasesvoicemailDetection
object
Optional
Nullable
Voicemail detection settings.
nullable|arrayassistants.voicemail_detectionvoicemailDetection.enabled
boolean
Optional
Nullable
nullable|booleanassistants.voicemail_detectionvoicemailDetection.beepDetection
boolean
Optional
Nullable
nullable|booleanassistants.voicemail_detectionvoicemailDetection.silenceDuration
integer
Optional
Nullable
nullable|integer|min:0assistants.voicemail_detectionvoicemailDetection.greetingDuration
integer
Optional
Nullable
nullable|integer|min:0assistants.voicemail_detectionmaxDurationSeconds
integer
Optional
Nullable
Hard cap on call length (10 s – 12 h).
nullable|integer|min:10|max:43200assistants.max_duration_secondsbackgroundSound
string
Optional
Nullable
Ambience played behind the call ("none" is normalised to "off").
nullable|string|in:office,coffee-shop,convention-hall,summit,traffic,rain,storm,wind,fire,crackling-fire,rain-on-roof,coastal-storm,howling-wind,seagulls,night-insects,fan,white-noise,offassistants.background_soundmodelOutputInMessagesEnabled
boolean
Optional
Nullable
nullable|booleanassistants.model_output_in_messages_enabledclientMessages
array
Optional
Nullable
Message types forwarded to the browser widget.
nullable|arrayassistants.client_messagesserverMessages
array
Optional
Nullable
Message types forwarded to the webhook.
nullable|arrayassistants.server_messagestransportConfigurations
array
Optional
Nullable
Telephony transport settings (platform-managed keys).
nullable|arrayassistants.transport_configurationstranscriber
object
Optional
Nullable
Speech-to-text settings. Engine selection is platform-managed.
nullable|arrayassistants.transcribertranscriber.language
string
Optional
Nullable
Two-letter language code.
nullable|string|size:2assistants.transcribertranscriber.confidenceThreshold
number
Optional
Nullable
nullable|numeric|min:0|max:1assistants.transcribertranscriber.formatTurns
boolean
Optional
Nullable
nullable|booleanassistants.transcribermodel
object
Optional
Nullable
Language-model settings. Model selection is platform-managed.
nullable|arrayassistants.modelmodel.messages
array
Optional
Nullable
System prompt messages.
nullable|arrayassistants.modelmodel.maxTokens
integer
Optional
Nullable
nullable|integer|min:1assistants.modelmodel.functionCall
string
Optional
Nullable
nullable|string|in:none,autoassistants.modelmodel.functionCallBehavior
string
Optional
Nullable
nullable|string|in:auto,requiredassistants.modelmodel.tools
array
Optional
Nullable
Attached tools (managed via the tools picker).
nullable|arrayassistants.modelvoice
object
Optional
Nullable
Voice settings. The voice itself comes from the chosen personality.
nullable|arrayassistants.voicevoice.voiceId
string
Optional
Nullable
Set by the personality selection.
nullable|stringassistants.voicevoice.speed
number
Optional
Nullable
Speaking speed multiplier.
nullable|numeric|min:0.25|max:4assistants.voicecompliancePlan
object
Optional
Nullable
nullable|arrayassistants.compliance_plancompliancePlan.recordingEnabled
boolean
Optional
Nullable
nullable|booleanassistants.compliance_plancompliancePlan.transcriptionEnabled
boolean
Optional
Nullable
nullable|booleanassistants.compliance_plancompliancePlan.dataRetentionDays
integer
Optional
Nullable
nullable|integer|min:1assistants.compliance_planbackgroundSpeechDenoisingPlan
object
Optional
Nullable
nullable|arrayassistants.background_speech_denoising_planbackgroundSpeechDenoisingPlan.smartDenoising
boolean
Optional
Nullable
nullable|booleanassistants.background_speech_denoising_planbackgroundSpeechDenoisingPlan.fourierDenoising
boolean
Optional
Nullable
nullable|booleanassistants.background_speech_denoising_planstartSpeakingPlan
object
Optional
Nullable
Turn-taking behaviour before the assistant speaks.
nullable|arrayassistants.start_speaking_planstopSpeakingPlan
object
Optional
Nullable
Turn-taking behaviour when the caller interrupts.
nullable|arrayassistants.stop_speaking_planmonitorPlan
object
Optional
Nullable
nullable|arrayassistants.monitor_planmonitorPlan.listenEnabled
boolean
Optional
Nullable
nullable|booleanassistants.monitor_planmonitorPlan.controlEnabled
boolean
Optional
Nullable
nullable|booleanassistants.monitor_planmonitorPlan.websocketUrl
string
Optional
Nullable
nullable|urlassistants.monitor_plankeypadInputPlan
object
Optional
Nullable
nullable|arrayassistants.keypad_input_plankeypadInputPlan.enabled
boolean
Optional
Nullable
nullable|booleanassistants.keypad_input_plankeypadInputPlan.maxDigits
integer
Optional
Nullable
nullable|integer|min:1|max:10assistants.keypad_input_plankeypadInputPlan.terminateOnHash
boolean
Optional
Nullable
nullable|booleanassistants.keypad_input_planmetadata
object
Optional
Nullable
Business metadata injected into the prompt.
nullable|arrayassistants.metadatametadata.company_name
string
Optional
Nullable
nullable|string|max:255assistants.metadatametadata.industry
string
Optional
Nullable
nullable|string|max:255assistants.metadatametadata.location
string
Optional
Nullable
nullable|string|max:500assistants.metadatametadata.services_products
string
Optional
Nullable
nullable|string|max:1000assistants.metadatametadata.sms_phone_number
string
Optional
Nullable
nullable|string|max:20assistants.metadatametadata.assistant_phone_number
string
Optional
Nullable
E.164 format.
nullable|string|max:20|regex:/^\+[1-9]\d{1,14}$/assistants.metadatametadata.webhook_url
string
Optional
Nullable
Where call events are delivered.
nullable|url|max:500assistants.webhook_urlvariableValues
object
Optional
Nullable
Values for the template's custom variables.
nullable|arrayassistants.metadataErrors
| Status | Meaning | Body |
|---|---|---|
404 |
Assistant not found, or outside your account scope | {"success":false,"message":"Assistant not found"} |
422 |
Validation failed | {"message":"…","errors":{"field":["…"]}} |
403 |
Workspace permission denied | |
500 |
Live platform write failed | |
401 |
Missing or invalid bearer token | |
403 |
Feature assistants not enabled for the account |
Notes
- The response `coreData` mirrors the live platform configuration; its `voice`/`model`/`transcriber` provider-selection sub-keys and internal bookkeeping are platform-managed and excluded from this example.
curl --request PUT \
--url https://app.sulus.ai/api/assistants/{assistantId} \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Reception",
"type": "production",
"template_id": 5,
"firstMessage": "Hello! You have reached {{companyName}}, this is {{personalityName}}.",
"firstMessageMode": "assistant-speaks-first",
"firstMessageInterruptionsEnabled": true,
"voicemailMessage": "Please leave a message after the tone and we'\''ll call you back.",
"endCallMessage": "Thank you for calling {{companyName}}, have a great day!",
"endCallPhrases": [
"goodbye",
"that'\''s all, thank you"
],
"voicemailDetection": {
"enabled": true,
"beepDetection": true,
"silenceDuration": 10,
"greetingDuration": 15
},
"maxDurationSeconds": 1800,
"backgroundSound": "office",
"modelOutputInMessagesEnabled": false,
"clientMessages": [
"transcript",
"status-update"
],
"serverMessages": [
"end-of-call-report",
"status-update"
],
"transportConfigurations": [],
"transcriber": {
"language": "en",
"confidenceThreshold": 0.4,
"formatTurns": true
},
"model": {
"messages": [
{
"role": "system",
"content": "You are Sarah, the AI voice receptionist for Acme Dental."
}
],
"maxTokens": 300,
"functionCall": "auto",
"functionCallBehavior": "auto",
"tools": [
"c3d4e5f6-7a8b-49c0-8d1e-2f3a4b5c6d7e"
]
},
"voice": {
"voiceId": "sarah-professional-01",
"speed": 1
},
"compliancePlan": {
"recordingEnabled": true,
"transcriptionEnabled": true,
"dataRetentionDays": 365
},
"backgroundSpeechDenoisingPlan": {
"smartDenoising": true,
"fourierDenoising": false
},
"startSpeakingPlan": {
"initialDelayMs": 400,
"backgroundSoundVolume": 0.2
},
"stopSpeakingPlan": {
"initialDelayMs": 0,
"backgroundSoundVolume": 0.1
},
"monitorPlan": {
"listenEnabled": false,
"controlEnabled": false,
"websocketUrl": null
},
"keypadInputPlan": {
"enabled": false,
"maxDigits": 4,
"terminateOnHash": true
},
"metadata": {
"company_name": "Acme Dental",
"industry": "Dental",
"location": "Austin, TX",
"services_products": "General and cosmetic dentistry, teeth whitening, emergency dental care",
"sms_phone_number": "+14155550199",
"assistant_phone_number": "+14155550142",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"business_hours": "Mon-Fri 9:00 AM - 5:00 PM"
},
"variableValues": {
"companyName": "Acme Dental",
"industry": "Dental",
"personalityName": "Sarah"
}
}'
import requests
url = "https://app.sulus.ai/api/assistants/{assistantId}"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}
payload = {
"name": "Reception",
"type": "production",
"template_id": 5,
"firstMessage": "Hello! You have reached {{companyName}}, this is {{personalityName}}.",
"firstMessageMode": "assistant-speaks-first",
"firstMessageInterruptionsEnabled": true,
"voicemailMessage": "Please leave a message after the tone and we'll call you back.",
"endCallMessage": "Thank you for calling {{companyName}}, have a great day!",
"endCallPhrases": [
"goodbye",
"that's all, thank you"
],
"voicemailDetection": {
"enabled": true,
"beepDetection": true,
"silenceDuration": 10,
"greetingDuration": 15
},
"maxDurationSeconds": 1800,
"backgroundSound": "office",
"modelOutputInMessagesEnabled": false,
"clientMessages": [
"transcript",
"status-update"
],
"serverMessages": [
"end-of-call-report",
"status-update"
],
"transportConfigurations": [],
"transcriber": {
"language": "en",
"confidenceThreshold": 0.4,
"formatTurns": true
},
"model": {
"messages": [
{
"role": "system",
"content": "You are Sarah, the AI voice receptionist for Acme Dental."
}
],
"maxTokens": 300,
"functionCall": "auto",
"functionCallBehavior": "auto",
"tools": [
"c3d4e5f6-7a8b-49c0-8d1e-2f3a4b5c6d7e"
]
},
"voice": {
"voiceId": "sarah-professional-01",
"speed": 1
},
"compliancePlan": {
"recordingEnabled": true,
"transcriptionEnabled": true,
"dataRetentionDays": 365
},
"backgroundSpeechDenoisingPlan": {
"smartDenoising": true,
"fourierDenoising": false
},
"startSpeakingPlan": {
"initialDelayMs": 400,
"backgroundSoundVolume": 0.2
},
"stopSpeakingPlan": {
"initialDelayMs": 0,
"backgroundSoundVolume": 0.1
},
"monitorPlan": {
"listenEnabled": false,
"controlEnabled": false,
"websocketUrl": null
},
"keypadInputPlan": {
"enabled": false,
"maxDigits": 4,
"terminateOnHash": true
},
"metadata": {
"company_name": "Acme Dental",
"industry": "Dental",
"location": "Austin, TX",
"services_products": "General and cosmetic dentistry, teeth whitening, emergency dental care",
"sms_phone_number": "+14155550199",
"assistant_phone_number": "+14155550142",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"business_hours": "Mon-Fri 9:00 AM - 5:00 PM"
},
"variableValues": {
"companyName": "Acme Dental",
"industry": "Dental",
"personalityName": "Sarah"
}
}
response = requests.put(url, json=payload, headers=headers)
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
url := "https://app.sulus.ai/api/assistants/{assistantId}"
payload := strings.NewReader(`{
"name": "Reception",
"type": "production",
"template_id": 5,
"firstMessage": "Hello! You have reached {{companyName}}, this is {{personalityName}}.",
"firstMessageMode": "assistant-speaks-first",
"firstMessageInterruptionsEnabled": true,
"voicemailMessage": "Please leave a message after the tone and we'll call you back.",
"endCallMessage": "Thank you for calling {{companyName}}, have a great day!",
"endCallPhrases": [
"goodbye",
"that's all, thank you"
],
"voicemailDetection": {
"enabled": true,
"beepDetection": true,
"silenceDuration": 10,
"greetingDuration": 15
},
"maxDurationSeconds": 1800,
"backgroundSound": "office",
"modelOutputInMessagesEnabled": false,
"clientMessages": [
"transcript",
"status-update"
],
"serverMessages": [
"end-of-call-report",
"status-update"
],
"transportConfigurations": [],
"transcriber": {
"language": "en",
"confidenceThreshold": 0.4,
"formatTurns": true
},
"model": {
"messages": [
{
"role": "system",
"content": "You are Sarah, the AI voice receptionist for Acme Dental."
}
],
"maxTokens": 300,
"functionCall": "auto",
"functionCallBehavior": "auto",
"tools": [
"c3d4e5f6-7a8b-49c0-8d1e-2f3a4b5c6d7e"
]
},
"voice": {
"voiceId": "sarah-professional-01",
"speed": 1
},
"compliancePlan": {
"recordingEnabled": true,
"transcriptionEnabled": true,
"dataRetentionDays": 365
},
"backgroundSpeechDenoisingPlan": {
"smartDenoising": true,
"fourierDenoising": false
},
"startSpeakingPlan": {
"initialDelayMs": 400,
"backgroundSoundVolume": 0.2
},
"stopSpeakingPlan": {
"initialDelayMs": 0,
"backgroundSoundVolume": 0.1
},
"monitorPlan": {
"listenEnabled": false,
"controlEnabled": false,
"websocketUrl": null
},
"keypadInputPlan": {
"enabled": false,
"maxDigits": 4,
"terminateOnHash": true
},
"metadata": {
"company_name": "Acme Dental",
"industry": "Dental",
"location": "Austin, TX",
"services_products": "General and cosmetic dentistry, teeth whitening, emergency dental care",
"sms_phone_number": "+14155550199",
"assistant_phone_number": "+14155550142",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"business_hours": "Mon-Fri 9:00 AM - 5:00 PM"
},
"variableValues": {
"companyName": "Acme Dental",
"industry": "Dental",
"personalityName": "Sarah"
}
}`)
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <YOUR_API_KEY>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
{
"success": true,
"data": {
"id": 42,
"name": "Reception",
"user_id": 17,
"created_by": 5,
"reseller_id": "3",
"workspace_id": 9,
"template_id": 5,
"personality_id": 12,
"base_config_id": null,
"type": "production",
"phone_number": "+14155550142",
"phone_number_id": "b2c3d4e5-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"metadata": {
"company_name": "Acme Dental",
"industry": "Dental",
"location": "Austin, TX",
"services_products": "General and cosmetic dentistry, teeth whitening, emergency dental care",
"country": "United States",
"assistant_phone_number": "+14155550142",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"personality": "Sarah",
"personality_id": 12,
"user_id": 17,
"user": "Jordan Lee",
"type": "production",
"available24_7": false,
"standard_hours": "Mon-Fri 9:00 AM - 5:00 PM",
"business_hours": {
"monday": "9:00 AM - 5:00 PM",
"tuesday": "9:00 AM - 5:00 PM",
"wednesday": "9:00 AM - 5:00 PM",
"thursday": "9:00 AM - 5:00 PM",
"friday": "9:00 AM - 5:00 PM",
"saturday": "Closed",
"sunday": "Closed"
},
"always_say": [
"We look forward to seeing you!"
],
"never_say": [
"I don't know, let me transfer you"
],
"pronunciation": [
{
"word": "Sulus",
"soundsLike": "SOO-luss"
}
],
"spam_handling": "end_call",
"variable_values": {
"companyName": "Acme Dental",
"industry": "Dental",
"personalityName": "Sarah"
},
"sms_notifications": [
"+14155550199"
],
"email_notifications": [
"[email protected]"
],
"created_at": "2026-01-15T10:22:03.000000Z",
"updated_at": "2026-07-28T14:05:41.000000Z"
},
"widget_embed_config": null,
"transcriber": {
"language": "en",
"confidenceThreshold": 0.4,
"formatTurns": true
},
"model": {
"messages": [
{
"role": "system",
"content": "You are Sarah, the AI voice receptionist for Acme Dental. Greet callers warmly, answer questions about services and hours, and offer to book an appointment or transfer to the front desk as needed."
}
],
"maxTokens": 300,
"toolIds": [
"c3d4e5f6-7a8b-49c0-8d1e-2f3a4b5c6d7e"
],
"functionCall": "auto"
},
"voice": {
"voiceId": "sarah-professional-01",
"speed": 1
},
"first_message": "Thank you for calling Acme Dental, this is Sarah. How can I help you today?",
"first_message_raw": "Thank you for calling {{companyName}}, this is {{personalityName}}. How can I help you today?",
"first_message_interruptions_enabled": true,
"first_message_mode": "assistant-speaks-first",
"voicemail_detection": {
"enabled": true,
"beepDetection": true,
"silenceDuration": 10,
"greetingDuration": 15
},
"client_messages": [
"transcript",
"status-update"
],
"server_messages": [
"end-of-call-report",
"status-update"
],
"max_duration_seconds": 1800,
"background_sound": "office",
"background_denoising_enabled": true,
"model_output_in_messages_enabled": false,
"transport_configurations": [],
"observability_plan": null,
"credential_ids": [],
"credentials": [],
"hooks": [],
"voicemail_message": "Please leave a message after the tone and we'll call you back.",
"end_call_message": "Thank you for calling Acme Dental, have a great day!",
"end_call_message_raw": "Thank you for calling {{companyName}}, have a great day!",
"end_call_phrases": [
"goodbye",
"that's all, thank you"
],
"compliance_plan": {
"recordingEnabled": true,
"transcriptionEnabled": true,
"dataRetentionDays": 365
},
"background_speech_denoising_plan": {
"smartDenoising": true,
"fourierDenoising": false
},
"analysis_plan": null,
"artifact_plan": {
"recording": true,
"transcript": true,
"summary": true,
"analysis": false
},
"start_speaking_plan": {
"initialDelayMs": 400,
"backgroundSoundVolume": 0.2
},
"stop_speaking_plan": {
"initialDelayMs": 0,
"backgroundSoundVolume": 0.1
},
"monitor_plan": {
"listenEnabled": false,
"controlEnabled": false,
"websocketUrl": null
},
"keypad_input_plan": {
"enabled": false,
"maxDigits": 4,
"terminateOnHash": true
},
"created_at": "2026-01-15T10:22:03.000000Z",
"updated_at": "2026-07-28T14:05:41.000000Z",
"vapi_assistant_id": "9f8e7d6c-5b4a-4c3d-8e2f-1a2b3c4d5e6f",
"assistant_id": "9f8e7d6c-5b4a-4c3d-8e2f-1a2b3c4d5e6f",
"coreData": {
"id": "9f8e7d6c-5b4a-4c3d-8e2f-1a2b3c4d5e6f",
"name": "Reception",
"firstMessage": "Thank you for calling Acme Dental, this is Sarah. How can I help you today?",
"voicemailMessage": "Please leave a message after the tone and we'll call you back.",
"endCallMessage": "Thank you for calling Acme Dental, have a great day!",
"endCallPhrases": [
"goodbye",
"that's all, thank you"
],
"maxDurationSeconds": 1800,
"backgroundSound": "office",
"voice": {
"voiceId": "sarah-professional-01",
"speed": 1
},
"model": {
"messages": [
{
"role": "system",
"content": "You are Sarah, the AI voice receptionist for Acme Dental. Greet callers warmly, answer questions about services and hours, and offer to book an appointment or transfer to the front desk as needed."
}
],
"maxTokens": 300,
"toolIds": [
"c3d4e5f6-7a8b-49c0-8d1e-2f3a4b5c6d7e"
]
},
"transcriber": {
"language": "en",
"confidenceThreshold": 0.4,
"formatTurns": true
},
"server": {
"url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents"
},
"metadata": {
"company_name": "Acme Dental",
"industry": "Dental",
"location": "Austin, TX",
"services_products": "General and cosmetic dentistry, teeth whitening, emergency dental care",
"country": "United States",
"assistant_phone_number": "+14155550142",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"personality": "Sarah",
"personality_id": 12,
"user_id": 17,
"user": "Jordan Lee",
"type": "production",
"available24_7": false,
"standard_hours": "Mon-Fri 9:00 AM - 5:00 PM",
"business_hours": {
"monday": "9:00 AM - 5:00 PM",
"tuesday": "9:00 AM - 5:00 PM",
"wednesday": "9:00 AM - 5:00 PM",
"thursday": "9:00 AM - 5:00 PM",
"friday": "9:00 AM - 5:00 PM",
"saturday": "Closed",
"sunday": "Closed"
},
"always_say": [
"We look forward to seeing you!"
],
"never_say": [
"I don't know, let me transfer you"
],
"pronunciation": [
{
"word": "Sulus",
"soundsLike": "SOO-luss"
}
],
"spam_handling": "end_call",
"variable_values": {
"companyName": "Acme Dental",
"industry": "Dental",
"personalityName": "Sarah"
},
"sms_notifications": [
"+14155550199"
],
"email_notifications": [
"[email protected]"
],
"created_at": "2026-01-15T10:22:03.000000Z",
"updated_at": "2026-07-28T14:05:41.000000Z"
}
}
},
"message": "Assistant updated successfully"
}
/assistants/{assistantId}
200
{
"success": true,
"data": {
"id": 42,
"name": "Reception",
"user_id": 17,
"created_by": 5,
"reseller_id": "3",
"workspace_id": 9,
"template_id": 5,
"personality_id": 12,
"base_config_id": null,
"type": "production",
"phone_number": "+14155550142",
"phone_number_id": "b2c3d4e5-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"metadata": {
"company_name": "Acme Dental",
"industry": "Dental",
"location": "Austin, TX",
"services_products": "General and cosmetic dentistry, teeth whitening, emergency dental care",
"country": "United States",
"assistant_phone_number": "+14155550142",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"personality": "Sarah",
"personality_id": 12,
"user_id": 17,
"user": "Jordan Lee",
"type": "production",
"available24_7": false,
"standard_hours": "Mon-Fri 9:00 AM - 5:00 PM",
"business_hours": {
"monday": "9:00 AM - 5:00 PM",
"tuesday": "9:00 AM - 5:00 PM",
"wednesday": "9:00 AM - 5:00 PM",
"thursday": "9:00 AM - 5:00 PM",
"friday": "9:00 AM - 5:00 PM",
"saturday": "Closed",
"sunday": "Closed"
},
"always_say": [
"We look forward to seeing you!"
],
"never_say": [
"I don't know, let me transfer you"
],
"pronunciation": [
{
"word": "Sulus",
"soundsLike": "SOO-luss"
}
],
"spam_handling": "end_call",
"variable_values": {
"companyName": "Acme Dental",
"industry": "Dental",
"personalityName": "Sarah"
},
"sms_notifications": [
"+14155550199"
],
"email_notifications": [
"[email protected]"
],
"created_at": "2026-01-15T10:22:03.000000Z",
"updated_at": "2026-07-28T14:05:41.000000Z"
},
"widget_embed_config": null,
"transcriber": {
"language": "en",
"confidenceThreshold": 0.4,
"formatTurns": true
},
"model": {
"messages": [
{
"role": "system",
"content": "You are Sarah, the AI voice receptionist for Acme Dental. Greet callers warmly, answer questions about services and hours, and offer to book an appointment or transfer to the front desk as needed."
}
],
"maxTokens": 300,
"toolIds": [
"c3d4e5f6-7a8b-49c0-8d1e-2f3a4b5c6d7e"
],
"functionCall": "auto"
},
"voice": {
"voiceId": "sarah-professional-01",
"speed": 1
},
"first_message": "Thank you for calling Acme Dental, this is Sarah. How can I help you today?",
"first_message_raw": "Thank you for calling {{companyName}}, this is {{personalityName}}. How can I help you today?",
"first_message_interruptions_enabled": true,
"first_message_mode": "assistant-speaks-first",
"voicemail_detection": {
"enabled": true,
"beepDetection": true,
"silenceDuration": 10,
"greetingDuration": 15
},
"client_messages": [
"transcript",
"status-update"
],
"server_messages": [
"end-of-call-report",
"status-update"
],
"max_duration_seconds": 1800,
"background_sound": "office",
"background_denoising_enabled": true,
"model_output_in_messages_enabled": false,
"transport_configurations": [],
"observability_plan": null,
"credential_ids": [],
"credentials": [],
"hooks": [],
"voicemail_message": "Please leave a message after the tone and we'll call you back.",
"end_call_message": "Thank you for calling Acme Dental, have a great day!",
"end_call_message_raw": "Thank you for calling {{companyName}}, have a great day!",
"end_call_phrases": [
"goodbye",
"that's all, thank you"
],
"compliance_plan": {
"recordingEnabled": true,
"transcriptionEnabled": true,
"dataRetentionDays": 365
},
"background_speech_denoising_plan": {
"smartDenoising": true,
"fourierDenoising": false
},
"analysis_plan": null,
"artifact_plan": {
"recording": true,
"transcript": true,
"summary": true,
"analysis": false
},
"start_speaking_plan": {
"initialDelayMs": 400,
"backgroundSoundVolume": 0.2
},
"stop_speaking_plan": {
"initialDelayMs": 0,
"backgroundSoundVolume": 0.1
},
"monitor_plan": {
"listenEnabled": false,
"controlEnabled": false,
"websocketUrl": null
},
"keypad_input_plan": {
"enabled": false,
"maxDigits": 4,
"terminateOnHash": true
},
"created_at": "2026-01-15T10:22:03.000000Z",
"updated_at": "2026-07-28T14:05:41.000000Z",
"vapi_assistant_id": "9f8e7d6c-5b4a-4c3d-8e2f-1a2b3c4d5e6f",
"assistant_id": "9f8e7d6c-5b4a-4c3d-8e2f-1a2b3c4d5e6f",
"coreData": {
"id": "9f8e7d6c-5b4a-4c3d-8e2f-1a2b3c4d5e6f",
"name": "Reception",
"firstMessage": "Thank you for calling Acme Dental, this is Sarah. How can I help you today?",
"voicemailMessage": "Please leave a message after the tone and we'll call you back.",
"endCallMessage": "Thank you for calling Acme Dental, have a great day!",
"endCallPhrases": [
"goodbye",
"that's all, thank you"
],
"maxDurationSeconds": 1800,
"backgroundSound": "office",
"voice": {
"voiceId": "sarah-professional-01",
"speed": 1
},
"model": {
"messages": [
{
"role": "system",
"content": "You are Sarah, the AI voice receptionist for Acme Dental. Greet callers warmly, answer questions about services and hours, and offer to book an appointment or transfer to the front desk as needed."
}
],
"maxTokens": 300,
"toolIds": [
"c3d4e5f6-7a8b-49c0-8d1e-2f3a4b5c6d7e"
]
},
"transcriber": {
"language": "en",
"confidenceThreshold": 0.4,
"formatTurns": true
},
"server": {
"url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents"
},
"metadata": {
"company_name": "Acme Dental",
"industry": "Dental",
"location": "Austin, TX",
"services_products": "General and cosmetic dentistry, teeth whitening, emergency dental care",
"country": "United States",
"assistant_phone_number": "+14155550142",
"webhook_url": "https://automations.sulus.ai/webhook/lhg-live-demo-agents",
"personality": "Sarah",
"personality_id": 12,
"user_id": 17,
"user": "Jordan Lee",
"type": "production",
"available24_7": false,
"standard_hours": "Mon-Fri 9:00 AM - 5:00 PM",
"business_hours": {
"monday": "9:00 AM - 5:00 PM",
"tuesday": "9:00 AM - 5:00 PM",
"wednesday": "9:00 AM - 5:00 PM",
"thursday": "9:00 AM - 5:00 PM",
"friday": "9:00 AM - 5:00 PM",
"saturday": "Closed",
"sunday": "Closed"
},
"always_say": [
"We look forward to seeing you!"
],
"never_say": [
"I don't know, let me transfer you"
],
"pronunciation": [
{
"word": "Sulus",
"soundsLike": "SOO-luss"
}
],
"spam_handling": "end_call",
"variable_values": {
"companyName": "Acme Dental",
"industry": "Dental",
"personalityName": "Sarah"
},
"sms_notifications": [
"+14155550199"
],
"email_notifications": [
"[email protected]"
],
"created_at": "2026-01-15T10:22:03.000000Z",
"updated_at": "2026-07-28T14:05:41.000000Z"
}
}
},
"message": "Assistant updated successfully"
}