Agents
The heart of the platform: how to create, configure, test, and publish a voice agent — identity, voice, behavior, tools, and variables.
An agent is a voice assistant with a specific mission: collect a payment, qualify a lead, book an appointment. In the editor you define who it is, how it sounds, and what it can do; the agent takes care of holding a natural conversation.

The editor tabs
- Identity — the name, the opening greeting, and the script (the instructions that define its personality and flow). Write it the way you would explain the job to a new hire.
- Voice — pick a voice from a curated catalog (you can preview it first) and the language. There are voices optimized for Latin America. Voices are not equivalent: we measured which ones inflect questions well, and the one selected by default when you create an agent is the best for its language. If you are going to change it and your agent asks important questions, listen to the result on a test call.
- Behavior — response speed, interruption handling, time zone (so it says dates correctly), and additional languages.
- Tools — what it can DO beyond talking: end the call with a reason, transfer to someone on your team, dial tones for phone menus, detect voicemail, and query your systems via API.
- Variables — data that changes per call, like {{name}} or {{Payment_Amount}}: you write them into the script (they start with a letter; letters, numbers and underscore) and provide them when placing a call or in the campaign contact list. Names are case-sensitive: send each value with the EXACT name you used in the script.
- Knowledge — attach a knowledge base so it answers with YOUR information.
- Analysis — define which data to capture from each conversation (for example "payment commitment": yes/no and date) and the success criteria.
- Limits — maximum duration per call and a daily call cap.
- Deploy — assign it a number to receive calls, or embed the voice widget on your website.
Test and publish
- Test while you edit
The test panel lets you talk to it from the browser without using phone minutes. Every script change applies to the next conversation.
- Review the post-call report
When you hang up you will see the transcript, the summary, and the captured data: the fastest way to spot what to tweak.
- Publish
A draft agent does not take real calls. Once published, it goes live on its numbers and campaigns.
The script reads like a document
In Identity the script has two modes: Preview, where it reads like a document (with its headings, its lists and its {{variables}} highlighted), and Markdown, the text box for editing by hand. The counter at the top tells you how many characters it has and roughly how many *tokens*: the longer the script, the longer your agent takes to answer on every turn.
System variables: the time — and now the call numbers too
In the script you can use system variables (the "+ Insert variable" menu). The date and time ones ({{current_time}}, {{current_calendar}}…) require picking the agent timezone. The new call identity ones always work:
- {{system__caller_id}} — the number the call originates from. On an inbound call it is the person's number; on an outbound one, your number.
- {{system__called_number}} — the number that was dialed. On an inbound call it is your number; on an outbound one, the person's.
- {{system__agent_id}} and {{system__current_agent_id}} — the agent identifier (useful to log context, not to say out loud).
Improve with AI: changes appear INSIDE the script
Below the script you have the Improve with AI bar. Ask for a change in your own words, or use one of the three actions: Fix (repairs the detected problems and nothing else; the number beside it is what the audit found), More specific (adds detail where the script is vague, without deleting steps) and Clearer (improves the wording without touching the logic, the data or the amounts).
If instead of proposing a change the copilot replies or asks you something, its message appears right there, below the script where you typed, while it writes. When it brings options, they show up as one-click buttons so you can answer without typing — the conversation continues in the same place, no need to open the chat.
What it proposes appears at the exact spot in the script where it belongs: the text being removed in struck-through red, the new text in green, and a plain-language explanation of why. Each change is decided on its own with ✓ Accept, ✗ Reject or ✎ Edit — with the pencil you can adjust the proposal and accept YOUR version, not the AI's.

- Above the script you get the "3 of 7 changes" navigator with arrows to walk through them, plus Accept all and Discard all.
- If a suggestion says "waiting", it depends on another one: it becomes available as soon as you accept the previous change.
- If it says "no longer applies", it is because you edited that fragment by hand while reviewing. Nothing is applied blindly: ask for the improvement again and it gets recalculated.
- Changes that are NOT about the script (the voice, the model, the tools) appear in their own tab, right above the actual control, with an orange dot on the tab that has them.
What happens when a call is transferred
When your agent transfers to someone on your team, the platform dials that number while your customer hears "please hold" and then hold audio. Once they pick up, your agent waits for that person to finish their greeting, introduces itself and privately tells them who the customer is and what they need. Only then does it join the two lines.
- Once the transfer goes through, your agent goes silent. It stops speaking and listening: the conversation belongs to your customer and your teammate, with no platform voices or background sounds on top of it.
- If nobody answers, the line is busy, or voicemail picks up, your agent comes back to your customer and says it could not reach the department, to give it a moment, and that it will try again. It always says this, in the same words, no matter how your script is written.
- If someone answers and hangs up before taking the call, the same thing happens: your customer gets the message instead of sitting in silence waiting for nobody.
- After the message the conversation carries on normally, and your agent can retry the transfer (up to the limit you set on the tool).
If your customer hangs up while the destination is being dialed, the platform cancels that call right away: nobody on your team picks up an empty call.
How your agent introduces itself and what it tells your team
The first thing the person who answers hears is a fixed sentence, with no AI involved, so they never have to ask who is calling: "This is the virtual assistant from [your company]; I'm transferring a call to you." Right after, one or two sentences with the customer and the reason, built from the conversation and the data that came with the call.
- Open the warm rule
In the agent editor, open the Transfer to an external number tool and pick a Warm rule.
- Write how it introduces itself
In "How your agent introduces itself" you can write your own sentence (for example, "This is Sandra, the virtual assistant from {{org.name}}; I'm transferring a call to you."). It accepts
{{org.name}}and call variables such as{{full_name}}. Leave it empty to use the sentence above. - Choose the data
In "Details it tells the advisor" choose which call variables the summary receives: the amount, the date, the product. If you choose none, it uses the ones the call brings, except those that identify or reach the person (ID numbers, phones, emails, addresses, accounts). If your instruction already mentions a detail you did not select, the editor suggests selecting it.
- Ask for one sentence
In "Notice to the destination (private)" ask for ONE sentence with the essentials and name the details it must say (for example: "customer name, installment amount, due date and what they need"). The summary takes the values from the call, but only says what this instruction asks for: if you chose a detail the instruction does not name, the editor warns you and lets you add it in one click. With Literal text the chosen details are not used, and the editor offers to switch to The AI builds the summary. The person who answers and your customer both wait while it is said.
- Data is only said if the call actually brings it: never a variable's sample value.
- In an outbound campaign the summary never says "the customer is calling": you called them, and it says so.
- The summary is spoken in your agent's language and always in full sentences: if the instruction asks for more than fits, what fits is said whole, never cut mid-sentence.
What you see for each attempt
In the call detail, Data tab, each transfer attempt has its own timeline: how long the destination took to answer, when a person spoke and what they said, how long the summary took and whether it was said in full, whether the person talked over it, whether both lines were connected and who hung up at the end. If the attempt did not go through, it says why: nobody answered, busy, voicemail, the other end hung up, or your customer hung up while waiting.
In the transcript, what your agent told the person who took the call is labeled "To the advisor": your customer did not hear it. And in a campaign's Summary, the Transfers to people card tells you how many were connected, how long your customers waited, and why the ones that failed did.
If you transfer to a switchboard with hold music
When the destination is a switchboard that answers and plays music until an agent frees up, there is a detail worth solving: as far as telephony is concerned, that switchboard already answered from the very first second. Your agent would hand the summary to the music, and the person who picks up later would get the call with no context.
That is what "Wait for a person to speak" is for, in the warm transfer rule. With it on, your agent listens to the destination and holds the summary until it recognizes a human voice and waits for them to finish their greeting: music and recordings like "press 1" or "all our agents are busy" do not trigger it. If voicemail answers, your agent does not give it the summary: it goes back to your customer and lets them know.
- Your customer never notices the wait: they keep hearing their normal hold audio.
- If you are not transferring to a switchboard, leave it off: on a mobile or a direct extension the summary goes out as soon as the person finishes saying "hello".
Automatic audit
The editor reviews your agent on its own: next to the status you will see a badge that says "Healthy configuration" or flags warnings and issues. It catches things that would go wrong on a call — the script mentions a tool that does not exist, an undeclared {{variable}}, a greeting with formatting the voice would read out loud, a script so long it slows down responses and makes it lose track of the step sequence, a step the script sends the agent to that does not exist (or gaps in the numbering), a required data point the conversation never asks for, or a question so long the voice ends up delivering it as a statement (the fix is simple: state the fact, then close with a short question — "…of the loan with your bank. Can you confirm?").
How it will SOUND: interruptions, ambience and pauses
Under Behaviour there are six controls that do not change what the agent says but how the conversation sounds, and they are the most common reason a call comes out choppy or the agent seems to go silent:
- Interruption sensitivity — how easily the agent stops talking when it hears something. At maximum, a throat clear or street noise is enough to cut it off mid-sentence.
- Natural turn-taking — a "yes", "uh-huh" or "got it" while the agent is talking no longer cuts it off; if the agent was finishing a question, that "yes" counts as the answer. A "hello?" mid-sentence makes the agent pick up where it left off instead of rephrasing. You can turn it off per agent, and add your own words that do not interrupt.
- Response eagerness — how long it waits before answering. At maximum it starts talking before the person finishes, and the conversation trips over itself.
- Background sound — an office or room ambience. It mixes into the voice of the agent, and a phone line carries very little sound range: what feels natural on headphones covers the voice there.
- Reminders — how often it asks "still there?" during a silence. Every 10 seconds interrupts exactly the person who is looking something up.
- Greeting on outbound calls — the agent waits for the person to answer and say something (or a little over a second) before greeting, so the greeting does not collide with the "hello?" of picking up; the pause before speaking counts from when they answer.
"The agent is not following the steps"
This is the most common complaint about a step-based script. Ask the copilot in those words: it answers about the flow, not about something else. If the script is too long it will tell you the exact size — past a certain point the model starts skipping steps, and the fix is not more rules but moving reference material to a Knowledge base, leaving the flow and each step's rules in the script.
Before rewriting anything, ask for a simulation: it runs your real script against a test customer and shows you exactly which step it drifts at, without spending a call. And when it needs a decision from you, it asks with buttons so you can answer in one click.
Click the badge and "Improve with AI" opens with the details: the copilot explains each finding in plain language and proposes a ready-to-apply fix that respects your flow: it understands what each point of the script expected and covers it with the right mechanism (an analysis data point, a transfer or callback, or the call ending only where the conversation truly ends).