Skip to main content
A procedure captures how your AI agent should handle a specific situation as a repeatable, standard operating procedure (SOP). Each one pairs a trigger (the situation that engages it) with an ordered list of steps the agent works through, including the actions it calls along the way. Reach for procedures on high-stakes flows like refunds, escalations, and onboarding, where you don’t want the agent improvising.
Procedures list

Anatomy of a procedure

Every procedure has three parts:
Procedure editor

Steps

Steps run in order, top to bottom. There are two kinds:
  • Instruction steps: a plain instruction the agent follows (“Ask the customer for their order number”).
  • Branch steps: a decision point with one or more if / else if conditions and an optional otherwise. The agent evaluates the conditions top-to-bottom, runs the first matching branch, then continues after the branch.
Limits: up to 15 instruction steps per procedure, up to 5 branches per decision point (if / else if / else), and a branch can’t be nested inside another branch.

Referencing actions with @

Inside a step, type @ to reference an action the agent should run at that point (for example @lookup_order). When the agent reaches that step, it invokes the tool.
Referencing an action in a step with @
If a step references an action that isn’t available on the current channel, the entire procedure is skipped for that conversation. See How procedures run.
If a step references an action that doesn’t exist or is disabled, the editor flags it and won’t let you enable the procedure until you fix or remove the reference.

Using variables with {{ }}

You can personalize your steps and branch conditions with {{token}} variables that are resolved at runtime. Type {{ in a step or condition to open the picker, which groups the available variables into:
A variable resolves only when its value is available for the conversation. For example, {{user.email}} is empty unless the embedding site passes it, and {{contact.*}} requires a matched contact. Write steps so the agent can still proceed (or asks for the value) when a variable is missing.
Inserting a variable token in a step

Start from a template

Don’t want to build from scratch? Open the Templates tab to browse ready-made procedures for common flows like order returns, subscription cancellations, and billing disputes, all grouped by category. Pick one to create an editable copy, then tailor its trigger and steps to your business.
Procedure templates gallery

Creating a procedure

1

Open the Procedures tab

Go to your agent and open Procedures, then click Add procedure (or start from a template).
2

Name it and define the trigger

Give it a clear name, then use the When to use field to describe the trigger: the situation that should route the conversation to this procedure.
3

Add steps

Add instruction steps, reference actions with @, add variables with {{ }}, and add conditional branches where the flow forks.
4

Enable it

Save and set the procedure to Active. Only active procedures are considered at runtime.

Analytics

Open a procedure and switch to the Analytics tab to see how it’s performing over a date range you choose: A trend chart below the counters breaks the same numbers down by day, so you can spot patterns (for example, a spike in refund requests) at a glance.
Procedure analytics tab

Next steps

How procedures run

Understand triggering, one-procedure-per-turn, and how procedures interact with actions.