Saltar al contenido
Documentation
Documentation
Build

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.

Agents list
Your agents, with their status (draft / published) and quick actions.

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

  1. 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.

  2. 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.

  3. 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).
The agent confirms the number without asking for it
This is the use that pays the most: in a booking script, write "confirm the appointment stays linked to the number {{system__caller_id}}" and the agent says it with the caller's real number — the person never has to dictate their phone. On a web session (no phone) the agent knows it and asks normally.

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.

An AI suggestion inside the script, with the old text in red and the new one in green
The suggestion is reviewed where it lives: in its section of the script, with accept, reject or edit.
  • 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.
Nothing is saved until you decide
Accepting a suggestion applies it to the draft you are editing: the agent in production does not change until you hit Save. And every save is versioned, so you can always go back.
Your agent never hangs up over a technical error
Platform guarantee: if a connected tool (an API, a transfer) fails mid-call, the agent does NOT hang up — it briefly apologizes, keeps the conversation going and offers an alternative. Nothing to configure.

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 hold audio. Once they pick up, your agent privately gives them a summary of the conversation, and only then joins 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).

The call detail shows how each transfer attempt ended: completed, nobody answered, busy, voicemail, or the other end hung up too early.

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: music and recordings like "press 1" or "all our agents are busy" do not trigger it.

How many seconds to set
Next to the option you set the maximum wait. Use however long your queue takes to reach an agent: if nobody speaks within that time, the summary is given anyway and the call is connected, so your customer is never left waiting indefinitely.
  • 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 instantly, as always.

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.
Each control marks its recommended value with a ✓ on the scale, and if you go past that zone the editor itself tells you what will sound wrong and how far to bring it down. The worst combination is maximum interruption with loud background sound: the ambience the person hears through their speaker comes back through their microphone and is enough to cut the agent off, so the call breaks up on its own with nobody speaking. Change one of the two and test over the phone, not on headphones.

"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).

Sensitive tools (transferring to an external number, API calls) require an administrator role to configure: they are the ones with effects outside the platform.