Skip to main content

Step reference

A flow is a list of steps. There is one kind of step; what it does depends on which cards you fill in. Open a step in the flow editor and you get, top to bottom:

CardAnswersNeeded?
General InfoWhat is this step called?Always
LookupDoes it fetch data — from your URL or a spreadsheet — before it speaks?Optional
MediaWhat does the caller hear?Optional (a step can be silent)
Capture input (DTMF)Does it wait for keypresses?Optional
RoutingWhere does the call go next?Always — it has defaults

When the call reaches a step, the step does its Lookup first, then plays its Media, then captures input, then routes. Anything a Lookup brings back can change what is played and where the call goes.

General Info​

SettingWhat it does
Step NameThe name shown in the editor, the flow chart and Call Logs. Rename freely — routes keep pointing at the step.
DescriptionYour own note.

Each step also has a fixed internal id (step_1, step_2, …) that is never renamed. That id is what a {placeholder} uses to refer to an earlier step's answer; the editor inserts it for you when you type { and pick the step by name.

Lookup​

A step can get data before it speaks, one of two ways — pick URL or Smartsheet at the top of the card.

URL​

Calls your server and reads its JSON reply. This is the main integration point for developers and has its own page: Step URLs. In short:

SettingWhat it does
URLYour endpoint. May contain {placeholders} — type { for a list.
Request ProfileA named, reusable setting for the request: HTTP Method (GET or POST) and Authentication (None, Bearer Token, API Key, Basic Auth). None uses the flow's profile named default if it has one, otherwise a plain GET. + Create New adds one.
BodyNone, Form or JSON. Only with a POST profile.
Route by value (optional)A field of your reply (xResult, or a dotted path like data.status) whose value picks the next step through Named routes.
Save a value to Call HistoryResponse value + Save as: saves a reply field on the call as Flow Data and makes it available to later steps.

The reply can replace what the step says, fill its placeholders, change how it collects input and decide where the call goes. If the call to your URL fails, the step takes its On error route — which by default hangs up.

Smartsheet​

Reads one row of a Smartsheet sheet and routes on a cell in it — for example, find the caller's ZIP code and send them to the right office.

SettingWhat it does
ConnectionA Smartsheet API token you paste once (+ Connect an account). Used only to read the sheet.
SheetThe sheet to read.
Key columnThe column searched for the row.
Look upThe value to find in Key column — usually an earlier step's answer ({step_2}, the step that asked for the ZIP) or a call value ({callerid}).
Route columnThe column whose cell, in the matching row, becomes the route name. Match it under Named routes in Routing.
  • A row is found and its cell matches a named route → the call goes there.
  • No row matches, or Look up is empty → the step's Default routing. That is a normal answer, not an error.
  • The lookup fails (token rejected, column missing, no reply in 8 seconds) → the step's On error.

A step cannot have both a URL and a Smartsheet lookup, and a lookup needs at least one named route.

:::caution A step cannot use its own answer in its Lookup The Lookup runs before the step collects anything. {digits} or the step's own id in its URL, Body or Look up can never be filled, and the editor refuses to save it ("This step's own input isn't ready yet"). Collect the value in an earlier step and reference that step. :::

Media​

What the caller hears. Add Sound offers four sources: record, upload, pick a sound from your library, or type text-to-speech.

SourcePlayed as{placeholders} filled?
Recorded, uploaded or library soundThe file, as recordedNo
Text-to-speech with a pinned voice, no placeholdersSaved as a recording when you close the sound dialogNo (there are none)
Text-to-speech containing {placeholders}Spoken live on every callYes
Text-to-speech on the Flow default voiceSpoken live on every callYes

Text-to-speech that contains {placeholders} is always kept as live text (the editor recognises placeholder names that start with a letter or _) — the card shows "Contains {values} filled in from your API call" — because a recording would freeze the sample values into every call.

Which audio plays. A step's audio comes from the first of these that exists:

  1. Text or an MP3 URL returned by the step's URL (text / mp3).
  2. The step's saved sound.
  3. The step's own text-to-speech text.

If both an MP3 and text are present (and no saved sound), the MP3 plays first, then the text is spoken. A reply that carries only routing leaves the step's own audio in place. A step with no audio at all is silent and moves straight on.

Voices. A step speaks in its own voice if you pinned one, otherwise in the flow's Default Voice. Set the default once instead of per step. Text is read as plain text — markup is not interpreted. Write numbers, dates and codes the way they should sound (see Placeholders).

Capture input (DTMF)​

Turn the card's switch on to wait for keypresses after the step's audio. The caller can press keys during the spoken text or sound — it stops and their keypress counts. An MP3 returned by a step URL is the exception: it plays in full first.

What to collect​

ChoiceSettingsThe caller…The answer is
DigitsAt least / At most digitstypes a code, account number, PINthe digits as typed, e.g. 004719
NumberMin value / Max valuetypes a whole number in that rangethe number, e.g. 22
AmountMin / Max in whole dollarstypes dollars and cents with no point — 2050 is $20.50the amount, e.g. 20.50
Card numberAt least / At most digitstypes a card number; one that fails the card-number check counts as invalidthe digits
RatingStart from / Up topresses one value in the range, e.g. 1–5the value, e.g. 4
  • The caller ends a multi-digit entry with #, or by reaching the maximum length, or by pausing.
  • Sensitive — don't save or log: the answer is never shown in Call Logs (only "•••• (16 digits)"), cannot be saved to Call History, and can be used only inside a step URL's request Body — never in a URL, spoken text or a lookup. A Body that carries it is sent only over https to the step's own host. Use it with Card number for payments to your own gateway.

Timing​

SettingMeaning
Wait for replySeconds to wait for each keypress. The editor starts at 6.
RetriesHow many times to re-ask after the first ask. The editor starts at 2; 0 asks once.

Confirmation​

Read the answer back repeats the answer and asks the caller to confirm: Confirmation message defaults to "You entered {digits}. Press 1 to confirm, press 2 to re-enter." {digits} is read to suit what you collect — digit by digit for Digits, one number for Number, money for Amount ("$22.50"). Pressing 2 lets the caller re-enter, which uses up a retry; pressing nothing counts as no input.

Customer Satisfaction (CSAT) — save the answer​

Enable CSAT and give a CSAT name (up to 64 letters, digits, spaces, - or _; unique within the flow) to save the answer on the call as Flow Data. It then appears in Call History, its filters and exports, and in Call History alerts — see Results. For a Rating, CSAT Value Labels let you name each value ("1" → "Poor"); the label is shown instead of the digit. Not available on a Sensitive step. Despite the name, any answer can be saved this way — a confirmation choice, an account number, a menu choice.

Recovery​

What happens when the caller does not answer properly.

RowWhenSettings
On no inputNothing pressed in timeRe-ask message (default "Sorry, we didn't get a response"), Action
On invalid inputToo few/many digits, out of range, failed card checkRe-ask message (default "Sorry, {digits} is not a valid option." for a range, "Sorry, that's not valid." otherwise), Action

Before each retry the re-ask message is played, then the step's question again. When the retries are used up, Action decides: Go to Step, Final/Sys (a destination), or Default — the step's On error route.

Routing​

Where the call goes after the step.

Match callers by​

Pick one rule type; each rule sends a match to Go to Step or Final/Sys.

TypeA rule matches onNotes
Input (DTMF)The keys pressed: Digit 1, or a range 1-2Needs Capture input on.
Named routesAn Event nameThe value from the URL's Route by value field, or a Smartsheet Route column.
Contact tagsA Tag on the caller's contact, or All ContactsLooks the caller's number up in your contacts. Its Caller ID switch shows the contact's name as the caller ID on your agents' phones. Useful on inbound calls.

Default routing​

Route to — used when no rule matches, and for steps with no rules. Go to Step continues the flow; Final/Sys leaves it for a destination: pick a Type (Extension, Queue, Hunt group, IVR Menu, Mailbox, Flow, Hang up call, …) and a Destination.

On error​

Route to — used when the step fails: its URL call fails (no reply within 8 seconds, a connection error, a non-2xx status, an address that is not allowed), its Smartsheet lookup fails, the Route by value field is missing or matches no named route, or the step's audio cannot be produced. It is also where Default sends a caller who ran out of retries.

The editor's default for On error is to hang up, and it warns on a step with a URL: "If this URL fails, the call hangs up. Change On error to send it somewhere else."

Order of decisions​

When several things could decide the next hop, the first one that applies wins:

  1. nextUrl in the step URL's reply — the same step runs again against that URL.
  2. nextStep in the reply.
  3. A route name — from Route by value, a Smartsheet Route column or a Contact tags match — that matches one of the step's rules.
  4. digitRoutes in the reply, matched against the keys pressed.
  5. The step's own Input (DTMF) rules.
  6. Default routing → Go to Step.
  7. Otherwise the call leaves the flow to the Default routing destination (or dtype/dnumber from the reply).

Limits on loops​

One call runs at most 20 steps in total and visits any one step at most 3 times. Past either limit the flow stops, Call Logs records why, and the call goes to the last Default routing destination that was set (not to On error). Plan "press 9 to repeat" menus with that in mind.