Direction
A flow is inbound or outbound, and the distinction is enforced where it is attached, not at runtime.- An inbound flow answers a number, through a process or directly.
- An outbound flow runs after a campaign’s contact picks up. Its entry node is labelled Contact answered rather than Incoming call, because that is when it starts.
Publishing
A flow has a draft you edit and a published revision that answers calls. A flow with no published revision takes no traffic.The nodes
A menu takes a single digit. “Press 1 to confirm” is a menu, and the
digits you wire are the valid keys, with no separate list to keep in step.
For “enter your six-digit reference”, use Collect digits with a name to
save it as.
Unwired outlets
An outlet with no edge is not a silent dead end: the caller is told the entry was invalid and the call ends cleanly, and the flow’s trace records which outlet was never taken. The publish check warns about them before they cost you a call.Variables
A flow can remember things about the caller while the call lasts:- Collect digits saves what the caller keys, under the name you give it
(
acct). The caller ends with #, or stops when they reach the most digits you allowed. - Fetch data saves parts of your system’s answer, one variable per JSON
path:
tier ← customer.tier,first_id ← items.0.id. - Always there:
{{caller_number}},{{did}}(the number they rang),{{call_uuid}}.
{{name}}:
A variable nobody set is empty. The publish check warns you when a
{{placeholder}} isn’t set by any step of the flow.
Fetch data
The step calls one of your HTTP connections (Settings → Integrations): a base URL plus the headers your system needs. The step adds a path, and a body for POST.- The caller hears nothing while it waits, so keep the timeout short. The default is 4 seconds and the most is 10.
- If the server answers with anything but a 2xx, doesn’t answer in time, or
answers with something other than JSON when there’s something to keep, the
step leaves by
error. It sets{{http_status}}, plus{{http_error}}saying why. Wireerrorto something the caller can hear. - Use Test this request in the step’s settings to run it with sample values and see the answer, and what each variable would hold.
Send email
Send email emails someone while the call carries on: a sales inbox, the caller’s account manager, whoever should know.- To: up to 5 addresses, separated by commas. A variable works, e.g.
{{agent_email}}from a Fetch data step. - Email: one of the IVR email templates the platform keeps for your organisation, or Write it here with a subject and a plain-text message. Ask your provider for a named template if you want the same email from several flows.
- Everything takes the call’s variables:
{{caller}},{{did}},{{call_uuid}}and anything a Collect or Fetch data step saved.
{{email_error}} saying why, when an
address is not valid once filled in, the platform’s email is not set up, or
your flows have sent 200 emails in the last hour. Publishing refuses a fixed
address that is not valid, a template that does not exist, and a step with
neither a template nor a subject.
Send SMS
Send SMS texts somebody while the call carries on, usually the caller: a booking link, a confirmation, the address. It needs your organisation’s FireFlo account (SMS).- To: blank texts the caller. A number the caller gave is read in your
organisation’s country, so
0412345678works; a variable or a number in international form works too. - Message: one of your IVR SMS templates, or text written on the step. The count of characters and SMS parts is shown as you type.
- Send from: an approved sender ID, or leave it to the template’s or the default.
{{sms_error}} says which. It texts at most once per call,
even if the flow comes back through it.
Testing a flow
You don’t need a phone number to try a flow. Press Test in the editor:- Ring me now: FireTone rings your phone, or any extension you pick. Every device on that extension rings. Answer and you’re in the flow.
- Test number: give the flow a short number, like
7001. Anyone can dial it from a phone of your organisation, as often as needed, until you remove it. It can’t be reached from outside, and it can’t be a number an extension or call park already uses.
"test": true. They aren’t counted in the flow’s status figures.