Write prompts
A prompt for a voice agent is not a chatbot prompt with a phone attached. The caller can’t scroll, can’t skim, and won’t wait — every reply is heard once, in real time, by someone who may be driving. The prompts that work are short, specific about the goal, and silent about the words.
Two prompts, two jobs
The call’s persona: who the agent is, how it sounds, what it must never do. Set once on the Main Agent; stays in force through every transition. If it’s on any other agent, publishing is refused.
This agent’s job: what to find out, what to do, when it’s done. In force only while the conversation is on this agent. Required on every agent.
The split matters because of what each one is paid for. The System Prompt is resent on every turn of the whole call, so it should be a few lines. Agent Prompts are only active on their own step, so they can afford detail — but the same rule applies: each one describes one job.
What a good prompt looks like
What these do right, and why:
And what to leave out:
- Scripts. “Say: ‘Hello, thank you for calling…’” produces robotic delivery and breaks the moment the caller interrupts. Describe the intent; let the model phrase it.
- Formatting. Bullets, bold, headings — the caller hears none of it and the model may read the punctuation.
- Everything the agent doesn’t need on this step. A booking agent doesn’t need the refund policy. Long prompts cost tokens on every turn and dilute the instructions that matter.
- Contradictions between the two prompts. If the System Prompt says “be brief” and an Agent Prompt says “explain the full policy”, the model picks one — not necessarily yours.
In the Flow Tester, be the difficult caller: interrupt, give a wrong date of birth, ask something off-topic, go silent. A prompt is finished when those calls go well.
Emotion and delivery with ElevenLabs v3
Most voices say exactly what the model writes, in one register. ElevenLabs v3 (eleven_v3, eleven_v3_conversational) also reads inline audio tags — [warmly], [laughs], [whispers], [hesitates], [excited] — and performs them. On a v3 voice, your prompt can direct delivery as well as words:
Rules that follow from how v3 works on Talkif:
- Only on v3 models. On every other voice a tag is read aloud as text. If you switch the TTS node, remove the tag instruction from the prompt in the same publish.
- Tags appear in the transcript as written, so a reader sees
[warmly] Good morning. Acceptable for most teams; if transcripts feed a downstream system, strip[...]there. - Fewer voice sliders. On v3 only stability applies; similarity, style and speaker boost are ignored.
- Keep tags rare. One per reply at most — over-tagged speech sounds theatrical on a phone.
ElevenLabs’ own guide to v3 tags and phrasing: Prompting Eleven v3.
Dynamic prompts
Both prompts are templates, resolved when the call starts. Anything Talkif knows about the call can be inserted with {{…}}; type {{ in the editor for suggestions.
Variables
A variable with no value renders as empty text — never an error, never the literal {{…}}. That’s why default and #ifExists are worth using on every contact field: not every caller is in your contacts.
Helpers
Truthiness is voice-friendly: empty strings, "none", "null", empty lists and empty objects all count as false. Output is plain text — nothing is HTML-escaped.
The Prompts workspace
Flow Builder → Prompts is a place to write and keep prompts outside any single flow: company-wide tone guidelines, a persona you reuse across lines, a booking step several flows share. It has the same editor with {{ autocompletion, plus two things the node editor doesn’t:
- Preview with contact data — pick a real contact and see the prompt exactly as the call would render it, variables filled in.
- AI generation — describe what you want and iterate in chat; the generator knows your variables and helpers and produces a template that’s ready to use.
Prompts here are copied into agents, not linked: paste the text into the node. That keeps each published version self-contained, and it means editing a workspace prompt never silently changes a live flow.