Flows
A Flow is a call script that runs on Telebroad's phone system: a list of steps that speak to the caller, collect keypad presses, call your own server and decide where the call goes next. You build it in the admin center; your code can feed it values, receive its answers and start calls into it.
┌──────── step ────────┐ ┌──────── step ────────┐
call ──▶ │ speak text / a sound │ ──▶ │ call your URL │ ──▶ transfer,
│ collect a keypress │ │ route on its reply │ voicemail,
└──────────────────────┘ └──────────────────────┘ hang up…
Two ways a call reaches a Flow
| Inbound | Outbound (API) | |
|---|---|---|
| Who starts it | Someone dials one of your numbers | Your code, with an API key |
| How | Route the number (or an IVR Menu option, or any other destination picker) to the destination type Flow | POST /api/v1/flows/{flowId}/calls — see Calling into a Flow |
| Per-call values | Caller's number and name, the number dialled, and what your step URLs return | The params you send in the request, and what your step URLs return (caller-number values describe the phone system's leg, not the person called) |
| When it starts | When the call reaches the Flow destination | When the person you called answers |
The flow itself is the same in both cases. A flow written for outbound calls
usually speaks {placeholders} you fill per call; one written for inbound calls
usually looks the caller up with a step URL.
Where it is built
Voice Features → Flows in the admin center. You need the Flows permission on your role to see it.
- Add Flow opens a blank flow. Examples opens a gallery of working example flows; picking one opens it as a new, unsaved flow you can change and save.
- In the flow editor, the Flow Name, Description and Default Voice sit at the top; Steps Configuration lists the steps (Add Step), with a List View and a Flow Chart View. Click a step to open its editor on the right. The Variables card holds values you reuse in any step (see Placeholders & values).
- The header has Test call (rings a phone of your choice and runs this flow, with values you type), Call Logs (a record of every run — see Results) and a Documentation button.
- Save stores the flow. The flow's id — the
flowIdthe API takes — is the number at the end of the editor's address:…/flows/742. - From the flows list, the row menu offers Edit, View Logs, Copy and Test call.
How a call moves through a flow
The call starts at the first step in the list. Each step, in order:
- Gets its data — calls the step's URL, or reads a spreadsheet row, if it has one. This happens before anything is spoken.
- Plays its audio — a sound, text-to-speech, or text your URL returned.
- Collects input — if Capture input (DTMF) is on, waits for keypresses, re-asking as configured.
- Routes — to another step, or out of the flow to a destination (an extension, a queue, voicemail, hang up…).
A call that leaves the flow is handed to that destination like any other call on your account. The step reference describes every setting.
What you can do from code
| You want to | Use |
|---|---|
| Ring someone and run a flow | POST /flows/{flowId}/calls with a flows:call API key |
| Speak per-call values (a name, a date, an amount) | params in that request, as {placeholders} |
| Decide in real time what the caller hears or where they go | A step URL on your server |
| Be told what the caller pressed, during the call | A step URL on the step after the choice |
| Get answers after the call | Flow Data in Call History alerts (email, SMS, webhook, SFTP) |
Building and editing flows is done in the admin center only — there is no API to create or change a flow. See Known limitations for the rest of what the API does not do today.