How steps and Instructions combine
- No steps: the actor follows its Instructions freely, turn by turn.
- Any step: the actor runs its steps top to bottom and is done after the last one. Its Context and Instructions still guide every AI step (Act, AI Condition), so keep the persona and the rules there.
Free-form vs scripted
Free-form (default)
The actor talks naturally. The LLM picks what to ask, how to phrase replies, when to use tools. You give it instructions and trust it to act on them.Best for: open-ended conversations, support, qualifying questions.
Scripted (step builder)
The actor follows a strict sequence of steps you define. Each step has a specific behaviour and an explicit next step.Best for: data intake forms, payment flows, identity verification, anything that must complete the same way every time.
The step types
A scripted actor is built from these step types:
The step picker lists each type with a one-line description.
An actor built earlier may also hold Switch or Perform Action steps. You can still open and edit them, but the picker doesn’t offer them.
Add, reorder and delete steps
- Add a step at the end: click the round + under the last card and pick a type.
- Insert between two cards: hover the gap between them (or above the first card) and click the small + that appears.
- Add to a branch: under an AI Condition, click Choose Step on its True or False branch.
- Reorder: drag a card by its grip on the left, or hover it and use the up and down arrows. From the keyboard, press Space or Enter on the grip, move with the arrow keys, and press Space or Enter again to drop it (Escape cancels).
- Delete: hover a card and click the trash icon.
Edit a step
Click a card (or its pencil) to open the step’s editor. It opens inside the panel, in place of the list. Clicking an issue about a step in Issues opens the same editor.- Save saves the step and goes back to the list. Cancel goes back without saving.
- Back to steps (the arrow at the top) keeps your edits: it saves them, then goes back.
- Opening another actor, clicking the canvas or closing the panel saves your edits too.
- If a required field is empty, the editor stays open, says what’s missing, and moves to the first field to fix.
Slots — the data backbone
Ask Question steps save their answer to a slot, a value kept for the whole conversation. You name it in the step’s Slot name field, for example user_email, and use it later as @slot.user_email: type @ in a step’s text and pick it from the list.
Slots are:
- Visible to every later step in this actor’s flow, wherever you mention
@slot.<name>. Steps written earlier with{{name}}still work. - Visible to the actor’s system prompt (when Slots collected so far is checked).
- Visible to other actors that the conversation hands off to. Slots survive transfers.
A worked example — collect details, then send email
TheAct step has access to all three slots as @slot.user_name, @slot.user_email and @slot.user_request. Its instruction:
Send a confirmation email toThe actor’s Capabilities must include the Gmail@slot.user_emailusing thesend-emailtool. Set the subject to “We received your request” and the body to a short note thanking@slot.user_nameand echoing back:@slot.user_request. After the tool call returns, reply to the user in chat saying the email is on its way.
send-email action for this to work.
Branching with AI Condition
AI Condition evaluates the current conversation state and routes to a true or false branch.
The AI Condition step’s prompt is plain language — “Is the user’s issue urgent? Look at the wording, urgency signals, business impact.” — and the LLM returns true or false.
In the Steps section, the AI Condition card shows its True and False branches underneath it, and each card shows a short summary of what the step does.
Free-form vs scripted — when to pick which
Use free-form when...
Use free-form when...
- The order in which information comes up is fluid.
- Users typically wander or change their minds.
- Most of the value is in the actor responding to what the user says.
- You’re not sure yet — start with free-form, switch to scripted only when free-form misbehaves.
Use scripted when...
Use scripted when...
- You need every conversation to collect the same fields in roughly the same order.
- Specific actions (send a calendar invite, charge a card, log a ticket) must happen at specific points.
- Compliance or audit requires a deterministic trail.
- You’ve tried free-form and it’s missing fields half the time.
Anti-patterns
Next
Configure an actor
The Instructions section covers free-form actors.
Capabilities
Wire tools that your steps can call.
