Call Flows and IVR
Call flows are visual inbound-routing plans. Use them to combine business hours, recorded messages, keypad menus, extensions, ring groups, queues and voicemail without maintaining a traditional dial plan.
A flow has its own internal number and can also be attached to one or more inbound phone numbers.
Create a flow
- Open the SessionPBX project.
- Select Call Flows.
- Select New call flow.
- Enter a Flow Name and a unique Flow number.
- On the Start card, select the plus control to add the first step.
- Add and configure the remaining steps and branches.
- Select Save to keep a draft or Publish to make it active.
Publish is disabled until required fields and branches are valid. A draft can be saved with validation errors so you can finish it later.
Available steps
| Step | Use it to |
|---|---|
| Business Hours | Send calls down Within Hours or Outside Hours branches. |
| Phone Menu | Play a prompt and branch on a keypad digit or input timeout. |
| Announcement | Play a message before continuing. |
| Ring | Call a member, ring group or queue. |
| Voicemail | Record a message in a selected member mailbox. |
| Hang Up | End the call. |
Every flow begins with Start. Voicemail and Hang Up are terminal steps and do not need another step after them.
Attach phone numbers
- Open the settings on the Start card.
- Under Phone Numbers, select the inbound numbers that should use this flow.
- Save the Start settings.
- Save or publish the flow.
The number must already exist on a SIP trunk. If a number is currently routed elsewhere, assigning it to the flow replaces that inbound route when the flow is saved.
Without an attached public number, internal users can still dial the flow number.
Build a phone menu
- Add Phone Menu after Start, an announcement or a business-hours branch.
- Create one menu option for each required key. Supported keys include
0–9,*and#. - Create or supply the menu prompt.
- Set the input timeout and retry count.
- Add a destination to every digit branch and to Timeout.
The prompt can be created with Text to Speech, uploaded as an MP3, or recorded in the browser. Preview important names, numbers and opening times before publishing.
Keep menus short. Put the most common options first and always provide a timeout destination for callers who do not choose a key.
Ring a destination
The Ring step can target a member, ring group or queue.
- A member exposes a No answer branch.
- A queue exposes a Wait timeout branch when the flow should resume after the queue’s maximum wait.
- A ring group owns the remainder of the call and uses the fallback configured on that group.
This difference is important when designing overflow. Configure a ring group’s fallback on Call Routing, not as a later branch in the flow.
Send a call to voicemail
Add Voicemail and select the mailbox of a member whose voicemail feature is enabled. For shared team voicemail, route through a queue or ring group configured with voicemail overflow instead.
Drafts, publishing and versions
- Save stores the current design as a draft.
- Publish saves and enables the design for new calls.
- Version History shows saved versions.
- Opening an older version is read-only until you choose to restore it as the working draft.
Active calls continue with the version they entered. Publish changes during a quiet period and test the complete route after every material update.
Example: main company number
A common flow is:
Start
→ Business Hours
Within Hours → Phone Menu
1 → Ring Sales queue → Wait timeout → Voicemail
2 → Ring Support queue → Wait timeout → Voicemail
0 → Ring Reception group
Timeout → Ring Reception group
Outside Hours → Announcement → VoicemailUse Office Hours to configure the schedule step.