What's in the box

Not a diagram tool. A dial plan IDE.

Every feature is built for one job: understanding and modifying production call routing without breaking it.

01 / 12

Every route, rendered

IVRs, queues, ring groups, time conditions, call flow controls, announcements, dynamic routes, extensions, voicemail — all laid out by ELK. Click to edit in place.

02 / 12

Time travel

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.

03 / 12

In-Use-By reverse walk

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.

04 / 12

Sticky notes & edge annotations

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.

05 / 12

Export for humans

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.

06 / 12

CFC day/night toggle

Flip Call Flow Controls from the graph itself. Reads and writes Asterisk's astdb directly. No more "who switched the phones?"

07 / 12

Build forward

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.

08 / 12

Undo isn't a feature in your PBX admin UI

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.

09 / 12

Live status, on every node

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.

10 / 12

Runs on your PBX

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.

11 / 12

Give access without giving the keys

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.

12 / 12

Speaks your language

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.