Step-by-step instructions
A manager can create a reliable VoiceAgents configuration with a clear name, language, prompt, voice, call behavior, recording rules, phone number, and Twilio timing settings.
Use the interactive screenshot walkthrough first. Switch steps with the step dots, then read what to fill and why it matters.
Fields on this screen
Voice agents list
How to fill: Open the list and check existing agents before adding another one.
Why: Duplicate agents make routing and support investigation harder.
Add
How to fill: Click Add in the top-right corner.
Why: SABSUS creates a draft Firestore VoiceAgents document and opens the settings form.
Agent Name
How to fill: Use a practical name such as SABSUS callback assistant.
Why: Names should describe the scenario, not only say Agent voice.
Language
How to fill: Open the language selector and choose the language the agent will speak.
Why: Prompt, opening, goodbye, and filler phrases should match this language.
Agent Enabled
How to fill: Keep enabled only when the agent is ready to be used by calls.
Why: A draft or test agent should not accidentally answer real calls.
Prompt
How to fill: Write the role, boundaries, tone, what the agent should check, and how it should finish the call.
Why: The prompt controls the conversation more than any visible label.
Voice
How to fill: Use a real TTS voice ID already connected to the runtime.
Why: A wrong voice ID can make calls fail or fall back to an unexpected voice.
Voice sliders
How to fill: Tune speed, stability, similarity boost, and style gradually.
Why: Extreme values can make the phone voice unclear or unnatural.
Opening Text
How to fill: Write a short opening that identifies the business and reason for the call.
Why: The customer should understand the call before the agent asks questions.
Goodbye Text
How to fill: Write a clear ending and keep Complete After Goodbye aligned with the desired call flow.
Why: The runtime needs a clean end condition.
Call behavior switches
How to fill: Review interruption, silence, tools, product search, recording, saving, and transcript validation one by one.
Why: Each switch changes runtime behavior and what data is saved.
Thinking filler phrases
How to fill: Add phrases like One moment, I am checking that for you.
Why: Filler phrases hide lookup delay without pretending data is ready.
Phone number
How to fill: Enter the number configured for outgoing calls.
Why: The runtime cannot safely call from a number that is not connected to telephony.
Twilio timing
How to fill: Set post-speech drain in milliseconds and keep Wait for Twilio mark on when the runtime depends on playback marks.
Why: These values prevent audio timing problems during live calls.
Save
How to fill: Save after every field and switch has been checked.
Why: Only saved values become the agent configuration used by runtime calls.
Common mistakes
- Leaving the default Agent voice name for several agents.
- Writing an English prompt for a Russian or Spanish speaking agent.
- Changing the spoken language without changing opening, goodbye, and filler phrases.
- Using an invalid voice ID that the TTS provider cannot resolve.
- Turning tools or product search on without knowing which runtime tools are available.
- Recording calls without checking the company's consent and privacy policy requirements.
- Disabling interruption when callers need to correct the agent during real calls.
- Leaving the phone number empty when this agent is expected to place outbound calls.
- Changing Twilio timing values aggressively without a live call test.
- Assuming Add only opens a blank form; in this screen Add creates a draft VoiceAgents document first.
AI Agent Field Reference for implementation
This block is intentionally below the human instructions. It explains storage names and downstream dependencies for automation, support, and future AI agents.
| Field | Stored as | Purpose | Why it matters |
|---|---|---|---|
| Voice agent ID | Companies/{companyId}/VoiceAgents/{agentId} / voice_agents.id | Stable Firestore document ID for the agent. | Calls, logs, support, automations, and future AI agents need a stable agent reference. |
| Agent Name | VoiceAgents.agentName | Human-readable name shown in the Voice agents list. | Managers need to distinguish support, sales, callback, booking, or test agents. |
| Agent Enabled | VoiceAgents.enabled | Whether this agent can be used by runtime flows. | Disabled agents should not answer or place calls even if the config exists. |
| Language | VoiceAgents.language | Spoken language code for the agent. | Opening text, prompt, goodbye text, transcript expectations, and customer experience depend on language. |
| Config schema version | VoiceAgents.configSchemaVersion | Version marker for the flat agent configuration. | Runtime code can interpret the document correctly only when the schema version is known. |
| Prompt | VoiceAgents.prompt | System-level behavior instructions for the conversation. | The prompt is the main source of truth for tone, boundaries, and task logic. |
| Voice ID | VoiceAgents.voiceId | TTS provider voice identifier. | The runtime uses this ID to pick the actual spoken voice. |
| Speaker Boost | VoiceAgents.ttsUseSpeakerBoost | TTS option for stronger voice output. | Phone calls often need more legible audio than local playback. |
| Speed | VoiceAgents.ttsSpeed | TTS speaking speed. | Too much speed makes support calls hard to understand. |
| Stability | VoiceAgents.ttsStability | TTS voice stability setting. | More stable voices are usually better for consistent business calls. |
| Similarity Boost | VoiceAgents.ttsSimilarityBoost | TTS similarity setting for the chosen voice. | Keeps the generated voice closer to the selected voice profile. |
| Style | VoiceAgents.ttsStyle | TTS style/expression setting. | Controls how expressive or restrained the voice sounds. |
| Opening Enabled | VoiceAgents.openingEnabled | Whether the agent says an opening phrase. | The caller should immediately understand who is calling and why. |
| Opening Text | VoiceAgents.openingText | First phrase spoken at the start of a call. | Sets trust, context, and the reason for the call. |
| Goodbye Text | VoiceAgents.goodbyeText | Phrase used when ending the call. | Keeps the ending consistent and avoids abrupt hangups. |
| Complete After Goodbye | VoiceAgents.completeAfterGoodbye | Whether the call can complete after goodbye text. | Prevents the agent from continuing after it has already closed the conversation. |
| Allow caller interruption | VoiceAgents.vadInterruptResponse | Whether the caller can interrupt agent speech. | Natural phone calls require the agent to stop speaking when the caller talks. |
| Thinking filler enabled | VoiceAgents.thinkingFillerEnabled | Whether filler phrases are allowed during lookup delays. | Filler phrases keep silence from sounding like a broken call. |
| Thinking filler phrases | VoiceAgents.thinkingFillerPhrases[] | Short phrases the agent can say while checking information. | Support and sales calls sound more natural when lookup pauses are explained. |
| Silence handling | VoiceAgents.silenceEnabled | Whether the agent handles caller silence. | Silence handling avoids endless calls when the caller stops responding. |
| Tools enabled | VoiceAgents.toolsEnabled | Whether runtime tool calls are allowed. | Tools let the agent search or perform configured actions instead of answering from memory only. |
| Product search | VoiceAgents.productSearchEnabled | Whether the agent can search products. | Product lookup lets the agent answer catalog or availability questions. |
| Recording enabled | VoiceAgents.recordingEnabled | Whether the call is recorded. | Recordings support audit, quality review, disputes, and training. |
| Save conversation | VoiceAgents.recordingSaveToStorage | Whether recordings are saved to storage. | Saved media gives managers evidence beyond a live transcript. |
| Transcript validation | VoiceAgents.transcriptValidationEnabled | Whether transcript validation logic is enabled. | Validation reduces the risk of acting on bad transcription. |
| Phone number | VoiceAgents.fromNumber | Outbound caller number for the voice agent. | Telephony routing must use a number owned and configured for the company. |
| Wait for Twilio mark | VoiceAgents.twilioWaitForMark | Whether the runtime waits for Twilio playback marks. | Helps synchronize TTS playback and avoid speaking over buffered audio. |
| Twilio post-speech drain | VoiceAgents.twilioPostSpeechDrainMs | Buffer time after spoken audio, in milliseconds. | A short drain can prevent clipped speech or premature next actions. |
| Updated at | VoiceAgents.updatedAt | Last update timestamp for the configuration. | Support and future AI agents can judge whether the current config is fresh. |
Related guides
Use these guides to connect this section to adjacent SABSUS workflows.