The System Prompt
The System Prompt (on the Agent Prompt tab of the agent editor) is the complete instruction set the agent runs on. Whatever you put there is the prompt — nothing is added around it. It is seeded with a working default template when the agent is created, and you can edit any part of it.
This is different from the Agent Prompt field just above it: that field is your agent's
persona and task instructions, and it flows into the system prompt through the
{{other_details}} token. Most people only ever edit Agent Prompt and the greeting. Edit the
System Prompt when you want to change the structure itself — reorder sections, drop a block
you don't want, or reword the standing rules.
Tokens
The System Prompt is plain text with {{token}} placeholders. Each token is replaced, on every
call, with a real value or a ready-made block of instructions. A token that isn't recognised is
removed and a warning is logged — it is never shown to the agent literally.
Click the Variables button above the field to insert any token at your cursor.
Values
| Token | Becomes |
|---|---|
{{agent_name}} | The agent's configured name |
{{agent_number}} | The agent's outbound number |
{{agent_timezone}} | The agent's IANA timezone (e.g. Asia/Kolkata) |
{{voice_style}} | The configured voice style |
{{primary_language}} | The language the call starts in |
{{supported_languages}} | Comma-separated list of languages the agent can switch to |
{{greeting}} | The Greeting Message, with its own variables already resolved |
{{ending_message}} | The Ending Message, resolved |
{{other_details}} | The Agent Prompt field, resolved |
{{customer_name}}, {{call_context}} | Per-call context passed at trigger time |
{{org_id}}, {{user_id}} | Identifiers for the call |
{{current_date}}, {{current_time}} | Today's date / the current time in the agent's timezone |
{{contact_name}} / {{user_name}}, {{contact_number}} / {{user_number}}, {{contact_email}} / {{user_email}}, {{user_phone_country_code}}, {{user_phone_without_country_code}}, {{user_phone_with_country_code}} | Caller details — see Prompt Variables |
Sections
Each section token expands to a block of instructions the system builds for that specific call — or to nothing when the feature isn't configured for the agent. Keep the ones your agent needs.
| Token | Expands to | Empty when |
|---|---|---|
{{current_datetime_section}} | A "current date & time" block so the agent can resolve "next Friday" etc. | never |
{{appointment_section}} | Full appointment booking instructions and tool order | appointments are off |
{{callback_section}} | How and when to schedule a callback | callbacks are off |
{{transfer_section}} | When and how to transfer to a human | transfer is off |
{{callback_opening_section}} | An opening line for a call that is itself a scheduled callback | not a callback |
{{follow_up_section}} | The follow-up actions available | none configured |
{{precall_data_section}} | Data fetched by pre-call workflows before the call | no pre-call data |
{{api_tools_section}} | The exact names of the during-call API tools the agent may call | no during-call workflows |
{{known_contact_section}} | A note not to re-ask for details already on file | name & email both unknown |
{{call_metadata_section}} | Phone number, org, and any custom data attached to the call | never |
If you remove {{api_tools_section}} while the agent has during-call workflows attached, the
agent is never told which API tools exist and can't call them. Same for {{appointment_section}}
and appointment booking. The editor warns you on save, but the call will still go out broken.
Standing rules
These expand to fixed guidance every voice agent should carry. Keep them unless you deliberately want to replace that guidance with your own wording.
| Token | Covers |
|---|---|
{{greeting_ending_conditions}} | How to handle conditional greeting/ending text |
{{ending_call_rules}} | When to end the call and how to say goodbye |
{{speech_format_rules}} | No markdown, no reading out IDs — it's a phone call |
{{voicemail_rules}} | Detecting an answering machine and hanging up |
{{filler_phrase_rules}} | Saying "one moment" before a tool call so there's no dead air |
The default template
A new agent starts from this skeleton. Reset to default restores it.
Make this your system (highest-priority) instruction:
{{current_datetime_section}}
You are {{agent_name}}, a {{voice_style}} assistant.
IMPORTANT : Call Context: {{call_context}}
Your Role:
- Agent Name: {{agent_name}}
- Start with this greeting: "{{greeting}}"
- Ending message: "{{ending_message}}"
- Voice style: {{voice_style}}
- Current conversation language: {{primary_language}}
- Supported languages: {{supported_languages}}
- IMPORTANT: Speak and write only in {{primary_language}} ...
{{greeting_ending_conditions}}
{{ending_call_rules}}
Detailed Instructions:
{{transfer_section}}
{{appointment_section}}
{{follow_up_section}}
{{callback_section}}
{{callback_opening_section}}
{{precall_data_section}}
{{api_tools_section}}
{{other_details}}
{{known_contact_section}}
{{call_metadata_section}}
Keep responses conversational, helpful, and follow the detailed instructions above.
{{speech_format_rules}}
{{voicemail_rules}}
{{filler_phrase_rules}}
Next step
See Agent Prompting for how to write the persona and task instructions that go in the Agent Prompt field, and Prompt Variables for the caller/agent value tokens in detail.