Agents and numbers
An agent is a configured voice, script and language, and its phone setup has two sides, shown as two columns in the agents list: the inbound number — the number a caller dials to reach this agent — and its outbound numbers, the pool it calls out from. The outbound pool is ordered: for each contact, a number in the contact’s own country is dialled first; otherwise the pool’s order decides, and a number is never used for a country it isn’t allowed to call — so a contact with no local line goes out on whichever of your lines may call their country. Each agent also has its own calling hours. Each contact owner gets a default calling agent, so “call this lead” always knows which voice and which number to use.Editing an agent
Click an agent’s name to open its page. Everything the agent is lives there:- Prompt and opening line — what the agent says and how it behaves. Anything in
{{double braces}}is a placeholder that gets filled per call; it shows as a blue chip so you can see at a glance what the agent will know. - Voice — swap it any time, with a preview button to hear it first.
- Voicemail — what the agent does when it reaches an answering machine instead of a person.
- Variables — the answers this agent collects, grouped by when they’re captured.
When nobody picks up
Turn Voicemail on and the agent listens for an answering machine during the first three minutes of a call. Then pick what it should do:- Hang up — the agent ends the call without speaking. This is where the toggle starts, because it needs nothing written.
- Leave a message — the agent speaks, then hangs up.
{{placeholders}}, so a voicemail can greet someone by name.
Exact words is the safer default: a voicemail is one shot, with nobody on the other end to correct a phrasing you didn’t intend.
You can’t publish an empty message — an agent that answers the machine and says nothing leaves a recording of silence, which is worse than hanging up. Pick Hang up instead if that’s what you want.
What the agent collects
Each variable has a name, a description telling the agent what to capture, and a type: text, number, yes/no, or a list of choices. A list needs at least one choice before you can publish. When a variable is captured is decided by which section you add it to, and each section has its own + Add variable:- During the call — captured the moment the caller says it, so it survives even if the call drops. For anything expensive to mishear, like a callback time or a budget, open the type dropdown and turn on Caller confirms first.
- After the call — read out of the call analysis once the call ends. This is right for most answers.
- Before the call — not captured at all. These are the fallback values the agent starts with when a call carries nothing better, so the script still reads naturally. If your opening line says “Hello ” and a contact has no first name on file, a default of
therekeeps the agent from opening with an awkward pause.
- Fields left as Staff are off-limits to the agent even if it heard an answer. A voicemail still returns a full set of guesses, and those must not overwrite what a person typed.
- An answer with no matching field still lands, namespaced, so you can use it in trigger conditions.
Placing calls
Calls happen two ways:- Automated: a trigger’s call action, for example “new lead in state Contacted: call within business hours”. Call timing clamps to the agent’s calling hours.
- Manual: the Place call button on a contact page or inbox thread. The dialog pre-selects the owner’s default agent and number.
Outcomes drive the workflow
Every call ends with an outcome: reached, no answer, voicemail, not interested, and so on. A trigger can map outcomes to states, for example call succeeded sets possibility toQualified, call failed sets No answer, which arms the WhatsApp follow-up trigger. That call, no answer, message, close chain is the canonical Nudge workflow.
After each call, the summary, outcome and sentiment land on the contact’s timeline. Repeated no-answers are counted per contact, so a rule like “3 failed attempts: close the file” is one condition, not custom logic.