Write the prompt in layers
Split what you know across the fields rather than stuffing it all intobasePrompt.
basePrompt, facts in context, rules in customInstructions.
Prompts that blend them drift, because the model cannot tell which parts are its
character and which are merely true this month.
How these become one prompt
The exact assembly order, what gets omitted when a field is empty, and how
firstSpeaker changes what the agent is told.Choose the voice deliberately
Pull voices for your language and actually listen to thepreviewUrl. A voice
that reads well in a list can be wrong at conversational pace.
Set the call behaviour
For an inbound line, this is usually right:Test before you point a number at it
Create a browser call and talk to it. Then deliberately try to break it:- Ask something it cannot know — does it admit that, or invent?
- Interrupt mid-sentence — does it recover?
- Go silent — does the inactivity handling feel natural?
- Say something off-topic — does it come back gracefully?
- If it has tools, does it call them at the right moment?
Then connect it
Give it a number
Answer inbound calls.
Give it tools
Let it do things, not just talk.