Steps and scripts
PreviewA flow is a series of steps of five kinds (say, ask, confirm, action, end). Each has its lines per language, and branches pick what comes next.
A flow moves through a call one step at a time. Code decides which step comes next; the agent can't skip, reorder or invent steps. See How the agent follows a flow.
The five kinds of step
| Kind | What happens | Has |
|---|---|---|
| Say | A line is spoken as written | Its line per language |
| Ask | A question is spoken word for word, then the reply becomes a typed answer | The question, the answer type, branches by answer |
| Confirm | Earlier answers are read back and the shopper says yes or corrects them | What to read back |
| Action | A holding line, then your system is asked to do something | The action, its values, branches by result |
| End | A goodbye, and the call's outcome | The line and the outcome |
The first step is always a fixed say step: the disclosure, saying who is calling and that the call is recorded.
An example: order verification
The library's Order verification flow, as Halden runs it:
| Step | Kind | What it does | Next |
|---|---|---|---|
| disclosure | Say | "Hi {customer_name}, this is {org_name}'s automated assistant, calling about your order {order_id}. This call is recorded." | |
| good_time | Ask, yes or no | "Do you have a minute to confirm it?" A no ends the call as not_now | |
| placed_order | Ask, yes or no | "You ordered {items} for {order_total}, to pay on delivery. Did you place this order?" | no → cancel |
| address_correct | Ask, yes or no | "We'll deliver it to {address}. Is that right?" | yes → confirm, no → new_address |
| new_address | Ask, text | "What's the right address, with the area and city?" | |
| confirm_address | Confirm | "So the new address is {new_address}. Is that right?" | |
| save_address | Action | update_delivery_address, then confirm_order | refused or no reply → team_end |
| confirm | Action | confirm_order | refused or no reply → team_end |
| cancel | Action | cancel_order | refused or no reply → team_end |
| …_end | End | Goodbye with the outcome: confirmed, address_changed, cancelled or needs_team |
Lines, languages and placeholders
Every line is written once per language the flow speaks. {input_key} is filled from the run's inputs before the call (money is read in rupees), {answer_key} from an earlier answer during the call, and {org_name} with your org's name. RowCall won't publish a flow that uses a name it doesn't know, or a language that's missing a line.
Fixed lines
Every flow also has five lines the agent says word for word when they're needed, whatever step it's on:
| Line | Said when |
|---|---|
| Opt-out | The shopper asks not to be called again |
| Not now | The shopper can't talk, or it's the wrong person |
| Still there? | The shopper has gone quiet |
| Acknowledge | A short "Okay." before the agent carries on |
| Apology | Something went wrong and the call must end |
For how to word questions, see Writing good questions.
Next stepInputsThe order details each call starts with.