Building agents

Nodes

The pieces a workflow is made of: three that define the agent, seven that act on the call, and three that feed it data.

The palette

Down the left of the canvas, in three groups (core, interaction and data) plus any custom tools you have defined, which appear below the standard groups. Drag one onto the canvas to add it.

Click a node to open the editor on the right. Every node has a label; the rest of the fields are the ones listed below.

Core

3

The agent itself, and the logic it runs on.

AI Agent

Who the agent is: its name, its voice, and the prompt everything else feeds into.

Name
What this agent is called.
Description
What it is for and how it should behave.
Voice Model
The voice it speaks in.
Edit Prompt
The assembled prompt, built from the connected nodes and the shape of the workflow.

Conditional

A branch. The conversation takes the attached path only when the condition holds.

Condition
What has to be true for this branch to be taken.

Script

A block of instruction on one topic, for the agent to follow when it gets there.

Topic
What this script covers. Unique across script nodes.
Content
The scripted text itself.

Interaction

7

Things done to the call rather than said in it. The ones marked terminal end this branch: nothing can follow them.

Warm Transfer

terminal

Hands the call on, announcing it to whoever is picking it up.

Name
The person or department. Unique across transfer nodes.
Description
What triggers the transfer.
Phone Number
Where the call goes.

Cold Transfer

terminal

Hands the call on without an announcement.

Name
The person or department. Unique across transfer nodes.
Description
What triggers the transfer.
Phone Number
Where the call goes.

Hang Up

terminal

Ends the call.

Leave Voicemail

terminaloutbound only

Speaks a message when the call reaches an answering machine rather than a person.

Name
A label for this action.
Voicemail
The message to synthesise and play.

Play DTMF

Sends touch-tone digits, for menus on the other end of a transfer.

Name
A label for this action. Unique across DTMF nodes.
Digits
The digits to play, e.g. 1234#.

Receive DTMF

Listens for digits the caller presses.

Name
A label for this action. Unique across DTMF nodes.
Instructions
What the agent should do with what it captures.

Knowledge Base

Looks something up mid-call, in a corpus you have already loaded.

Corpus
Which knowledge base to search.

Data

3

What the agent knows. These reach an agent node by a dashed association edge, never by a flow edge.

Information

Context the agent can draw on but is not scripted to say.

Topic
What this covers. Unique across information nodes.
Text
The content itself.

Dynamic Variable

outbound only

A per-contact value from the contact list schema, filled in at call time. Reference it in a Script or Information node in square brackets: [FIRSTNAME].

Variable Name
A field on the linked contact list.
Placeholder
What to say when the contact has no value.
Description
What this value means, for the agent.

Static Variable

One value, the same on every call in the campaign. Referenced the same way: [COMPANY_NAME].

Variable Name
How it is referenced.
Placeholder
Shown while the value is unset.
Description
What this value means, for the agent.
Value
The value.
Dynamic variables are resolved per contact when the call is placed. Which fields exist depends on the schema of the contact list the campaign is linked to.

Working with a selection

Hold Cmd (or Ctrl) and click to add nodes to a selection one at a time, or hold Shift and drag on empty canvas to draw a box around everything you want. A selection moves and deletes as one.

What the builder will not let you save

Unlabelled nodes
Every node needs a label.
Transfers without a number
A transfer node needs a valid destination.
Duplicate topics
Script and Information topics are unique; so are Transfer and DTMF names.
Loops
Flow edges cannot form a cycle.
Anything after a terminal node
Hang Up, both transfers and Leave Voicemail take no outgoing flow edge.