Skip to content

Steps (Agent Process) ​

Asha runs customer operations at Acme Diagnostics, a lab network that offers home sample collection. When Priya messages to book a blood test, the conversation can't be left entirely to free-form chat. It has to follow a set order: help her choose a test, check that a phlebotomist serves her area, collect her address, and only then book a slot.

Steps let you attach that ordered process directly to an AI Agent. The agent works through the steps one by one, using its own personality, model, knowledge and integrations throughout.

An AI Agent with a Steps chain: Ask agent, Tool, Render View, Collect Info.

Why use Steps? ​

On its own, an AI Agent decides for itself what to do next, guided by its personality and tools. That's ideal for open questions. For a transaction with a required order (a booking, a checkout, an application), you often want guarantees instead:

  1. One brain. Every step uses the parent agent's Personality, AI Model, Knowledge and Integrations. You configure them once, on the agent.
  2. Tools that always run. A Tool step calls one integration tool with the arguments you map. The model can't skip it or make up its result.
  3. A fixed order. The agent moves to the next step only when the current one is done.

The Steps port ​

Every AI Agent has a Steps port along its bottom edge, next to Personality, AI Model, Integration, Knowledge, Action and Operator. Click its + to add the first step. Then click the + on the right of each step to add the next one.

Once an agent has steps, its card reads Agent + steps — runs its workflow, and the steps are what the agent does: each incoming message is handled by the step the process has reached.

The Add a step picker, listing the node types allowed inside Steps.

What you can add as a step ​

StepFound underPurpose
Ask agentAgent processThe agent does one task, such as answering, recommending or asking a question.
ToolAgent processCalls exactly one integration tool with mapped arguments.
Collect InfoDataAsks the customer for specific fields. See Collect Info.
Render ViewOutputShows the customer choices, cards or a checklist in Web Chat. See Render View.
Condition (IF/ELSE)CoreBranches the process. See Condition (IF/ELSE).
Human HandoffCorePauses the process for your team. See Human Handoff.

Ask agent ​

An Ask agent step gives the agent one task. It has no ports of its own: it uses the parent agent's brain.

The Ask agent panel.

SettingWhat it does
What should the agent do here?The task for this step, for example Help the customer choose a test package based on their symptoms or prescription, then confirm the choice.
Save reply asThe variable name for the agent's reply, so later steps can read it as {{ name }}. Defaults to ai_response.
Wait for the user's replyWhen ticked, the agent asks and the process pauses until the customer's next message. Use it for anything that takes more than one message, such as an address or a one-time code. When unticked, the agent does the task and the process carries straight on.
Advance when this tool succeedsUse with Wait for the user's reply. The name of a tool whose success marks the step done, for example select_package or verify_otp. The moment that tool succeeds, the process moves on. A result that reports failure (for example "ok": false) doesn't count.

Always fill in "Advance when this tool succeeds" for multi-message steps

Without it, a waiting step moves on only when the model decides the task is finished. Smaller models often never decide that, so the step keeps chatting. Activation warns you about it.

Tool ​

A Tool step calls one tool from the agent's connected integrations, every time the process reaches it.

The Tool panel: tool check_serviceability, argument pincode from a variable, result saved as serviceability.

SettingWhat it does
ToolThe tool's name, for example check_serviceability or create_booking. It must be a tool the agent's integrations provide.
ArgumentsClick + Add argument for each input. Give the argument name, then choose From a variable (for example {{ pincode }}) or Fixed value.
Save result asThe variable name for the result, read later as {{ name }}. Defaults to the tool name followed by _result.
Result fieldOptional. Store just one part of the result instead of all of it, for example booking_id or items[0].id.
Fail early on errorWhen ticked, an error from the tool stops the whole process. When unticked, the error is passed on to the next step.

To branch on how a Tool step went, add a Condition with exit_reason == "tool_step_error" (or tool_step_completed).

Worked example: Acme Diagnostics home collection ​

  1. Ask agent: choose a test. Task: Help the customer choose a test package based on their symptoms or prescription. Wait for the user's reply ticked, Advance when this tool succeeds set to select_package.
  2. Collect Info: address. Fields pincode (String, required, pattern ^[1-9][0-9]{5}$) and city (String, required), with Confirmation Required ticked.
  3. Tool: check serviceability. Tool check_serviceability, argument pincode from {{ pincode }}, Save result as serviceability, Fail early on error ticked so the process stops if the area isn't served.
  4. Ask agent: book. Task: Offer the available slots from the serviceability check and book the one the customer picks. Wait for the user's reply ticked, Advance when this tool succeeds set to book_home_collection.
  5. Ask agent: wrap up. Task: Confirm the booking reference and remind the customer to fast for 10 to 12 hours before collection.

Result. Priya is guided through each stage in order. The serviceability check always runs before anything is booked, and the booking step only finishes when the booking tool actually succeeds.

Sending messages from a process ​

The steps inherit the agent's Action sub-nodes. To let the process send an email, SMS or WhatsApp message, for example a booking confirmation, wire the matching sender to the agent's Action port and mention it in the relevant Ask agent task.

Good practice ​

  • Give each Ask agent step one clear task with a clear end, rather than a broad instruction.
  • Use Tool steps for anything that changes records: creating a booking, taking a payment, reserving a slot.
  • Set "Advance when this tool succeeds" on every step that waits for the customer.
  • Plan for failure. Use Fail early on error or a Condition on exit_reason when a check might fail.

Next steps ​