Skip to main content
The script is the conversation plan your agent follows. You build it on the Script tab as a tree of blocks. Each block holds one or more steps (what the agent says or does), and subflows branch the conversation based on what the contact says. The agent uses the script as a guide, not a rigid recording: it speaks naturally, answers side questions, and returns to the flow.
Agent editor on the Script tab showing an Introduction & Qualification start block branching into They are the decision maker and They are not the decision maker, a Meeting Scheduling nested script, and Goodbye blocks, with the Test and Publish buttons in the header

The Script tab: a Start block, two subflows, a nested script, and Go to links on the canvas.

How a script is structured

How the agent chooses a subflow

Blocks run in order: the agent works through the steps in the current block, then moves to a child block. When there’s more than one child, it reads their titles and picks the one that fits the conversation. So title subflows after the trigger, not the reply: A block with no title shows as Subflow on the canvas. Titles are required before you can save.

Build the flow

1

Write the opening

Click the Start block (by default Intro Script) to open it in the side panel. Edit the first step. For outbound calls, confirm you’re speaking with the right person. For inbound, greet and ask how you can help.If the agent handles both directions, the first step has Outgoing and Incoming tabs so each direction gets its own opening.
2

Branch the conversation

Click + next to a block and choose Add Subflow. Enter a title such as Contact is interested, then add steps. Repeat for each likely response (for example, Not interested, Asks to call back later).You can also hover the connector between two blocks and click + to insert a new block in between.
3

Reuse blocks with Go to Block

Click + → Go to Block, then pick the target in Target Block or click or select the block from canvas. Give the link a title, just like a subflow, so the agent knows when to take it.
4

Close every path

Make sure each branch ends with an End Call (or End Chat / End Email) step, a Call Transfer, or a Go to Block link. Then click Save.
Script canvas with a Go to link selected under They are not the decision maker, and a side panel whose Target Block field is set to Goodbye with the option to select the block from the canvas

A Go to Block link sends the conversation to an existing block.

If no decision is needed, keep going in the same block. Only branch when the conversation can genuinely go different ways.

Block menu

Click ••• on a block (or right-click it) to open its menu: The Start block can’t be moved, duplicated, or deleted. If a block you delete is the target of Go to Block links, those links are deleted too; Callers warns you before it happens.

Nested scripts

A nested script groups a multi-step sub-conversation (for example, an identity check or a qualification sequence) into a single node. Click + → Add Nested Script, or convert an existing block with Convert to Nested Script. Click the node to enter it. A breadcrumb (Script > block title) takes you back.
  • Give the nested script a label (Add a label). The label only helps you navigate; the agent doesn’t see it.
  • By default, nesting is one level deep: you can’t put a nested script inside another. Contact support to adjust this setting (up to 10 levels).
  • You can’t convert a block if one of its descendants is already a nested script.
Nested scripts are enabled per account. If you don’t see Add Nested Script, email .

Edit steps

Open a block to see its steps in the side panel. Add steps with the buttons at the bottom (Step, Schedule a Meeting, Action, Wait for results, Call Transfer, Widget, End Call) or with + between existing steps. The Steps page covers each one. Each step has a toolbar: Hover the step number to reveal the star (Make a key question). Use the arrows to reorder steps. Call Transfer, End Call, and Wait steps stay in place. Step text can be up to 1,500 characters.

Inline tags

Inside a step you can insert tags that the agent resolves at runtime. Use the buttons under the text box (Variable, Instructions, Emotions) or the tag picker tabs.
Side panel for the Introduction & Qualification block with three steps: a greeting using name, agentName, and companyName variable chips, an instruction step to briefly introduce productName, and a qualification question, with Step, Schedule a Meeting, Action, Call Transfer, and End Call buttons at the bottom

A block's steps in the side panel: green chips are Variable tags, the blue text is an Instruction tag.

Suggested instructions include “Recap what the customer said”, “Summarize user’s issue”, and “Reply back showing empathy”. The text editor supports undo (Cmd/Ctrl+Z) and redo (Cmd/Ctrl+Shift+Z or Ctrl+Y). Select a word to turn it into a variable. See Variables.

Canvas controls

Use the zoom buttons (50–200%) and click the percentage to reset. A mini-map in the corner helps on large scripts. Changes aren’t saved until you click Save in the header.

Best practices for voice scripts

Keep each step to one idea and two or three short sentences. Avoid lists, URLs, long numbers, and abbreviations. If the agent must share a link, send it by SMS or email instead of reading it out.
End a step with a single, clear question, then wait. Two questions in one breath lead to half-answers.
Scripted wording sounds the same every time. Use an Instruction tag (for example, “Acknowledge their concern, then explain the 30-day trial”) when the agent should adapt to what the contact just said.
Put the happy path in the script and move FAQs and objections into Scenarios and the knowledge base. Deep trees are hard to maintain and slow to test.
On outbound calls, confirm you have the right person before sharing anything personal. Add a Wrong person answered subflow that ends politely.
Every branch should end, transfer, or loop back. Dead ends make the agent improvise.
Test each branch with test calls. After real calls, turn on Insights Mode to see where contacts drop off or interrupt, and fix those steps first.

Troubleshooting

The block has an error. Common causes: missing title, no steps (“At least one Step should exist”), a step with empty text, or an Action step without an action selected. Open the block to see the message.
These steps end the block. Add a subflow or put the steps before them.
Make subflow titles describe the contact’s situation clearly and distinctly. Overlapping titles such as Interested and Maybe interested confuse the choice. You can also add an instruction to the parent step about when to take each path.

Steps

Every step type and its settings.

Variables

Personalize steps with contact data.

Scenarios

Handle objections and questions at any point.

Test your agent

Try every branch before going live.

Quickstart

Build and test your first agent in 10 minutes.