PBX Studio: Build and Test Call Flows
PBX Studio is a visual builder for inbound call routing. Instead of configuring queues, auto attendants and voicemail on separate screens and mentally piecing together how a call travels between them, you draw the whole journey on one canvas: a caller dials your number, and you decide — visually — what happens next.
Each flow is a diagram. Nodes are the steps a call passes through, and the lines between them are the routes it can take.
Table of Contents
- Access PBX Studio
- The Call Flows Table
- Create a Call Flow
- Node Types
- Connecting Nodes
- Editing Nodes
- Canvas Tools
- Keyboard Shortcuts
- Save and Activate a Flow
- Test a Flow with a Live Call
- PBX Studio FAQ
Access PBX Studio
Log in to the PBX.IM Dashboard, go to Call Routing, and select PBX Studio from the dropdown menu.
PBX Studio requires write access to call flows. If you do not see the menu item, ask an Admin to review your role permissions.
[!NOTE] PBX Studio is enabled per account. If the menu item is missing and your permissions are correct, contact support to have it turned on for your account.
The Call Flows Table
The main page lists every call flow on your account.
| Column | Description |
|---|---|
| Call Flow Name | The name you gave the flow. Click it to open the editor. |
| Origin | The trigger that starts the flow — the phone number or extension callers reach. |
| Last Edited By | The user who most recently saved changes to the flow. |
Click Add Call Flow in the top right to start a new flow on an empty canvas.
Create a Call Flow
A new flow opens on an empty canvas showing Flow start and the prompt Add flow trigger to get started.
Every flow begins with a trigger — the thing a caller reaches. Until you add one, the palette offers only the two trigger types:
- Phone Number — an inbound number on your account.
- Extension — an internal extension.
Once a trigger is on the canvas, the two trigger types disappear from the palette and the remaining node types become available. A flow has exactly one trigger.
There are three ways to add a node:
- Drag it from the palette on the right onto the canvas.
- Click empty canvas to open the node picker, then choose a node.
- Drag from a node's handle and release on empty canvas. The picker opens and the new node is connected automatically.
Give the flow a name in the header — the field starts as Untitled Flow. Press Enter to commit the name, or Escape to revert it.
Node Types
Once a trigger exists, the palette offers these nodes:
| Node | What it does |
|---|---|
| User | Rings a specific user. |
| Extension | Routes to an internal extension. |
| Queue | Places the caller in a call queue. |
| Ring Group | Rings a ring group. |
| Call Forwarding | Forwards the call to an external number. |
| Announcement | Plays an announcement. |
| Auto Attendant | Plays a menu and routes on the caller's keypress. |
| Business Hours | Splits the call by whether you are open or closed. |
| Voicemail | Sends the caller to voicemail. |
| Conference | Drops the caller into a conference room. |
| Endpoint | Routes to a registered endpoint. |
| Terminate Call | Ends the call in a specific way. |
Node Outputs
Most nodes have a single output, but some branch. Each output is a separate connection point, so you can send each outcome somewhere different:
| Node | Outputs |
|---|---|
| Auto Attendant | Default, plus Key 0–Key 9, Key *, Key # |
| Queue | Default, plus Key 0–Key 9, Key *, Key # |
| User | Default, DND, Busy, No Answer, Endpoint not Available |
| Business Hours | Open Hours, Closed Hours |
Voicemail, Conference, Terminate Call and Endpoint are end points — the call stops there, so they have no outputs.
On a branching node, use the Add output dropdown to add a branch. The dropdown only lists outputs you have not used yet.
Terminate Call Methods
The Terminate Call node ends the call using one of these methods:
| Method | Result |
|---|---|
| Hangup | Ends the call normally. |
| Busy | Returns a busy signal. |
| Congestion | Returns a congestion (network busy) signal. |
| Put Caller on Hold Forever | Holds the caller indefinitely. |
| Play ringtones to caller until they hangup | Rings until the caller gives up. |
Connecting Nodes
Drag from a node's output handle on its right side to the input handle on the left side of the next node. A branching node shows one handle per output, so you can route each outcome separately.
Every node must trace back to the trigger. A node left floating on the canvas is a disconnected node, and the flow will not save until you connect or remove it.
Editing Nodes
Click a node — or open its ⋮ menu and choose Edit — to open its configuration form. The right sidebar swaps from the node palette to that node's settings, and swaps back when you are done.
The ⋮ menu also offers Duplicate and Delete, with two exceptions worth knowing:
- Phone Number, Extension, User and Endpoint nodes cannot be duplicated.
- Trigger nodes cannot be deleted once the flow has been saved. To change the trigger, edit it rather than replacing it.
[!NOTE] A node can be shared by several flows. When you save a change to a shared node, PBX.IM warns you with Node Used In Multiple Flows — "It's used in multiple flows, so the changes will affect all of them." Confirm only if you intend the change to apply everywhere.
Canvas Tools
| Tool | What it does |
|---|---|
| Auto-Arrange Flow | Lays the diagram out automatically and fits it to the screen. Useful after a flow grows messy. |
| Show Inputs From Other Flows | Adds read-only nodes showing what else routes into the nodes in this flow, so you can see a shared queue's other callers. These nodes cannot be edited. |
| Select / Move / Frame | Bottom toolbar. Switch between selecting nodes, panning the canvas, and fitting the flow to the screen. |
| Undo / Redo | Steps back and forward through canvas changes. |
The sidebar can be resized by dragging its left edge, and collapsed with the toggle icon.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Cmd/Ctrl + Z | Undo |
Cmd/Ctrl + Shift + Z | Redo |
Cmd/Ctrl + C | Copy selected nodes |
Cmd/Ctrl + V | Paste nodes |
Delete / Backspace | Delete selected nodes and connections |
V | Select mode |
M | Pan/Move mode |
F | Fit the flow to the screen |
Escape | Close the node picker, or revert a flow-name edit |
Enter | Commit a flow-name edit |
Shortcuts are ignored while you are typing in a field.
[!NOTE] Undo and redo cover the canvas only — the nodes, their connections, and layout. They do not undo a save, a flow rename, or a change to the flow's Active status. History holds the last 50 steps and is cleared when you leave the editor.
Save and Activate a Flow
Click Save in the header. A flow only routes real calls when its Active switch (in the sidebar) is on — the header pill shows Active or Inactive. There is no separate publish step: activate the flow and save it.
Saving is blocked until the flow is valid. If something is wrong, PBX.IM shows the reason and highlights the first node at fault:
| Message | How to fix it |
|---|---|
| Missing flow name | Enter a name for the flow before saving. |
| Flow name too long | Flow names are limited to 255 characters. |
| Missing trigger | Add a Phone Number or Extension to start the flow. |
| Disconnected nodes | One or more nodes do not trace back to the trigger. Connect or delete them. |
| Validation Error | A node has an incomplete configuration. Open the highlighted node and complete it. |
A successful save confirms with Flow saved successfully.
Test a Flow with a Live Call
Test Flow places a real call from your webphone into the flow you are editing and lights up each node as the call reaches it. You watch the call travel through the diagram in real time, which means you can confirm routing works before pointing live traffic at it — no need to publish a number and read call logs afterwards.
Before you start
The Test Flow button is disabled until all of these are true:
- The flow has at least one node.
- The flow is saved, with no unsaved changes.
- The flow's status is Active.
- Your webphone is connected and not already on a call.
- No test call is running on another flow.
When the button is disabled, hover it — the tooltip names the exact reason, for example Save flow to make a test call. or Connect the webphone to make a test call.
Run the test
- Click Test Flow.
- Your webphone rings. The button changes to Cancel while it is ringing.
- Answer. You are now the caller. The button changes to End Test.
- Watch the canvas as the call moves through the flow.
- Hang up, let the flow finish, or click End Test.
What you see on the canvas
- The node the call is currently at pulses with a green glow.
- The connection the call travelled along animates in green — and stays animated. The trail accumulates, so by the end you can see the complete path the call took through the flow, not just where it is now.
While a test is running the canvas is read-only: you cannot move, edit, connect or delete nodes, the palette empties, and Save, the Active switch, Auto-Arrange Flow, undo and redo are all disabled. End the test to make changes. Cancel / End Test is never disabled, so you can always stop the call.
When a test ends
A test finishes when you hang up, when the flow terminates the call, or when you click End Test. If the session sits idle too long it expires on its own and shows Test call timed out. If the call cannot be placed, Test call failed appears with the reason.
The highlight trail lives only in your browser for the duration of the test. There is no test history, and closing the tab discards it.
[!NOTE] Leaving PBX Studio does not end a running test. The call continues until you hang up or click End Test.
Limitations
- One test at a time. You cannot test two flows at once, and PBX.IM does not show you when a colleague is testing the same flow.
- Flows that route back to you. If the flow routes to the same extension your webphone is registered to, you are both the caller and the destination. Hanging up ends the whole test, so the Busy and No Answer branches never play out. Test these flows from a different phone than the destination extension.
- Branch highlighting is partial. When several outputs of one node lead to the same destination, only Auto Attendant keypresses and Queue exit keys light the specific branch taken. Business Hours (Open/Closed) and User (Busy, DND, No Answer, Endpoint not Available) branches light up together rather than individually.
- Draft and inactive flows cannot be tested. Activate and save the flow first.
PBX Studio FAQ
Do I have to publish a flow?
No. There is no publish step. Turn the Active switch on and save — the flow starts routing calls that reach its trigger.
Why can't I delete the Phone Number node?
Triggers cannot be deleted from a saved flow, because the flow would have no entry point. Edit the trigger to point at a different number, or delete the whole flow.
I changed a queue in one flow and it changed in another. Why?
Nodes can be shared between flows. When you save a change to a shared node, PBX.IM warns you with Node Used In Multiple Flows before applying it everywhere. Use Show Inputs From Other Flows to see what else routes into a node before editing it.
Why won't my flow save?
The most common reasons are a missing name, a missing trigger, or a node that is not connected back to the trigger. The error message names the problem and the first node at fault is highlighted.
Does a test call cost money?
A test call is a real call and is billed like any other call through the flow.
Why doesn't the Busy branch light up when I test?
If the flow routes back to your own extension, your single webphone is both ends of the call, so the failure branches cannot run. Test from a different phone. Note also that Business Hours and User branches currently highlight together rather than individually.
Can I undo a save?
No. Undo and redo apply to the canvas only. A save is permanent — to revert, change the flow back and save again.