Every feature is built for one job: understanding and modifying production call routing without breaking it.
IVRs, queues, ring groups, time conditions, call flow controls, announcements, dynamic routes, extensions, voicemail — all laid out by ELK. Click to edit in place.
Simulate any date and time. The graph dims paths that wouldn't fire and highlights the one that would. "What happens during the company event next Tuesday afternoon?" — pick the time and the graph shows you, instead of tracing it by hand.
Big call flows get unreadable. Collapse everything downstream of a node, from the node itself, and the diagram shrinks to the path you actually care about. A hidden branch is remembered by what it points at, so it stays hidden in every call flow that reaches it, not only the one you hid it from. Selections that share a destination hide and reveal together, so an IVR with six options pointing at one queue collapses as a single branch. Nothing is deleted, and you can reveal it any time. On the FreePBX family and VitalPBX alike.
Pick any destination — a Time Condition, an IVR, a queue. CFS walks every module's destination columns backwards and renders every node that points at it as a dashed reference card in its source-type color. Phantom references stop being phantoms.
Paste context directly on the canvas. Markdown-style checklists, URLs, inline comments on edges. Your future self will thank you. So will the next engineer.
PNG with a destination + timestamp stamp. Full quality, or sanitized — black boxes over PII for diagrams that travel beyond the PBX owner (a public doc, a vendor ticket, a training deck). One button from canvas to attachment.
On VitalPBX, search reaches every tenant at once. Start typing in the tenant you're in and Call Flow Studio offers to widen the search to all of them, groups the hits by customer, and lands you on that flow in that tenant when you pick one — instead of opening tenants one at a time until you find it. Switch tenants in a click without leaving the graph, and give each login only the tenants it should see: a technician who handles three customers searches three, not the whole box.
Flip Call Flow Controls from the graph itself. Reads and writes Asterisk's astdb directly. No more "who switched the phones?"
Drop the inbound, drop the next node, wire it, save. The first forward-building dial-plan editor for the FreePBX family — no more starting at the queue and walking backward through dropdowns to make destinations exist before the routes that point at them.
It is in Call Flow Studio. Ctrl-Z reverts the last destination change; Ctrl-Y redoes. The Activity Log tab tracks every edit across every dial plan with one-click revert. Apply Config surfaces automatically — your fix goes live the second you're ready. Yes — even after an Apply Config. Destination edits today; full coverage in v1.1.
Extension nodes paint a registration dot in real time — green for registered, red for offline, amber for DND, purple for call forward. Queue and ring-group rows show the same dots per member, plus a P:N penalty chip. Pulled from the Asterisk Manager Interface on every graph load.
Self-hosted. No cloud. No telemetry. No outbound API calls. Installs on the FreePBX family or VitalPBX — auto-detected at install time. Your routing data never leaves your server.
CFS runs its own user system, separate from your PBX admin auth. Three roles: admins manage everything, technicians change dial plans, and users can pan, zoom, search, and reload the graph but never edit. Create a read-only login for a junior tech, a teammate, or a customer who can reach it, point them at https://<PBX_URL>/cfstudio, and troubleshoot together over the phone — they reload the graph as you make changes, no PBX admin UI required. And no one, whatever their role, can touch SIP trunks, system settings, or delete extensions — the blast radius of any CFS user is dial plans only.
CFS ships with a fully localized UI in 12 languages: English, Chinese (Simplified), Dutch (Netherlands), French, German, Italian, Japanese, Polish, Portuguese (Brazil), Portuguese (Portugal), Russian, and Spanish (Spain). Pick your language at install or per user.
Click a node and open it in FreePBX — the exact edit screen for that IVR, queue, ring group, or extension, with no hunting through the admin menus. For admins and technicians on FreePBX.