June 29, 2026 — Call Flow Studio Workbench, ConnectWise Polish & RG Position
Call Flow Studio — Add & Delete Objects on the Canvas — Add and delete IVRs, ring groups, and call queues right from the Call Flow Studio canvas. Dialog reuse means the same editor opens whether you reach it from the canvas or from the assets tables. Drag-and-drop interactions reworked across the board.
Call Flow Studio — Saved View Options — New Options menu (next to Filters) with per-user, persisted choices: edge style (Spider web / Taxi / Rounded), route labels (Off / Source / Middle / End), label size, node spacing, and layout direction (Left→Right / Top→Bottom). Edge route labels are centered, and clicking a node highlights its outbound edges. Taxi turns now spread evenly across each lane so IVRs with many key options stop overlapping.
Inline Information Summary on the Map — (Partner request.) A Show summary toggle renders the Call Logs Information Summary directly under the call-flow map (KPI tiles plus Minutes / Direction / Status / Call Type / Top Callers / Top Callees / Avg Sentiment by Extension), scoped to the selected phone system and the Call Activity time range.
Per-Call Visual Call Flow on Call Logs — (Partner request.) Click any call in Call Logs and the call’s path is drawn on the full system map, with the rest of the map greyed for context. Inbound calls only; outbound rows show the Flow column greyed.
Heat Overlay by Talk Time — (Partner request.) Call Activity heat overlay can shade by total talk time as well as call volume, with custom time ranges.
Export PNG With Map + Summary — (Partner request.) Export produces one document: a Call Flow title (with the phone-system FQDN), the map, and the Information Summary when shown, all drawn with consistent styling.
ConnectWise Integration Polish — Test Connection works on the values currently in the form (no Save first). Brand-new configs can be saved by users with create-only permission. Sync Customers is disabled until unsaved changes are saved, with a tooltip explaining why; once a sync completes, the customer list bypasses the 2-minute client cache so the new companies show up immediately. New callouts under Company Type filters and Default Company.
Multi-Select Autofocus Everywhere — Opening any searchable multi-select now drops focus straight into the typeable filter area. Wired globally; benefits every screen that uses that field type.
Ring Group Member Position — Backend now tracks position on ring group members, so the placement-aware Bulk Add Members action (June 15) writes a stable order that survives reload.
Bug Fixes:
- Duplicate SIP trunks on the call-flow map collapse correctly when the same trunk has been imported with different
tcxIds across repeated syncs. - Support-admin emails are now filtered out of the failure notification path on the backend (extending the June 25 email hardening).
June 25, 2026 — Phone Logos, Provisioning Defaults & Security
Phone Logos — Manage custom phone-screen logos as a first-class object. Upload and curate logos from the phone provisioning tab, assign one per phone from the phone editor’s logo dropdown, and see which logo is assigned on each row of the phones table. A default 3CX logo string is available for phones that should fall back to the standard.
Phone Provisioning Defaults — Provisioning a new phone now seeds every Options field to match what 3CX would apply automatically, instead of leaving them blank. Defaults come from each phone model’s actual option list (/api/v2/phones/templates), so Grandstream and Fanvil get correct defaults that they did not before (the old hardcoded strings only matched Yealink). Unsupported fields are greyed out instead of shown empty-but-clickable, and the Router Phone picker now filters as you type.
Security & Email Hardening — Tightened security headers and CORS policy on the backend. Notification emails now skip disabled admins and support admins so they no longer hit shut-down inboxes.
June 19, 2026 — Dashboard Drill-downs & Wait-for-Idle
Missing System Updates Card — New dashboard card showing the count of phone systems with a pending standard 3CX system update (category=SP150 && updateType=Release, the same definition the Update Manager uses for “3CX System”). The drill-down is a sortable table with a select column, FQDN deep links, and the shared now / schedule / recurring wizard for pushing updates from the dashboard.
Firmware Drill-down Rebuild — The Outdated Firmware drill matches the sibling system-status format now (sortable sd-* table, select column, header Upgrade Firmware action). It runs the Phone Manager firmware wizard with now / schedule / recurring options, gated by phones:update. Offline phones are dimmed and non-selectable.
FQDN Deep Links Across Drill-downs — Drill-down FQDN cells now deep-link to the matching 3CX console page (Backups, Licenses, Users, Phones), with the :5001 port included, while still displaying only the bare FQDN. Fixes a broken double-https:// link and a relative link that resolved against the app origin.
Wait-for-Idle Phone Actions — Phone actions can now wait for a phone to become idle before executing, so reboots and reprovisions don’t drop active calls.
Improvements:
- All drill-down data columns are now sortable, including MAC and Firmware on Outdated Firmware, Details on Missing Updates, and Key on Cashflow.
- License and SC distribution drills both show License · SC · Expires On columns.
June 18, 2026 — Permission Gating Audit
Permission Gating Across the App — Audited every screen and stopped showing actions users do not have permission to perform. Controls are now disabled with a “You don’t have permission…” tooltip, hidden, or (for editors) opened read-only.
Highlights:
- Call Flow Studio — right-click Edit Extension / IVR / Call Queue / Ring Group shows “View …” and opens the editor read-only (greyed, no Save, tabs still browsable) when the user lacks that object’s
:updatepermission. - Alerts — the Acknowledge / Close / Reopen check was inverted; users without rights could act on alerts. Fixed.
- Phones table — Reboot (toolbar and row) now requires
phones:update, matching Reprovision and Upgrade. - License Manager — Update Info / NFR / Retire / Unretire now require a license write permission. Export stays open.
- Monitors table — bulk Send Preview Alert and Test Monitor now require
monitors:update/:create.
June 15, 2026 — Bulk Member Management & Call-Flow Heat Map
Bulk Add / Remove Members & Agents — (Partner request.) Multi-select users and add or remove them from multiple ring groups or call queues at once. Add supports placement (first / last / specific slot, or per-target placement); already-present members are repositioned, not skipped, and the toast lists which targets already had them. Remove reverses the buttons and reports any targets the member wasn’t in.
Call-Flow Studio Heat Map — (Partner request.) New heat-map overlay on the Call Flow Studio showing call volume across nodes at a glance.
Ownership Filter for tcx-Object Tables — Call queues, IVRs, SBCs, DIDs, SIP trunks, and ring groups now hide objects belonging to phone systems removed or reassigned away from the current customer. Tables stay accurate without manual cleanup after customer reorgs.
DID Default Route on the Call-Flow Map — DID’s Assigned To column shows the default route from the call-flow map.
Editor Defaults — Call queue and ring group create now default destinations to End Call for No Answer and Accept Anyway for Office Closed / Break / Holiday. Department defaults to “Default” once a phone system is selected on IVR, call queue, and ring group create.
Bug Fixes:
- Restored the Max Callers in Queue field on the call queue editor (hidden last week as part of an API-only field sweep, but still needed).
- Call queue create no longer suggests a stale extension on consecutive creates.
- Member pickers dedupe inactive / removed extensions and sort by extension number.
- Null pointer fixes in call queue and ring group save paths.
June 12, 2026 — Call Queue Editor Overhaul & Call-Flow Editability
Call Queue Editor UX Overhaul — Rebuilt to match 3CX Update 9’s editor in the Controvo theme. Audio upload is now available on all four prompt fields (Music on Hold, Voicemail Greeting, Intro Prompt, comfort prompts) with inline Upload / By Phone buttons. Cards are restructured: Greetings split from Announcements; Live Chat and 3CX Talk (renamed from Call Us) split into side-by-side cards. The validation toast now lists the missing fields by label.
SLA Time Moved to Notifications & Statistics — SLA Time (seconds) moved out of Queue Preferences into the Notifications & Statistics section, next to “Email Managers On”. New hint clarifies that the value drives queue notifications and SLA reporting.
Call Queues Editable from Call Flow Studio — Right-click a call-queue node and pick Edit Call Queue to open the full editor in a modal. Save persists, the studio refreshes the graph on success, and Cancel leaves server state untouched. Matches the existing IVR / ring-group / extension pattern.
Audit Logs on SIP Trunks & SBCs — Audit log coverage extended to SIP trunks and SBCs on the backend, so configuration changes on those objects are tracked the same as everywhere else.
June 11, 2026 — SBC Management
Create, Update & Delete SBCs — Backend now supports the full CRUD lifecycle on SBCs. Combined with the SBC editor and ownership filtering shipped earlier, partners can manage Session Border Controllers end-to-end from Controvo.
June 10, 2026 — Audit Log Polish
Newest-First Default Sort — The Audit Log (/system/audit-logs) now defaults to Timestamp, descending instead of loading oldest-first. The sort header arrow reflects it on load.
Richer IVR Audit Entries — IVR rows render as “IVR Name — Customer Name” instead of IVR #<id>. Clicking the description deep-links to the IVR’s edit page; the IVRs tab auto-opens that IVR’s editor and then strips the query param so a refresh doesn’t reopen it. Expanded-diff field keys are humanized too (e.g., transferEnabled becomes “Allow Caller to Dial Extensions”).
Bug Fixes:
- Call queue create/update edge-case fixes on the backend.
June 5, 2026 — IP Phone Tab & Extension Editor
IP Phone Tab on the Extension Editor — New tab showing an attached-phones dropdown plus an embedded provisioning form. The provisioning form has no separate Save button — it persists via the extension’s main Save Changes button, so managing the phone is part of saving the extension.
Phones Count Column on the Extensions Table — New column opens a master-detail dialog: clickable list of phones for the extension, an editable phone form on the right with Save and Delete. Delete carries the router-phone dependency warning across.
Editor Actions — Added Show QR Code and Reset Password buttons to the extension editor’s action bar. Read-only Assigned DID(s) display on the Identity tab.
BLF & Voicemail UI Polish — BLF tab now pre-fills 50 rows then one-at-a-time; fields are compact and centered. Voicemail “Email Notifications” lives under a “Missed Call Notifications” subhead; three voicemail fields fit on one row.
Updates Hotfix — Fixed the updateNow flow that broke pushing the 3CX emergency update to clients. The payload contract was wrong ({ key, updateIds } instead of the descriptor-based body the backend expects), causing a 500. Also scoped the “select all” header box and per-system box to the standard 3CX system release (category=sp150 && updateType=Release) instead of including pre-release builds. Pre-release builds remain selectable through the dedicated toggle.
Bug Fixes:
- Transfer Enabled bug on the backend.
June 4, 2026 — Ring Group Editor & Editor Field Sizing
Ring Group Editor Rebuild — Migrated to the editor-shell flat layout. Member selection is now a multi-select popup (dual-list) instead of 3CX’s one-at-a-time add. Voicemail and Transcription grouped into a right-column card stack. Edit Ring Group added to the Call Flow Studio context menu and dialog.
Extension-number Picker on Call Queue & IVR Create — Call Queue and IVR now have the same Pick control as Ring Group (lowest available / highest available / browse dialog), with the 80 / 800 / 8000 band default on create.
Editor Field-sizing Standard — Editor-shell fields standardized to 13.5px text, 40px height, 8px padding, 16px suffix icons. Documented in UI_STYLE_GUIDE.md under Forms → Editor field sizing.