Logo
Search
Docs

Update advanced

PUT https://app.sulus.ai/api/assistants/{assistantId}/advanced

Update everything — regular fields plus the advanced set

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).

Validation: uuid — the public assistant_id

Request body

name string Required

Assistant display name (max 40 characters).

Validation: required|string|max:40
Stored in assistants.name
type string Optional Nullable

Assistant type.

Validation: nullable|string|in:demo,production
Stored in assistants.type
user_id integer Optional Nullable

Owner assignment — honoured only for admin roles.

Validation: nullable|integer|exists:users,id
Stored in assistants.user_id
template_id integer Optional Nullable

Prompt template the assistant is built from.

Validation: nullable|integer
Stored in assistants.template_id
firstMessage string Optional Nullable

What the assistant says when answering.

Validation: nullable|string|max:1000
Stored in assistants.first_message
firstMessageMode string Optional Nullable

Who speaks first on a call.

Validation: nullable|string|in:assistant-speaks-first,assistant-speaks-first-with-model-generated-message,assistant-waits-for-user
Stored in assistants.first_message_mode
firstMessageInterruptionsEnabled boolean Optional Nullable

Whether callers may interrupt the greeting.

Validation: nullable|boolean
Stored in assistants.first_message_interruptions_enabled
voicemailMessage string Optional Nullable

Message left when voicemail is detected.

Validation: nullable|string|max:1000
Stored in assistants.voicemail_message
endCallMessage string Optional Nullable

What the assistant says before hanging up.

Validation: nullable|string|max:1000
Stored in assistants.end_call_message
endCallPhrases array Optional Nullable

Caller phrases that end the call.

Validation: nullable|array
Stored in assistants.end_call_phrases
voicemailDetection object Optional Nullable

Voicemail detection settings.

Validation: nullable|array
Stored in assistants.voicemail_detection
voicemailDetection.enabled boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.voicemail_detection
voicemailDetection.beepDetection boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.voicemail_detection
voicemailDetection.silenceDuration integer Optional Nullable
Validation: nullable|integer|min:0
Stored in assistants.voicemail_detection
voicemailDetection.greetingDuration integer Optional Nullable
Validation: nullable|integer|min:0
Stored in assistants.voicemail_detection
maxDurationSeconds integer Optional Nullable

Hard cap on call length (10 s – 12 h).

Validation: nullable|integer|min:10|max:43200
Stored in assistants.max_duration_seconds
backgroundSound string Optional Nullable

Ambience played behind the call ("none" is normalised to "off").

Validation: 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,off
Stored in assistants.background_sound
modelOutputInMessagesEnabled boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.model_output_in_messages_enabled
clientMessages array Optional Nullable

Message types forwarded to the browser widget.

Validation: nullable|array
Stored in assistants.client_messages
serverMessages array Optional Nullable

Message types forwarded to the webhook.

Validation: nullable|array
Stored in assistants.server_messages
transportConfigurations array Optional Nullable

Telephony transport settings (platform-managed keys).

Validation: nullable|array
Stored in assistants.transport_configurations
transcriber object Optional Nullable

Speech-to-text settings. Engine selection is platform-managed.

Validation: nullable|array
Stored in assistants.transcriber
transcriber.language string Optional Nullable

Two-letter language code.

Validation: nullable|string|size:2
Stored in assistants.transcriber
transcriber.confidenceThreshold number Optional Nullable
Validation: nullable|numeric|min:0|max:1
Stored in assistants.transcriber
transcriber.formatTurns boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.transcriber
model object Optional Nullable

Language-model settings. Model selection is platform-managed.

Validation: nullable|array
Stored in assistants.model
model.messages array Optional Nullable

System prompt messages.

Validation: nullable|array
Stored in assistants.model
model.maxTokens integer Optional Nullable
Validation: nullable|integer|min:1
Stored in assistants.model
model.functionCall string Optional Nullable
Validation: nullable|string|in:none,auto
Stored in assistants.model
model.functionCallBehavior string Optional Nullable
Validation: nullable|string|in:auto,required
Stored in assistants.model
model.tools array Optional Nullable

Attached tools (managed via the tools picker).

Validation: nullable|array
Stored in assistants.model
voice object Optional Nullable

Voice settings. The voice itself comes from the chosen personality.

Validation: nullable|array
Stored in assistants.voice
voice.voiceId string Optional Nullable

Set by the personality selection.

Validation: nullable|string
Stored in assistants.voice
voice.speed number Optional Nullable

Speaking speed multiplier.

Validation: nullable|numeric|min:0.25|max:4
Stored in assistants.voice
compliancePlan object Optional Nullable
Validation: nullable|array
Stored in assistants.compliance_plan
compliancePlan.recordingEnabled boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.compliance_plan
compliancePlan.transcriptionEnabled boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.compliance_plan
compliancePlan.dataRetentionDays integer Optional Nullable
Validation: nullable|integer|min:1
Stored in assistants.compliance_plan
backgroundSpeechDenoisingPlan object Optional Nullable
Validation: nullable|array
Stored in assistants.background_speech_denoising_plan
backgroundSpeechDenoisingPlan.smartDenoising boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.background_speech_denoising_plan
backgroundSpeechDenoisingPlan.fourierDenoising boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.background_speech_denoising_plan
startSpeakingPlan object Optional Nullable

Turn-taking behaviour before the assistant speaks.

Validation: nullable|array
Stored in assistants.start_speaking_plan
stopSpeakingPlan object Optional Nullable

Turn-taking behaviour when the caller interrupts.

Validation: nullable|array
Stored in assistants.stop_speaking_plan
monitorPlan object Optional Nullable
Validation: nullable|array
Stored in assistants.monitor_plan
monitorPlan.listenEnabled boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.monitor_plan
monitorPlan.controlEnabled boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.monitor_plan
monitorPlan.websocketUrl string Optional Nullable
Validation: nullable|url
Stored in assistants.monitor_plan
keypadInputPlan object Optional Nullable
Validation: nullable|array
Stored in assistants.keypad_input_plan
keypadInputPlan.enabled boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.keypad_input_plan
keypadInputPlan.maxDigits integer Optional Nullable
Validation: nullable|integer|min:1|max:10
Stored in assistants.keypad_input_plan
keypadInputPlan.terminateOnHash boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.keypad_input_plan
metadata object Optional Nullable

Business metadata injected into the prompt.

Validation: nullable|array
Stored in assistants.metadata
metadata.company_name string Optional Nullable
Validation: nullable|string|max:255
Stored in assistants.metadata
metadata.industry string Optional Nullable
Validation: nullable|string|max:255
Stored in assistants.metadata
metadata.location string Optional Nullable
Validation: nullable|string|max:500
Stored in assistants.metadata
metadata.services_products string Optional Nullable
Validation: nullable|string|max:1000
Stored in assistants.metadata
metadata.sms_phone_number string Optional Nullable
Validation: nullable|string|max:20
Stored in assistants.metadata
metadata.assistant_phone_number string Optional Nullable

E.164 format.

Validation: nullable|string|max:20|regex:/^\+[1-9]\d{1,14}$/
Stored in assistants.metadata
metadata.webhook_url string Optional Nullable

Where call events are delivered.

Validation: nullable|url|max:500
Stored in assistants.webhook_url
variableValues object Optional Nullable

Values for the template's custom variables.

Validation: nullable|array
Stored in assistants.metadata
analysisPlan object Optional Nullable

Post-call analysis settings.

Validation: nullable|array
Stored in assistants.analysis_plan
artifactPlan object Optional Nullable

What the platform stores per call.

Validation: nullable|array
Stored in assistants.artifact_plan
artifactPlan.recording boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.artifact_plan
artifactPlan.transcript boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.artifact_plan
artifactPlan.summary boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.artifact_plan
artifactPlan.analysis boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.artifact_plan
backgroundDenoisingEnabled boolean Optional Nullable
Validation: nullable|boolean
Stored in assistants.background_denoising_enabled
personality_id integer Optional Nullable

Switch the assistant's personality (name + voice bundle).

Validation: nullable|integer|exists:personalities,id
Stored in assistants.personality_id
reseller_id integer Optional Nullable

Admin-only reassignment.

Validation: nullable|integer|exists:resellers,id
Stored in assistants.reseller_id
metadata.sms_notifications array Optional Nullable

Phone numbers notified by SMS after calls.

Validation: nullable|array (items: nullable|string|max:30)
Stored in assistants.metadata
metadata.email_notifications array Optional Nullable

Email addresses notified after calls.

Validation: nullable|array (items: nullable|email|max:255)
Stored in assistants.metadata

Errors

StatusMeaningBody
404 Assistant not found, or outside your account scope {"success":false,"message":"Assistant not found"}
422 Validation failed {"message":"…","errors":{"field":["…"]}}
500 Live platform write failed {"success":false,"message":"We couldn't save these changes. Please try again, or contact support if it keeps happening."}
401 Missing or invalid bearer token
403 Feature assistants not enabled for the account

Notes

  • The live platform is updated first; the local mirror only saves when that succeeds — the two can never diverge silently.
  • Non-admin roles cannot change the phone number or grant unrestricted recording/transcript settings — the service silently pins `artifactPlan.recording`/`artifactPlan.transcript` to `true` and preserves the existing `assistant_phone_number` for them.
  • 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}/advanced \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Reception",
    "type": "production",
    "template_id": 5,
    "firstMessage": "Thank you for calling {{companyName}}, this is {{personalityName}}. How can I help you today?",
    "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",
        "sms_notifications": [
            "+14155550199"
        ],
        "email_notifications": [
            "[email protected]"
        ]
    },
    "variableValues": {
        "companyName": "Acme Dental",
        "industry": "Dental",
        "personalityName": "Sarah"
    },
    "analysisPlan": {
        "summaryPlan": {
            "enabled": true
        }
    },
    "artifactPlan": {
        "recording": true,
        "transcript": true,
        "summary": true,
        "analysis": false
    },
    "backgroundDenoisingEnabled": true,
    "personality_id": 12,
    "reseller_id": 3
}'
import requests

url = "https://app.sulus.ai/api/assistants/{assistantId}/advanced"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}
payload = {
    "name": "Reception",
    "type": "production",
    "template_id": 5,
    "firstMessage": "Thank you for calling {{companyName}}, this is {{personalityName}}. How can I help you today?",
    "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",
        "sms_notifications": [
            "+14155550199"
        ],
        "email_notifications": [
            "[email protected]"
        ]
    },
    "variableValues": {
        "companyName": "Acme Dental",
        "industry": "Dental",
        "personalityName": "Sarah"
    },
    "analysisPlan": {
        "summaryPlan": {
            "enabled": true
        }
    },
    "artifactPlan": {
        "recording": true,
        "transcript": true,
        "summary": true,
        "analysis": false
    },
    "backgroundDenoisingEnabled": true,
    "personality_id": 12,
    "reseller_id": 3
}

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}/advanced"
	payload := strings.NewReader(`{
    "name": "Reception",
    "type": "production",
    "template_id": 5,
    "firstMessage": "Thank you for calling {{companyName}}, this is {{personalityName}}. How can I help you today?",
    "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",
        "sms_notifications": [
            "+14155550199"
        ],
        "email_notifications": [
            "[email protected]"
        ]
    },
    "variableValues": {
        "companyName": "Acme Dental",
        "industry": "Dental",
        "personalityName": "Sarah"
    },
    "analysisPlan": {
        "summaryPlan": {
            "enabled": true
        }
    },
    "artifactPlan": {
        "recording": true,
        "transcript": true,
        "summary": true,
        "analysis": false
    },
    "backgroundDenoisingEnabled": true,
    "personality_id": 12,
    "reseller_id": 3
}`)
	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))
}
Response 200
{
    "success": true,
    "message": "Assistant updated successfully",
    "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"
            }
        }
    }
}