Changelog - Portal Frontend¶
All notable changes to Portal Frontend will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.123.0] - 2026-10-19¶
Added¶
- configuration: group the softphone UCP settings by topic
- callcenter: add filter by extension on queues status
- configuration: add AI assist controls and harden JSON forms
- form: reload a form's state when the working account changes
- transcription: configure live transcription on the AI Transcription page
- ucp-config: support disabling missed calls widget
- transcription: explain that the usage cost is estimated from billed minutes
- transcription: show the transcription cost in the usage panel
- transcription: usage side panel on AI Transcription
- crm: select, archive, restore and delete CRM cases and leads (SUP-420)
- transcription: Auto-detect language for Google Speech-to-Text (SUP-560)
- transcription: Google Speech-to-Text tenant settings (SUP-560)
- SUP-525: Classification column in the CDRs report
- ucp: Desktop App (PWA) setting per account
- desk-center: state the reseller's ceiling on the attachment limit
- campaign: add lead expiry hours and days fields
- softphones: add Disable Recordings Visibility to the UCP switches
- genai-integrations: simulate a turn through the pipeline relay
- desk-center: the retention ceiling, beside the size limit
- genai-integrations: pipeline relay switch per account
- desk-center: show the usage beside the limit that caps it
- genai-integrations: rate the simulated turn with a speed gauge
- reports: show the PIN note in the PIN Call Log (SUP-515)
- genai-integrations: add a pipeline simulator
- genai-integrations: show OpenAI latency in its row
- genai-integrations: show each region's latency
- genai: one row per provider in GenAI integrations
- genai: Deepgram key and region fields in GenAI integrations
- genai: ElevenLabs key and region fields in GenAI integrations
- campaign: explain CRM lead sync and add leads by hand
- personas: offer GPT-4.1 for the modular pipeline
- DEV-6639: show alternate lead numbers and offer a leads CSV template
- DEV-6639: show alternate lead numbers and offer a leads CSV template
- desk-center: the reseller sets what an account's attachments may use
- export: offer the queue picker on the Missed Calls and Queues Calls exports
- reports: show the caller in the PIN Call Log (SUP-510)
- portal: yeastar phones, campaign history, ice, and recording labels
- queues: sort numbered names and filter queue columns
- desk-center: the Portal sidebar entry, behind its two gates
Changed¶
- transcription: load the AI Transcription page through the Form's getState
- transcription: flat provider buttons that fit their names
- ucp-settings: keep ICE timeout label on one line
- ucp-settings: move Devices switch next to DND
Fixed¶
- campaign: restrict robovm campaigns to progressive
- configuration: always show AI Assist UI Disable on Softphones
- transcription: reload the AI Transcription page when the working account changes
- transcription: widen the API key field and let it be hidden
- accounts: space out the filter selects
- login: do not crash when no Google client id is configured
- campaign: add leads while creating a campaign
- callcenter: show transferring agent subdisposition in reports
- select: let the wheel scroll a select menu opened inside a modal
- topbar: hide Desk Center when the working account does not have it
- field-input: align header with select labels
- recordings: label same-extension campaign legs from the lead
- recordings: label same-extension campaign legs from the lead
- recordings: stop bulk ZIP downloads from silently dropping recordings
- callcenter: the four lint errors, and the bug hiding behind one of them
- dispositions: the Desk Center selects were narrower than what goes in them
[1.122.0] - 2026-09-26¶
Added¶
- queues-availability: add the queues availability report
- reports: add an Agent Ext filter to Queue Outbound Calls
- provisioning: add Buttons profiles, transfer reporting, and recording legs
- provisioning: add Buttons profiles, transfer reporting, and recording legs
- SUP-457: open Contact Center as a user of the account (act-as)
- form: let FormSection be owned by its caller and carry header actions
Changed¶
- campaigns: build the Campaign Builder sections on FormSection
- queues: build every queue form section on FormSection
Fixed¶
- leads-status: never print "undefined" in the Agent column
- queues: drop the card inside the Strategy tooltip
- queues: lay the CRM section out in rows so the URL lines up
- fields: paint a required field red once the user empties it
- form: keep collapsed sections validating and flag the ones with errors
- campaigns: even the leads import headings and line the editor up with URL
- drag-and-drop: center the CSV field list and use the readable brand color
- fields: start FieldTextarea flush with the fields beside it
- fields: keep the info glyph from making field labels taller
- campaigns: thin the schedule rule and align the caller ID delete button
- select: inset multi-select values like single selects
- button: size ThemeButton from numeric string widths and heights
- form: render FormSection actions while the section is collapsed
- queues: keep the SLA Seconds label on one line
- form: don't let a section's first block add space under the header
- form: shrink the shared form footer from 80px to 60px
- queues: put the Next Actions switches side by side
- queues: line the form's fields up with their section titles
- fields: move the field molecules' left margin to the right
- queues: one section toggle, with its chevron centred
- select: read a bare
radiusflag as rounded, not as a radius
Test¶
- modal: re-record the DeleteResourceModal snapshots
CI¶
- changelog: publish the changelog to fonouc_docs on every master build
[1.121.0] - 2026-09-17¶
Added¶
- cc-quality: quality management selectors and permissions adapter
- users: show queue membership and CC agent cap
- callcenter: add named contact center user cap
- phones: add unlock timeout and expire action
Fixed¶
- SUP-440: keep the Calendly PAT typed into the Link Calendly modal
- modal: keep the footer out of the content on auto-height panels
- callcenter: pass the working account to contactcenter
- select: portal raw react-select menus past overflow clip
- callcenter: use DispositionCell on agent activity
[1.120.0] - 2026-09-16¶
Added¶
- users: show queue membership and CC agent cap
- callcenter: add named contact center user cap
- phones: add unlock timeout and expire action
- reports: outbound calls -> Outbound Caller ID column and filter
- callcenter: add hold wrap columns and sip log interaction_id
- ai-providers: distinguish AI Provider and AI Provider Legacy
- accounts: add a Reports modal for the chart agent name format
- DEV-6608: the reseller decides which accounts get Workforce Management
- status: add database tasks section
- cdrs: give call legs the same Call ID panel as their row
- provisioning: offer Sangoma P-series in the profile manufacturer list
- provisioning: allow Asterisk phones to set static network
- personas: add Gemini 3.1 and GPT Realtime 2.1 to the speech catalog
- provisioning: offer Asterisk A20 in the profile manufacturer list
- styles: make the control radius one knob
- field-switch: reveal a clipped label on hover
- reports: replace the native datetime input with a themed picker
- sidebar: show an icon rail when collapsed, and tighten the rows
- lint: ban hardcoded colours in class names
- ui: add the shadcn Dialog primitive
- users: show headroom against the user limit instead of a bare number
- reusable: migrate the shared reusable stylesheets to tailwind
- config-rest: migrate the remaining configuration components
- config-integrations: migrate the integrations screens to tailwind
- config-billing: migrate the billing screens to tailwind
- config-ratedecks: migrate the ratedecks screens to tailwind
- config-pins: migrate the pins screens to tailwind
- config-numbers: migrate the numbers screens to tailwind
- config-queues: migrate the queues screens to tailwind
- config-roles: migrate the roles screens to tailwind
- config-accounts: migrate the accounts screens to tailwind
- shell: migrate the smartpbx frame and the sidebar stylesheet
- misc: migrate the misc screens to tailwind
- crm: migrate the crm screens to tailwind
- reports: migrate the reports screens to tailwind
- callcenter: migrate the callcenter screens to tailwind
- users: migrate the users screens to tailwind
- provisioning: migrate the provisioning screens to tailwind
- navbar: migrate the navbar screens to tailwind
- status: migrate the status screens to tailwind
- reports: migrate the report layout to tailwind
- ui: migrate the Switch atom to tailwind
- ui: move CustomButton onto the shadcn Button
- ui: migrate FieldSelect to tailwind
- ui: migrate the page Header to tailwind
- ui: migrate FieldInput to tailwind
- ui: move the Input atom onto the shadcn Input
- ui: migrate the shared Modal chrome to tailwind
- ui: move ThemeButton onto the shadcn Button
- reports: migrate the column filter group to tailwind
- reports: migrate the datetime filter row to tailwind
- reports: bring back alternating row backgrounds
- reports: migrate the shared report table to tailwind
- login: tighten the auth shell typography, depth and form semantics
- login: give the auth shell a split brand layout
- ui: add the shadcn alert primitive
- tailwind: publish the whitelabel brand gradient to tailwind
- login: migrate the login page to tailwind and shadcn
- ui: add shadcn input, label, card and separator primitives
- ui: add shadcn button primitive
- tailwind: wire tailwind entry point and theme bridge
Changed¶
- accounts: stop the section labels reading as links
- ui: move the pre-migration radius onto the named scale
- ui: write the circles as rounded-full
- dispositions: render the form on the shared Form organism
- dispositions: migrate the disposition form to tailwind
- login: narrow the form card a step
- controls: turn the radius knob back to 6
- controls: turn the radius knob to 30
- styles: finish the control height at the atoms
- styles: give every form control one radius
- reports: move the records range into the filter row
- theme: replace styled-components with a plain context
- mui: drop the last four files, and the dependency
- mui: replace the checkbox, the slider and the tri-state switch
- mui: replace the tooltips and two whole files
- users: move the tally into the page header
- styles: put the icon sizes on the scale
- styles: unify the control heights passed as props
- header: bring the page title down to the scale
- reports: follow the row height down to the type scale
- styles: fold two phantom type tiers into the scale
- styles: lower the xs and sm steps to 11 and 13
- modal: extract the shared modal chrome into ModalShell
- styles: shrink the modal header to h-11
- styles: unify the control height on h-9
- styles: write the remaining spacing on the scale
- styles: move the 5px spacing rhythm onto the 4px scale
- styles: put the section padding on the spacing scale
- styles: take hardcoded colours out of class names
- modals: move the last thirteen modals onto the shadcn Dialog
- modal: build the shared Modal on Radix Dialog
- styles: drop the tw: prefix from every utility
- styles: move the global reset from createGlobalStyle to plain CSS
- login: migrate the auth screens to tailwind and the shadcn Card
- sms-carriers: migrate the API form layout to tailwind
- styles: drop the AppStyle and MainStyle wrappers
- shell: migrate inline styled-components to tailwind
- plans: migrate inline styled-components to tailwind
- users: migrate inline styled-components to tailwind
- crm: migrate inline styled-components to tailwind
- reports: migrate inline styled-components to tailwind
- personas: migrate inline styled-components to tailwind
- reusable: migrate inline styled-components to tailwind
- callcenter: migrate inline styled-components to tailwind
- configuration: migrate inline styled-components to tailwind
- deps: drop @material-ui/core by moving datetime inputs to shadcn
Fixed¶
- callcenter: use DispositionCell on agent activity
- callcenter: show Abandoned tooltip on Abn header
- sidebar: the two active-state labels the brand sweep missed
- theme: give the brand colour a readable variant for text
- bubbles: compact the key/value strip and fix its icon
- accounts: centre the call/user limits in their pill
- DEV-6609: warn when a persona saves to CRM with no disposition bound
- crm: load the case from the detail endpoint when Case Details opens (SUP-399)
- accounts: draw Contact Center with a filled icon like its siblings
- accounts: let the CallCenter glyph take the badge colour
- accounts: give the features pill a single readable green
- fields: put the whole field family on the shared tooltip
- crm: stop a caller style from hiding the modal and locking the page
- login: keep the brand panel readable on light whitelabel grounds
- personas: cap job at 35 characters for Kazoo caller id
- personas: cap job at 35 characters for Kazoo caller id
- select: let the menu be clicked when the select is inside a modal
- table: post tailwind migration issues and improvements
- status: show the loader when database tasks are refreshed
- SUP-396: record the edit the Custom Caller ID grid actually made
- reports: stop row menus being clipped by their cell
- reports: let the remaining wrapped reports fill the page while they load
- dispositions: let the report fill the page while it loads
- ai-assistant: lift the floating button only on form screens
- dispositions: clamp the description cell to two lines
- ai-assistant: lift the floating button clear of the form footer
- dispositions: take the subdisposition action colours from the theme
- reports: refresh Queues and Locations snapshots after header shrink classes
- flotant-box: position the panel against the viewport so cells stop clipping it
- reports: let the report column shrink so header Download stays on screen
- autoprovision: widen the Caller ID mask fields so their labels fit
- crm: fall back to the recording summary in CRM Case Details
- autoprovision: move the DND switch to the third feature row
- reports: clip flex table cells so columns do not overlap
- reports: restore typed datetime-local on filter From/To
- softphones: keep Save visible when UCP toggles wrap
- dispositions: restore the disposition form the tailwind migration overwrote
- provisioning: keep Asterisk A20 distinct from Sangoma
- callcenter: stop queues status crash on closed spy modal
- whats-new: guard notes highlights and other arrays
- reports: stop telling every empty table to change its date range
- users: close the gap between a tag's name and its dot
- react-select: keep the tag colour on its swatch, not the whole chip
- users: centre the name cell like the rest
- users: give the email column the room the checkbox was taking
- styles: give the horizontal scrollbars the thickness of the vertical ones
- topbar: anchor the account panel to its button
- styles: point the last control radii at the knob
- reports: fit the stacked cells inside their row
- styles: restate the container widths in px
- react-select: size it like every other control
- field-switch: stop the info glyph floating away from its label
- inputs: give every control atom the same border
- reports: give the filter controls the app's shared defaults
- reports: clamp the description cells to the row they sit in
- ai-providers: import the missing snackbar action
- topbar: stop the account block covering the last option
- deps: restore the cc-dashboards git pin, again
- users: stop the empty limit bar reading as a full one
- modal: do not open when the open flag is absent
- users: do not check select-all when the table is empty
- styles: fill form controls in dark only
- styles: outline form controls instead of filling them
- reports: match the quick-range control to the fields beside it
- styles: fill form controls in both themes and drop their shadow
- styles: make control borders visible enough to be a boundary
- reports: drop the table class that shrank the report wrapper
- crm: drop the pill radius the filter bar forced on its selects
- styles: stop bare buttons rendering the UA's grey face
- selects: match the shadcn Input's border, fill and focus ring
- users: let the tags filter sit in the filter row
- selects: give every select the same radius as the controls beside it
- styles: guard matchMedia in useThemeMode effect
- ui: make the select radius a real value and align it to 6px
- tailwind: correct the compat cascade band and two theme token bugs
Test¶
- reports: update table snapshots for the header shrink fix
- reports: update table snapshots for the cell clipping fix
- modal: cover the open flag and the panel size
- login: cover the recover, reset and account-selection screens
- campaign: wait for the fetched campaign before saving
Performance¶
- reports: drop the default data-row height from 80 to 60
[1.119.0] - 2026-09-05¶
Added¶
- DEV-6547: open Workforce Management as a breakout to contactcenter
[1.118.0] - 2026-09-04¶
Added¶
- accounts: gate CRM and AI portal surfaces per account
- DEV-6592: show the call rejection reason in Technical Details
- fdmcs: add Fanvil FDMCS provisioning UI
- provisioning: add Debugging syslog section on Grandstream and Yealink profiles
- provisioning: add Network section for Grandstream and Yealink phones
- provisioning: add YMCS server delete like GDMS
- themes: resolve the Connect theme from either customer key
- themes: rebrand Illation portal to Connect
- crm: contacts -> import contacts from Google
- provisioning: phones -> offer the Grandstream GRP2601P and GRP2602W for provisioning
- queues-activity: one column definition for the Queues Activity table and its CSV
- provisioning: add YMCS RPS UI and GDMS site delete
- gdms: show GDMS under IP Phones
- number-manager: add classifiers, valid patterns, and account overlay
- gdms: add GDMS profiles, phone bind, and MAC auto check
- DEV-6531: visual gate-flow builder for AI Persona gate mode
- callcenter: add queue-agent-unified TV wallboard mode
- cc-dashboards: update to ver 1.3.11
- crm: add native queue CRM mode and cases contact display
- crm: catalog disposition colors, tag note field, greeting interrupt
- tags: add description/AI instructions field to tag form
- accounts: add free trial pill to accounts list
- ai-concierge: disposition textarea for AI instructions, WhatsApp test message button
- queues: add sticky agent routing section on queue form
- crm: normalize dispositions
- ucp-config: add movable call popup admin toggle
- personas: agent name profile fields and gate flow graph fit
- personas: add voice market fields on persona form
- provisioning: bulk import phones from csv in portal
- queues: persona routing on queue form and gate outbound flow editor
- personas: add routing, extension, DID and description filters
- personas: grid layout and detail modal for global tools
- personas: vertical gate flow layout with routed edges
- personas: add gate flow graph visualization with node inspector
- callflows: add AI callflow node config and caller-id improvements
- persona: add gate_runtime mode with JSON flow editor
- crm-cases: make case detail persona a clickable badge
- crm-cases: auto-save case tags and show them as dot chips
- crm-cases: change case status by clicking the status badge
- crm: flex layout and CRM report table
- ai-concierge: live-transfer disposition tier and WhatsApp FYI scope
- personas: add voice handoff/reach/callback override fields
- personas-crm: voice routing ui, sentiment column, caller id and tool fixes
- crm,queues,personas: sentiment UI, queue perf, EWT pre-connect, outbound greeting
- crm: cases-first routing, filters, and dev proxy tooling
- integrations: add GenAI nav entries and V2 permission fallback
- portal: genai keys ui, campaigns activity permissions, crm route, ai numbers
- callflows: add http lookup module and dtmf confirmation options
- portal: AI callflow nodes, persona runtime fields, global security for supers
- config: ip phones top-level nav and /configuration/provisioning
- docker-dev: entrypoint, compose and build script updates
- ai: update mcp
- crm: cases and leads pipeline, api clients, contact tags
- leads: update
- crm-contacts: multi search, tags, columns, report load more
- crm: tag scopes, CRM catalog tags, leads contact link
- ai-agent: restructure portal navigation with dedicated AI, CRM sections and Gmail integration
- SUP-150: show Direction and Call Type in the Call Recordings report
- campaigns: list the new optional CSV columns in the leads drop zone
- SUP-261: explain in-report that Agents Activity durations do not add up
- export: offer Count By user | By call on All Calls exports
- export: offer the answered-by-another setting on All Calls exports
- gateflow: lay the gate editor out in two columns
- personas: hear a voice before choosing it
- personas: pick an ElevenLabs voice from the account's own list
- personas: offer ElevenLabs as a speech provider
- personas: remove the AI Prompt Assistant
- personas: offer Deepgram voices for text to speech
- personas: add a caller language to the persona form
- personas: tell the author an extension is taken while they type it
- softphones: add UCP click2call toggle
- campaigns: Delete All Leads action in the campaigns list
- personas: choose and see the shape of the conversation
- callcenter: show owner and call-forward for device_dial agent history
- callcenter: on-hold UI and bump cc-dashboards to v1.3.24
- reports: add a Post-Action Duration column to Campaigns Activity
- cx: add the CX Channels Summary report
- exportable: offer CX Conversations as a scheduled export
- cx: download the CX conversations report and its transcripts
- queue: add trigger-next-on-agents busy/offline toggles
- SUP-131: bulk CSV upload for Custom Caller IDs and PINs
- SUP-244: select the SharePoint recordings date directory format
- cc-reports: add upload to Zoho action to technical details
- call-journey: show module and HTTP details in pre-queue timeline
- callcenter: Avaya key counts and CSV filter pass-through
- callcenter: amd abandon labels, wait columns, gateway rules truncate
- release-notes: add what's new sidebar
- exportable: add exportable reports CRUD
- moh: add TTS create flow and list duration
- campaign: add shared AMD config and MOH audio validation
- SUP-230: explain the day-to-date tiles in the dashboard header
- DEV-6546: add "Upload call log to Zoho" to the call reports
- SUP-207: expose Follow Up Notes in the Queue Calls report
- queues: add auto_answer_ring_delay_seconds UI
- leads-status: create-date search, CSV download, 2-row filter grid
- callcenter: predictive campaign form, RONA queue settings, campaign KPIs
- exportable: filter the All Calls export by condition groups
- exportable: add All Calls report filters to the export form
- exportable: add All Calls to Contact Center reports
- DEV-6535: download call recording transcripts with recordings
- reports: load the heavy call-center reports in the background
- reports: per-call technical details modal on five reports
- exportable: let the agents activity export pick its queues
- theme: add BrainBox customer theme
- DEV-6523: add Managed Inbox Membership toggle to CX Channels account settings
- agents-activity: select more than one queue
- cc-dashboards: bump to version 1.3.13
- cc-dashboards: bump to v1.3.12 (SUP-93 Missed Calls tile)
- call-rating-reasons: add a callcenter Config page to manage reasons
- profiles: configure audio codecs on provisioning profile form
- queues: form -> post call api config -> recording url var
- sup-42: auto-logout queues toggle on Softphones (UCP) screen
- crm: show a re-authorization message when Zoho revokes the token
- reports: add CX Conversations report under Contact Center
- SUP-51: Top-Ups report page (prepaid credit top-ups)
- SUP-28: CDR Direction as In/Out badge with diagonal arrow
- SUP-28: Direction & Call Type columns in CDR report
- storage: cdrs -> add filename prefix option
- number-manager: normalize UI into a single report table
- live-calls-panel: per-field filters for active calls
- softphones: account CRM home URL and autoprovision UX
- number-manager: admin/subaccount UI, rule reorder, kazoo e164 test
- embed: support per-account embedded site config with scope indicator
- supervisor: add callback modal, configQueueNames, import transformSnapshotToQueues
- storage: cdrs & recordings -> Microsoft Sharepoint
- reports: totals charges per account -> summary
Changed¶
- personas-tools: polish Gmail integration modal
- personas: theme-align the gate node modal
- personas: theme-align disposition dots and gate-flow controls
- personas: polish integration tool modals
- personas: use portal palette for tool list colors
- personas: drop coloured accent border on gate nodes
- crm-cases: drop persona id from persona filter labels
- crm-cases: size tag filter select to content
- crm-cases: show tag filter as dot chips
- crm-cases: clamp intent column to 2 lines with ellipsis
- crm-cases: pad case detail content before scrollbar
- crm-cases: show lead tags as dot chips
- crm-cases: match sentiment badge to disposition in Case Details
- crm-cases: drop underline on Case Details back button
- crm-cases: rename "Case tags" label to "Tags"
- crm-cases: stack Case tags above Status in Case Details
- crm-cases: polish Lead Details modal
- crm-cases: wrap filter bars in a rounded panel
- DEV-6530: align CRM section with Portal styling and shared components
- crm: align integration package cards with the portal look
- DEV-6546: collapse the Zoho upload into a row actions menu
- exportable: read/write All Calls filters under all_calls object
- field-input: take the field colors from the theme
- SUP-28: center the CDR Direction In/Out badge in its column
- SUP-28: neutral gray for CDR Direction badge
Fixed¶
- bugs: post reports to the local session instead of a public token
- accounts: size the accounts row to the features cell
- accounts: widen the Features column so every button fits
- accounts: move Integrations button to the first features row
- react-select: let multi-value chips use their label width
- accounts: reject spaces in the account realm
- cx-channels: carry the Instagram OAuth round trip through the portal (SUP-368)
- queues: document the Most Idle and Talk Time ring strategies (SUP-357)
- bugs: use the write-only bugs_report_token
- provisioning: profile form -> make the content actually scroll
- deps: restore the cc-dashboards git pin
- queues: guard next-action email data and stop unmount flush
- crm: show BYPASS QUAL VIP sentinel dispositions in cases list
- personas-tools: show loader on Gmail unlink button
- personas-tools: show loader on Gmail test email button
- topbar: guard account selector without breaking child drill-down
- provisioning: correct bulk phone csv import module paths
- personas: wire up the Name filter on the personas list
- crm: clamp the Lead subject cell with an ellipsis
- theme: theme the main content background
- reports: symmetric horizontal margin on the report filters block
- crm-cases: avoid lead tag id flash + auto-save lead tags
- crm-cases: resolve persona names missing from the bulk list
- crm-cases: make "Search in" filter select auto-width
- crm-cases: align filter bar control heights to 30px
- integrations: gate GenAI and transcription UI for tenant admins
- callcenter: count in-queue callbacks as offered, not abandoned
- gateflow: let the stage prompt fill its column
- gateflow: give the stage prompt the room it needs to be edited
- crm: use theme tokens in CRM sections for dark mode
- crm: declare getState before the effect that calls it
- personas: stop saving a gate flow the agent cannot read
- campaign: load edit form when caller_id is omitted
- personas: show why a persona save was refused
- SUP-266: count Queue Agent Unified wrap-up agents per extension
- SUP-269: stop the Contact Center modal clipping the Queues toggle
- personas: size the gate flow tab buttons
- gateways: stabilize trunk route select; bump cc-dashboards to v1.3.20
- agent-skills: require a sub-skill instead of saving a bare skill
- SUP-228: default campaign retries to 4 in the Campaign Builder
- cx: show conversation dates in the selected timezone
- callcenter: monitoring snapshot API; queues agent presence sort
- campaigns: form -> import the campaign CSV leads when creating a campaign
- usage-charges: show rerate button to super admins only
- accounts: keep advanced account form buttons on screen
- callcenter: re-anchor unified duration when backend timestamp advances
- callcenter: align queue activity filter keys with table columns
- account-form: allow up to 300 concurrent calls in Edit Account limits
- exportable: default ExportableTaskForm config to avoid crash
- field-input: keep a field invalid across repeated bad keystrokes
- field-input: size the info tooltip to its hint
- field-input: keep the validation message above the field below it
- campaigns: reject schedule times that are not hh:mm
- cc: reports -> queues activity -> apply queue multi-select in the flat table
- agents-activity: let the queue filter grow with its chips
- agents-activity: drop the dead tags prop
- SUP-156: explain Disk Size vs Data Size in Call Recordings report
- SUP-75: null-safe the whole codecs payload + discriminating test
- SUP-75: guard caller_id inbound on Softphones to stop white-screen
- SUP-124: remove false "CSV stuck" alarm on Users Charges download
- sup-102: re-anchor Queue Agent Unified duration on new call
- sup-42: default auto-logout toggle to unchecked during load
- credit: send amount in credit balance API request
- reports: users charges pdf download crash and blob response
- tests: raise vitest testTimeout to survive slow CI runners
Test¶
- snapshots: refresh the Queues and Locations class hashes
- locations: freeze the clock in the GET_LOCATIONS_LIST reducer test
- SUP-75: use the exact Amity production codecs payload
CI¶
- coverage: run the coverage job on develop only
- coverage: add non-gating vitest coverage job
- portalfrontend: remove changelog push to bitbucket docs
[1.117.0] - 2026-06-16¶
Added¶
- callcenter: dedupe CSAT display by collection name
- roles,reports: UCP settings in role form; journey timeline modal in call reports
- sms-carriers: add Telnyx as a selectable SMS carrier
- call-recording: add tags and extension filters on user recording config
- usage-charges: show rerate summary in modal for dry run and live
- usage-charges: rerate UI and queue record on agent connect
- reports: apply filters to CSV file download
- roles: custom roles allow to create admin - allow to assign only custom roles
- queues: add sticky agent routing section on queue form
- portal: unified config feature to control multi-domain user vs staic url
- smartpbx: allow static monster url
- roles: add smarpbx role permission - configurable per system feat(roles): apply smartpbx role permission
- cc-reports: add sla columns to queues activity report
- cc-dashboards: bump version
- queue: add post api call subdispositions variables
- queue-form: crm -> add callee id name & number vars
- export: add usage charges to exportable reports
- ratedeck: add ratedeck debugging
- rates: fix rate upload
- users: add bulk actions
Fixed¶
- users: numbers search
- roles: pins reports permissions
- reports: pins reports cost
- cc-reports: center action buttons in queue activity columns
- login: oauth security issue
- storage: pass resource to google oauth url endpoint
- numbers: eliminate render loop and bug-report POST storm. Deduplicate acocunt id
- topbar: working account selector
[1.116.0] - 2026-04-29¶
Added¶
- reports: add missed calls to exportable report
- cc: leads csv download
- docker: install private bitbucket deps via SSH mount
- theme: add Nobela customer theme
- development: sdd tools update
- development: Add SDD integration
- leads: improve lead count on pagination
- leads: fix pagination
- reports: add new pins reports
- telephony: pins per user
- cc-dashboards: bump to v1.3.5
- cc: upgrade cc-dashboards to v1.3.4
- reports: users activity report - add tags filter
- users: add tags filter to CSV download
- cc-dashboards: bump to v1.3
- cc-dashboards: add counters to kpi cards
- chore: update gitignore
- crm: crm popup - on invite or on answer
- dashboards: use cc-dashboard version
- cc-dashboards: import supervisor panel from library
- embed: allow to delete embed url
- roles: add missed calls report
- recordings: add interaction id to custom filename
- status: add live calls panel
Fixed¶
- cc: queues list dids and extensions layout
- mfa: portral crash
- callcenter: bump cc-dashboards to v1.3.5 and stabilize fetchTags
- numbers: used by -> ai provider fast edition
- users: tags search in user add form
- users-list: omit location filter from array when disabled
- accounts: children accounts refresh when changing working account
- supervisor-panel: dark theme
- smartpbx: working account synchronization
[1.115.0] - 2026-04-06¶
Added¶
- theme: add Nexge theme with white sidebar
- call-recordings: add PII masking for call recordings report
- campaign: csat formatting
- campaign-report: fix csat styling
- unified-dashboard: fix status column
- dashboard: Queue agent unified updates
- cc-reports: campaigns report add csat
- queues: crm popup add lead ticket id
- cc-reports: queues activity add overflow and transferred columns feat(export): queues activity add queue selector
- ai-assistant: ui/ux unification
- cc-reports: add queues activity report group feature feat(export): add contact center reports
- journey: update call joureny for result to show dtmf
- cc-dashboards: split unavailable to DND and Break fix(cc-dashboards): on call counting
- cc-reports: force transfer before enter on events with the same ts
- crm-popup: allow popup to tab
- accounts-users: surface and edit enabled user cap (limit.users)
- reports: charges pdf, csv improvements
- callcenter: campaigns agent history tabs and dial type helpers
- queues: add sla target percent, seconds defaults, and supervisor sla
- callcenter: supervisor agents perf/cards defaults and tab persistence
- callcenter: supervisor group mode fixes, default expand queue group, axios rejection logs
- reports: missed-call journey timeline modal
- callcenter: pass persisted timezone to queue calls view
- callcenter: shared supervisor merge module and unified dashboard parity
- callcenter: supervisor multi-queue merge, cards refresh, duration logs
- dashboards: supervisor panel add counters and filters
- status: queues - refresh only opened queue
- number-manager: show error message on converters
- dashboards: add agents performance and agents cards to supervisor panel
Fixed¶
- campaign: preserve zero for target_sla and customer_wait_sla on save
- call-recordings: fully redact masked caller names in report
- numbers: sms carriers providers account id
- cc-dashboard: on call counter
- personas: show backend error detail when agent creation fails
- permissions: show AI Agents sidebar when modules.ai has access
- numbers: assignation -> fast edition ui
- dashboards: add dnd break tile back
- dashboards: supervisor agents performance tags
Test¶
- permissions: add tests for AI Agents sidebar permission adapter
[1.114.0] - 2026-03-18¶
Added¶
- users: filter by tags or logic
- callcenter: add entered skill groups and skill column to agent history modal
- callcenter: fix reset buttons
- dashboards: rename ws to cc_dashboards
- theme: add brandPrimaryDark and brandSecondaryDark support
- numbers: add dark theme support to numbers section
- queues: add dark theme support to queue form
- dashboard: fix unified dashboard
- cc: supervisor dashboard add unavailable filter
- cc: show queue names in queue group
- cc: add global queue group and keep state to supervisor dashboard
- missed-calls: summary bubbles, multiple follow-ups, direction and callee columns
- users: add location column with inline editing and filter
- callcenter: add type column, gear dropdown, split view and UX improvements
- callcenter: enhance queue-agent-unified dashboard
- cc: add duration column to queue agent unified dashboard
- cc: add supervisor panel dashboard
- users: users count -> enabled/disabled labels
- cc: add new dashboards
Changed¶
- tests: migrate from react-scripts to vitest and fix test providers
Fixed¶
- users: filter by tags
- tests: handle --watchAll flag from CI in test script
- numbers: use full width for numbers section
- reports: tags filter on usage and users charges reports
- package: package fix
- callcenter: show campaign disposition render indicator and modal
- cc: supervisor dashboard active and waiting calls
- hubspot: oauth state
- locations: use PUT and single API call for user location assignment
- locations: assign users -> filter users by
- trunks: route to trunks local parent
[1.113.0] - 2026-03-05¶
Added¶
- cc: dashboards dark theme
- cc: calls history -> add call type
- callflows-pivot: form width
- callflows: flow ui with drag and drop
- cc: update monitoring dashboard through ws
- users-devices: show online/offline
- users-devices: new column with devices modal, read only
- softphones: add new flag cx channels full screen
- callcenter: add disposition duplicate and color picker on swatch
- softphones: ucp -> disable call blind transfer
- ai: support ai assistant
- softphones: allow to disable devices section
- persona-v2: Makes telephony, disposition, CRM and memory always visible.
- persona-v2: Enhances persona configuration with AI assistant
- cx-channels: microsoft/google oauth callback
- agents-activity-report: add analytics charts
- theme: Improves switch border color in dark mode
- theme: Improves React Select styling for dark mode
- theme: add dark
- theme: add dark
- theme: add dark
- softphones: ucp -> set call's ringtone
- report-range: Adds 10 minutes to the end date time
- personas: add editable DID and extension in Telephony section
- persona: add DID association via queue
- persona: Adds extension column to personas table
- softphones: ucp -> hide callee id
- reports: add 10 minutes to end date filter for latest recordings
- report-range: Removes dependency on dynamic report range
- queues: form -> crm url -> access token var
- agents-activity: Adds direction filter to agents activity
- call-transcription: Sets default transcription language
- call-transcription: Adds support for Google STT language options
- call-transcription: Adds Google STT transcription provider
- queue-form: crm -> hide tab close option
- cx-channels: Adds auto assignment toggle for CX channels
- provisioning: improve profile form defaults and UX
- changelog: auto create
- ucp-lite: Adds UCP Lite mode toggle
- cc: show error on queue delete
- api-keys: check admin level
- api-keys: only show api keys section to admin roles
- docs: add changelog md
- user charges report: add csv worker
- whitelabel-title: Adds whitelabel title functionality
- ai-agent: Adds persona greeting field
- ai-agent: Adds Mermaid diagram for persona agent flow
- cc: add queue sla
- meetings: Adds translation feature to meetings
- whitelabel-favicon: Add favicon upload/delete UI in Whitelabel section
- cx-channels: Enables distinct inboxes
- cx-channels: Renders Inboxes based on route
- access: roles v2
- calls: Adds transcription language selection
- calls: Adds transcription mode selection
- calls: Enables call transcription configuration
Changed¶
- persona: Implements expandable tool list
- form: Adds collapsible form section
- unit-test-ci: Adds date helper tests and runs tests in CI
- report: filters for better UX
- theme: Uses theme to determine customer title
- theme: Adjusts ChiOX logo height
- new-theme: Adds ChiOX customer whitelabeling
- theme: Adds theme
- deploy-sourcemap: Improves sourcemap retrieval in release builds
- sourcemap-deploy: Handles missing sourcemap file gracefully
- persona: Handles potential null input schema
- persona-prompt: persona prompt section
- persona-tools: Adds persona tools UI component
Fixed¶
- phones: grandstream 2170
- cx-channels: microsoft oauth callback -> add state param
- filters-group: onChange handler
- section-error: undefined func
- axios: retry mechanism after 401 -> prevent infinite loop
- topbar: fail-open when permissions API fails to prevent empty navigation
- provisioning: profiles -> form -> http data format
- whitelabel-title: use getCustomer() for default page title instead of hardcoded fonoUC
- cc-reports: campaigns activity CSV columns
- ai-agent: Addresses Mermaid diagram re-rendering issues
- git: remove yarn lock from gitignore
- cc-reports: lead status call time
[1.112.0] - 2026-01-01¶
Added¶
- meetings: Adds meeting summary generation feature
- meetings: Adds transcription support to meetings
- meetings: Adds recording enabled option to meetings
- meetings: Enables separate control for Meetings features
- chat: Adds chat feature toggle
- cc-dashboard: add service level text
- vm: Add Mark as Voicemail feature and UI improvements
- cc-dashboard: add max wait time and avg talk queue data
- cc: add queues monitoring
[1.111.0] - 2025-12-18¶
Added¶
- queues: add QUEUE_NAME and QUEUE_ID params to Post Call API Request
- release-notes: visibility restriction
- config: embed user interface -> visibility restriction
- queue-form: send calls to registered agents -> warning message
- after-call-api-request: Adds CDR Disposition option
- config: phone numbers -> evaluate admin permission's template
- campaigns: actions -> reset leads to cooloff
- callcenter: queue calls -> show multiple recordings
- campaigns-activity: call recordings -> multiple recordings modal
- call-recording: encryption
- analytics: Refactors analytics link to sidebar
- analytics: Adds analytics option to top bar
Changed¶
- analytics: show always
- analytics: show always
- vite-server: Updates domain to lab environment
- logo: height
Fixed¶
- queue-calls: apply tz on queue history
- cc: campaigns -> bad import of capitalize util func
- queue-form: agent skills -> react select -> check onChange func
- faxboxes: form -> ui design
- webchat: sidebar option visibility
- report: abort request -> check request availability
- switch: check onChange func
- disposition-form: validation -> type
- reports: play recording modal -> player funcs
[1.110.0] - 2025-11-04¶
Added¶
- queue-form: callflows -> ignore special ones
- callcenter: queue calls -> wait time & talked duration min/max filtering
- ai-provider: Adds opus audio format option
- ai-agent: Adds new Gemini 2.5 Flash Native Audio option
- numbers-manager: e164 converters list
- storage: cdrs & recordings -> directory -> remove spaces
- ai-provider: Adds media configuration to AI Provider
- dispositions: form -> 3rd level subdisposition key/value type
- campaigns-activity: Modifies call ID format for recording playback
- ai-provider: Adds AI Provider configuration UI
- dispositions: form -> multi level -> 3rd level of subdispositions
- queue-form: config -> disposition blocking
- AI Provider: be able to attach AI Provider using websocket to a number
- softphones: ucp -> enable/disable gravatar profile images
- dispositions: form -> key/value subdisposition options validation
- callcenter: leads status -> campaign queue idle agents
- agent-state-disabled: Corrects agent state disable feature logic
- agent-state-disabled: Adds agent state disable functionality
- config: tenant accounts -> list using pagination
- queue-form: crm -> url -> call id var
- cx-channels: support v4
- callcenter: queues status -> agents -> set state
- cdrs: Removes billing seconds check for recordings
- callcenter: queues status -> agents -> log out from ucp
- callcenter: queues status -> agents -> outbound calls
- new-theme: added
- disposition: form -> subdispositions -> type key/value
- queue: Adds outbound call functionality to CRM integration
- dispositions: form -> new type -> custom
- ai-agent: llm tool headers
- softphones: adds disable call rate feature
- persona-speech-engine: set defaults on change
- cc: queues status -> calls actions -> coach
- bugs: reporting -> add hostname
- enables number manager: based on permissions
- queue-form-post-api-call: add var csat
- queue-form: next abandon actions
- app: use prettier to set a code indentation rule
- app: error boundaries
Changed¶
- lk: Uses dynamic target for websocket proxy
- campaign-activity: fetches recording data by call ID
- cw: Updates inbox queue handling in portal
- docker-dev: Removes multi-stage Docker build
- docker-dev: Simplifies Vite proxy configuration
- docker-dev: Updates proxy target based on environment
- config-js: removed
- docker-dev: Adds Dockerfile and Nginx configuration
- llm-tool: global tools show without lodash
- number-manager: remove sort
- ai-persona: no show audio on case real time
- personas-xml: file
- ai-persona: remove advance conf
- linter-issues: #12
- linter-issues: #11
- linter-issues: #10
- linter-issues: #9
- linter-issues: #8
- linter-issues: #7
- linter-issues: #6
- linter-issues: #5
- linter-issues: #4
- linter-issues: #3
- linter-issues: #2
- linter-issues: #1
- theme: new
- softphones-transport: body
Fixed¶
- lead-status: Handles undefined subrows during pagination
- queues: filtering
- numbers: Displays
used_bywhenassignedis absent - users-charges: Removes unused report download functionality
- queue-form: Uses callflow _id for value
- queue-form: agents -> delay & timeout seconds
- callcenter: leads status -> not displaying leads after refreshing
- reusable: field grid -> validation
- ai-assist: Fixes undefined data access
- persona: Handles undefined voice value
- credit: Ensures accounts data is fetched on load
- confirmable-modal: add missing import
- softphones: preferences
- ratedeck-add: case empty line at the end
- role-apply: moh and api key
- role: missing check on some sidebar options
- reports: play recording modal
[1.109.0] - 2025-08-18¶
Added¶
- agent-panel: config disable queue login logout
- queue-post-api-call: add new fields
- app: add eslint and run it in a pre-commit hook
- app: bugs reporting -> add context information
- cc: reports -> outbound calls -> add destination filter
- queue-post-api-call: add recording id
- numbers: add sort
- queues-form: post call api request -> add abandoned var
- persona: new fields stt, tts and speech engine
- persona: new fields stt, tts and speech engine
- persona: new fields stt, tts and speech engine
- campaigns: form -> dial cycles
- campaigns: form -> leads -> dial time window
- persona: add field llm model
- user-interface-embed: add auth fields username and password
- external-report: auth
- user-interface: embed site form
- callcenter: leads status -> download csv
- reports: recordings modal -> show response err
- users: form -> queues restriction
- trunks: use colors to show status
- queues: form -> post call api -> add send on hangup option
- softphones: ucp -> disable dnd
- cc: reports -> queue calls -> add agent name and ext cols
- persona: llm provider
- reports: format pdf
- ai-agent: tool office hours
- queues-form: disable disposition
- persona: add field vibe and initial reply
- persona: add field agent name
- queues: form -> disposition -> restrict options
- mcp-llm-prompt: resource
- numbers: available as outbound caller id number
- llm-tool-variable: able to delete
- api-key: section
- llm-tool-api-request: param type enum
- llm-tool-api-request: param type enum
- queue-and-leads-status: on select -> move to top
- campaigns: form -> disable leads edition if it's running
- queues-status: agents -> calls info
- llm-tool: type api request
- llm-tool: type api request
Changed¶
- build: add version file
- ratedecks-upload-csv: use papaparse lib to parse
- queues-leads-status: width improvement name column
- cdr-custom-headers: height
- leads-status: input and select border
- status-pages: to get more space
- status-pages: to get more space
- status-pages: to get more space
- queues-leads-status: height
- build: node 20
- campaigns-note: css
- endpoints-migration: v1 to v2
- remove-recording-endpoint: not used
- remove-gateways-endpoint: not used
- remove-device-endpoint: not used
- remove-device-endpoint: not used
- tools-list: into new component
- llm-tool-view: css
Fixed¶
- persona: list gemini models
- leads-status: add validation
- numbers: removed sortNumers not used param
- phone-numbers: user assignation
- queue-post-api-call: add validation
- accounts-feature-ai: hover text
- phone-numbers: accounts -> list users
- play-recording-modal: exception when trying to reproduce
- users-table: parse invitation history add validation
- spy-barge: use uuid if conference id is empty
- queues-form: disposition -> restrict options
- queues: form -> show snackbar err when a request fails
- queue-form: add did
- play-recording: add validation
- leads-status: scrolling
- queues-status: rows & subrows filtering behavior
- queues-form: disposition -> list
[1.108.0] - 2025-06-15¶
Added¶
- llm-tool: transfer to queue
- queue-agents: show skills
- agent-skills: user form
- agent-skills: create, edit, get and delete
- llm-tool: by persona with custom params
- persona-voice: css
- persona-voice: add fable, onyx and nova
- persona: voice
- persona-tools: show available tools
- callcenter: evaluate role permissions per subsection
- reports: users activity -> internal/external calls filtering
- ai-transcription: sentiment analysis
- users-list: ai agent row
- persona-fields: all required
- personas-list: add agents count
- agents: spawn
- login: recover password
- personas: section
- dev-tools: remove sentry
- rows-with-subrows: remove fixed height
- campaigns-activity: add disposition map
- ai-agents: show participants
- integrations: ai transcription -> configuration form
- ai-agents: v2
Changed¶
- pins: get users using v2 instead v1
- remove-action: list users of account
- remove-action: list devices of account
- remove-endpoint: account start disa
- remove-endpoint: account show
- remove-endpoint: list simple
- deploy: print remote
- ai-agents: show rooms and participants together
Fixed¶
- persona-voice: add validation
- queue-new: initialize agents
- release-notes: render -> use a route
- accounts: call limits -> send values as integers
- queue-form: agents -> deleted users
- softphones: tls to lower case
[1.107.0] - 2025-05-10¶
Added¶
- campaigns-activity-csv: add lead disposition
- campaigns-activity-csv: add lead type and lead ticket id
- user-form: add pin restriction
- numbers: export csv
- storage: cdrs & recordings -> add support for google drive
- campaign-activity-csv: add new columns
- campaign-activity-csv: add new columns
- report-filters: support select
- agents-activity-report: add user tags
- auto-answer-c2c: account config
- call-recording: download permission
- quote: add delete confirm modal
- quote-item: add delete confirm modal
- odoo: section
- zendesk: section
- hubspot: enable integration -> add missing scopes
- quote: export pdf
- quotes: section
- music-on-hold: section
- release-notes: mark as read
- hubspot-list-filter: user assigment
- recordings: minimun days to keep recording
- queue-queue-action-callback: allow all campaigns
- accounts: list -> show concurrent calls limit value
- salesforce-connected-app: import campaigns and leads
- accounts: limits config -> concurrent calls limit
- salesforce-connected-app: authorization
Changed¶
- deploy-script: python -> bash
- bugs-system: add customer
- set-call-limits: parse response err
- account-set-call-limits: migrate v1 to v2
- account-form: using reusable form
- bugs-system: capture exceptions from onclick user interactions
- bugs-system: load auth token
- bugs-system: set project name
- bugs-system: copy sourcemap
- bugs-system: copy sourcemap
- bugs-system: copy sourcemap
- bugs-system: report
- sentry: add working account
- theme: change logo
- queue-form: use reusable components on DIDs
- queue-form: use reusables components on in queue actions
- release-notes: on home
- sms-provider: use reusables components
- sms-provider: use reusables components
- storage: support any s3 provider
- modal-change-password: using reusable modal
- reusable-form: center loader
- user-form: use reusable section component
- salesforce-cards: improve view
- salesforce-sidebar: remove beta
- salesforce-connected-app: support per account
Fixed¶
- lead-status: exception
- global-addressbook: table
- account-form: timezone
- quote: export pdf
- quotes: filter by name
- quote-item: redirect after creation
- release-notes-count: show only if is authed
- lead-status: case when lead status response is empty
- queue-form: on save case zero agents
- custom-sip-headers: on cdrs report
- field-input-select: support legacy not validated form
- quotes: total avoid not a number
- quote-currency: on the pdf
- security: password age allow zero
[1.106.0] - 2025-02-25¶
Added¶
- users-history: last login mobile
- softphones: ucp -> hide caller id for incoming calls
- ai-agents: crud
- call-disposition: disabled switch per account
- roles: admin config tenant accounts (read only) permissions
- users: form -> edition -> show username & ext
- reports: call recordings -> bulk download in chunks
- queue-form-extension: validation len
- accounts: features -> integrations -> microsoft contacts & calendar
Changed¶
- security-form: using reusables components
- salesforce: add features
- softphones: crud operations
- security-form: using reusables components
- number-manager: using reusables components
- security-form: using reusables components
- topbar: improve show user and account logged
- phones-crud: from v1 to v2 endpoints
- sidebar-billing: create hook
- contact-center-feature-modal: use new endpoints
- reusable-select: z index
- softphones-form: using reusables components
- sofphones-form: using reusables components
- softphones-form: using reusables components
- webchat-form: using reusables components
- webchat-form: using reusables components
- webhooks: change position on the sidebar
- new-theme: added
- queue-form-extensions: using reusables
- sidebar-webhook: icon
- account-features: ui
Fixed¶
- queue-form: agent skill validation
- users-sidebar: on click users
- queue-calls: queue & agent history tables -> height
- phones-tags: on change working account
- call-recordings: apply role
- ai-agent-form: missing extension on save
- ai-agent-form: save button disabled
- ai-agent: extension
- campaign: form -> leads sync -> show response err
- sidebar: options -> visibility
- table: column's width
- topbar: accounts dropdown -> close
- phones: form -> creation/edition -> err message
- phones: form -> keys -> inputs get unfocused
- users: bulk delete -> progress bar
- reusable: select -> z-index position
- topbar-image: refresh by working account
- modal-ai: width
[1.105.0] - 2025-01-16¶
Added¶
- callflows: section
- onboard-email: support current domain
- onboard-link: support current domain
- queue-form: dids validation
- queue-form: support small screens
- webhooks: call events
- status: periodic tasks -> ui improvements
- queues-feature: enable/disable
- status: periodic tasks
Changed¶
- magic-link: current domain
- magic-link: current domain
- queue-form-config: using reusables
- queue-form-config: using reusables
- sidebar-topbar-corner: width equal to sidebar width
- sidebar-topbar-corner: width equal to sidebar width
- storage-form: using reusable form
- export-form: using reusable form
- campaign-form: using reusable form
- queue-form: using reusable form
- tag-form: using reusable form
- user-form: using reusable form
Fixed¶
- release-notes: parse html
- magic-link: case default
- magic-link: case current domain
- user-delete: handle request err
- recordings-download: case large amount
- accounts-status: selector
- reports: download custom pdf -> ui white screen
- callcenter-feature: open modal
- delete-recording: modal ui
- sidebar: scrolling
[1.104.0] - 2024-12-16¶
Added¶
- theme: new
- theme: new
- report: video meetings
- release-notes: support html
- campaign-crm-leads: example
- audit-logs: pagination
- ai-assist: on queue form
- accounts-modal: hint selected
- usage-charges: add tags column
- users-charges: add tags column
- status: users presence -> add tags column
- ratedeck-csv: validate name
Changed¶
- report-meetings: add id
- report-meetings: url
- sentry: ignore axios 401
- user-delete: show row selected
- user-delete: use reusable modal
- react: upgrade
- react: upgrade
- react: upgrade
- react: upgrade
- react: upgrade
- sentry: source map
- sentry: point to new account
- react: upgrade
- react: upgrade
- react: upgrade
- http-response-error: show field
- service-plan-modal: state
- trunks-limits-modal: state
- status-modal: state
- google-modal: state
- meetings: loader on get
- did-management-modal: use get endpoint
- sms-modal: use get endpoint
- ai-modal: loader on get
- callcenter-modal: state
- autoprovision-modal: state
- modals-params: call-recording, transcription and collaboration
- call-recording-modal: state
- accounts-modals-state: sms, meetings, transcription and collaboration
- table: virtual list
- feature-modal: meetings
- feature-modal: transcription
- refactor-modal: sms
- feature-modal: callcenter
- feature-modal: callcenter
- feature-modal: autoprovision
- feature-modal: collaboration
Fixed¶
- table-msg: case zero results and no date range
- active-calls: table height
- campaigns-leads-crm: info modal
- table-row-color: on scroll
- table: show selected
- queue-form: extensions
- topbar: callcenter
- users-list: case zero plans
- feature-meetings: enabled state
- modal-transcription: deepgram model
- users: table -> flotant box
- ratedeck-csv: popup err msg
- local: request
[1.103.0] - 2024-11-22¶
Added¶
- custom-theme: branding.json
- ai-assist: enable/disable
- collaboration: remove teams calling
- ai-assist: show request err
- ai-assist: enable/disable
- queue-form: agent skills
- phones: increase page size
- reports: audit logs
- queue-form: skills routing
- agent-skills: crud
- plans: add to user list
- accounts: transcription -> deepgram -> select model
- user-form-tag: improve style
- plans: user form
- plans: improve forms
- plans: account form
- plans-feature-bundles: show for test only
- storage: cdrs -> local storage -> /u2/local_storage label
- sms-carriers: add support for ozsms
- status: users presence
Fixed¶
- queue-form: agent skills retrieval
- accounts: form -> realm -> set value to lower case
- cc: agent status activity report -> custom states login time
- tag-color: generation
- select: width
- plans: main redirect
- queue-form: pre connect actions -> at/every type restriction
[1.102.0] - 2024-11-01¶
Added¶
- screen-recording: on queue calls report
- queue-form: add call screen recording option
- campaigns: form -> import leads from a csv or a crm api
- salesforce: multiple packages
- salesforce-integration: use vars from env
- salesforce-integration: show package, password and docs
- queue-form: upload moh
- post-call-api-request: label width
- cx-channels: oauth process for outlook & microsoft 365 emails
- softphones: ucp -> disable logout
- softphones: ucp -> disable fmfm
- post-call-api-request: cdr fields
- post-call-api-request: call id
- queue-form: post call api request support multiple
- sms-carrier: form -> custom -> how to receive inbound sms
- codecs: one btn
- agent-states: default (on login)
- branding: new
- smartpbx: embedded smartpbx
- reports: cc -> add subdisposition info
- dispositions: form -> multi level type
- callcenter: reports -> agent status activity
- sms-carriers: custom api -> webhook -> add get method
- sms-carriers: custom api sms carrier
Fixed¶
- active-calls: actions -> spy/barge normal call
- select: option undo select
- salesforce-docs: link
- campaigns: form -> time groups data
- status: active calls -> update data when working acc changes
- active-calls: actions -> spy/barge cc call
- cx-channels: initial redirect
- queue-form: post call api request whitescreen when it is empty
- users: form -> parse bad request error response
- reports: dnd user activity -> download csv (timezone)
- reports: usage charges -> download custom pdf
- release-notes: endpoint
[1.101.0] - 2024-08-15¶
Added¶
- config: softphones -> ucp -> early media
[1.100.0] - 2024-08-09¶
Added¶
- callcenter: reports -> campaigns activity -> csv -> new agent fields
- reports: billing -> download pdf -> custom columns
- agents-activity: columns improvements
- release-notes: full modal
- table-header: support array
- status: active calls report
Fixed¶
- status: active calls -> fields parsing
- input: default width
- callcenter: agents activity -> remove link from dnd time
- header: buttons
- queue-calls: width abandoned column
[1.99.0] - 2024-07-20¶
Added¶
- agents-activity: fill zero
- agents-activity: average -> avg
- agents-activity: not available time
- agents-event-report: added
- agents-activity: on call time
- agents-activity: wrap up time
- agents-activity: hold time
- agents-activity: idle time
- agents-activity: add registered time
- agents-activity: link dnd count with the report
- agents-activity: add dnd info
- agents-activity: answered calls separate pct from count
- agent-activity: callee and type column
- campaigns-activity-csv: add disposition
- agent-disposition: campaigns activity
- feature-bundles: section
- campaigns: actions -> reset -> improvements
- queues: form -> next actions -> send abandoned call alert
- campaigns: form -> mask caller id number
- report-queue-calls: agent diposition
Fixed¶
- agents-event-report: go back
- agent-activity: remove int conv on caller id number
- agents-activity: go back
- usage-charges-extension: remove convert to int
- plans: hide on topbar
- queue-calls-outbound: csv file name
[1.98.0] - 2024-06-13¶
Added¶
- dispositions: follow up types
- accounts: form -> calls -> disable rating
- api-call: customer number
- campaigns: actions -> reset & start
- release-notes: youtube
- queue: follow up notes
- post-call-api-request: add diposition id
- queue-form: post-call-api-request
- queue-form: post-call-api-request
- disposition: type and crm code
- queue-form: disable call rating
- queue-form: disable call rating
- crm: hubspot integration section
- release-notes: modal
Changed¶
- provisioning-actions: migration from v1 to v2
- release-notes: remove use effect
Fixed¶
- users: form -> restrict admin users creation
- release-notes: modal -> close -> unmount component
- accounts: features -> status
- users: role column value
- provisioning: phones -> refresh button
- queues: form -> unable to create without api call
- disposition: type
- locations: form -> avoid exception when trunk does not exist
[1.97.0] - 2024-05-15¶
Added¶
- report-call-recordings: user columns
- report-with-params: add load more btn
- account-creation: handle error
- report-pagination: use next start doc id
- campaigns-activity: pagination
- new-theme: added
- external-storage: agents activity
- queue: auto answer
- button-multiple: close menu after execute action
- report-cdrs: download ring central format
- call-recording: caller/callee id number avoid convert to number
- trunk: show to all accounts
- call-recording: enable/disable recording control feature for cc calls
- zoho: integration -> set customer domain in redirect uri
- location-default: delete enabled
- storage: recordings -> enable date directory by default
- meetings-modal: remove
- recording-modal: leg
- call-recording-retention-duration: validation
- storage: cdrs/recordings -> sftp -> display api custom error
- login: credentials login -> evaluate security policy configuration
- user-form: restriction role field
- softphones: ucp customization -> apps download links visibility
- users: table -> sorting by ext by default
- smart-pbx-permission: only to role total admin
- status-calls: show not unknown leg first
- user-form-first-name: length validation
- cdrs-legs: add ringing seconds
- rates-increment: show that is seconds
- queues: form -> creation -> set defaults
- accounts: features -> google integrations -> show only if it is supported
- report-usage-charges: download csv add tags param
- accounts: call recording -> enable/disable feature
- reports: charges -> download as csv/pdf
- reports: cdrs -> copy call id
- tenant-accounts: features -> call recording status
- reports: queue calls -> add callee id number
- new-theme: added
- users: form -> callcenter -> supervisor -> queues restriction
- provisioning: phones -> add registration filter and tags column
- call-recording: config -> edit -> retention duration and size limit
- logo: added
- cdrs: add disposition
- cx-channels: handle new msgs
- cx-channels: handle new msgs
- storage: cdrs & recordings -> access warning message
- storage: cdrs & recordings -> enable/disable date directory
- report-agent-activity: download csv
- topbar: smartpbx -> authentication query param
- dispositions: crud
- recordings: play & transcript modal -> ui improvements
- accounts: features -> recordings -> transcription
Changed¶
- report: reusable pagination
- typescript: warnings
Fixed¶
- queue-form-next-action-send-email: user not exist validation
- reports: remove convert to int
- report-outbound-calls: remove int convertion
- report-status: validate exist download
- queue-next-action-on-digit: target name field
- tags-form: color field
- favicon: change background
- users-table: column extension
- account-reconcile: popup
- campaign-form: caller id
- auth: store user account name
- user-form: read backend err response
- report-download: add missing timezone
- report-download: add missing timezone
- reports: play recording modal -> load audio resource
- user-form: read creation response
- tables: sorting
- get-users: after bulk creation
- account-form: save
- report: send tag instead tags
- report-dnd-user-activity: apply timezone
- customer: rename
- customer: rename
- rename: customer
- reports: cdrs -> columns alignment & remove direction
- user-form: callcenter validation
- billing: service plans -> delete -> feedback
- favicon: name
- call-recordings: bulk download -> feedback
- reports: play recordings
- pins: per user -> status
- queue-form: toggle play instructions
- disposition: delete
- callcenter: get status of transcription feature
[1.96.0] - 2023-12-01¶
Added¶
- queue-pre-conn-action: callback
- queue-pre-conn-action: callback
- phone-lock: added
- provisioning: grandstream grp
- provisioning: grandstream
- campaign-form: changes
- reports: datetime filters -> end + default time range
- validation-extension: length min max
- call-recording: custom filename -> external_number var
- users: form -> extension -> max length validation
- call-recording: custom filename -> formatted and unix datetime vars
- call-recording: custom filename -> remove call_id restriction
- jitsi: improvement
- storage: cdrs -> queue -> allow to set direction
- exportable: reports
Changed¶
- deploy-staging: script added
- config.json: import also in dev env
- config.json: added to gitignore
Fixed¶
- phone-lock: pin type
- queue-form: next action callflow
- provisioning: phones -> form -> keys -> user and device validation
- provisioning: phones -> form -> keys -> user/device validation
- users: form -> extension -> allow only numeric values
- provisioning: phones -> creation -> missing device id in line keys
- queue-form: add extensions validation
[1.95.0] - 2023-10-30¶
Added¶
- jitsi: added
- new-theme: added
- registrations: change of columns
- registrations: change of columns
- lead-pagination: added
- leads-status: only one opened
- queues-status: remove polling
- cx-channels: queue instead queues
- queue-disposition-mandatory: field
- mitel: 6865 and 6869
- call-recording: custom filename
- queues-status: agent columns improved
- queues-status: add state and dnd
- queues-status: add state and dnd
- build: staging
- registrations: download
- queue-status-refresh: count time after response
- validation-form: use field validators
- cx-channels: set customer
- deploy: script
- validation-form: use field validators
- rename: customer
- mitel: phones
- users: form -> auto set admin type after assigning admin role
- users: form -> auto-generation of password
- provisioning: add support for mitel 6731
- cx-channels: expose applications
Changed¶
- queue-form: devices get
- numbers: using table reusable
Fixed¶
- provisioning: phones form -> mitel -> remove keys restrictions
- campaign-form: adapt to new lead response
- outbound-calls: recording modal
- account-form: timezone
- storage-cdrs: fields
- users-table: column cellphones
- queues-status: execution after unmount
- storage: cdrs/recordings form -> aws region selector empty option
- capitalize-util: add validation
- user-form: min length 3 instead 4
- queue-get: moh empty case
[1.94.0] - 2023-08-29¶
Added¶
- ratedeck: add column rate increment
- new-theme: added
- campaign-delete: not able to delete a running campaign
- report-campaigns-activity-csv: column reorder to get consistency with the ui
- mobile-transport: add tls
- campaigns: form -> progressive -> add support for target sla
- campaigns: form -> leads -> add 2nd and 3rd cool off
- login: sign in using google -> migration to new library
- login: sign in using microsoft/azure
Changed¶
- user-form: using reusables components
Fixed¶
- user-form: change password
- campaign-target-sla: empty case
- report-in-out-bound-calls: recordings permission
- report-user-charges: request
- inbound-calls: recording modal
- app: favicon
[1.93.0] - 2023-07-28¶
Added¶
- caller-activity: add queue name
- theme: added
- theme: added
- icons: use only material icons
- report-campaigns-activity: aggregation info
- report-campaigns-activity: add lead ticket id
- report-campaigns-activity: download csv
- provision-phone: htek
- report-campaign-activity: agent rename
- report-campaign-activity: add hangup cause
- report-campaigns-activity: add hangup cause
- report-campaigns-activity: add abandoned
- report-campaigns-activity: add abandoned
- report-campaign-activity: sla only progressive
- report-campaign-activity: add type
- leads-status: add campaign type
- form-validation: system
- campaign-list: queue link
- campaign-caller-id: multiple
- storage: campaign activity
- storage: outbound calls
- cdrs-storage: new field single file csv
- campaign: add field sla
- campaign-activity: wait duration, sla and over sla
- desktop-devices: add ucp version
- campaign-list: added column type
- report-inbound-outbound: add recording
- report-recordings: remove filter 2 seconds
- csat-color: as express the score
- desktop: versions
- campaign-form: new fields type, greeting, cool off 2nd and cool off 3nd
- invitation-status: sort
- cancel-request: when user leave report
- reports: able to cancel requests
- users: added role filter
- users: show role
- provisioning: add polycom ip450
- users: show role
- react-select: values width auto
- account-creation: codecs video
- agent-state: switch enabled
- agent-states: crud
- crm: zoho integration (beta)
Changed¶
- agent-login-logout: not use 304 anymore
- setup-proxy: remove
- vite: instead cra
- remove-unused-lib: react-intl-redux
- users-numbers: remove request to numbers endpoint
- report: on change timezone
- account-form: single state
Fixed¶
- users: table -> ui issues -> header width & roles column
- activate-custom-states: button typo
- theme: logo
- table: reusable
- accounts: tenant accounts -> columns sorting state
- reports: abort request
- config-js: load
- campaign-caller-id-account: without number
- campaign-caller-id: account use main numbers
- campaign-list: play/stop breaks type field
- campaign-color: start & stop
- campaign-color: start & stop
- report-campaigns: call events
- campaign-cool-off: do not send empty cool off fields
- queue-form: show err
- users-row-height: when user have a lot of numbers
- report-inbound-calls: request
- tags: sort
- queue-form: not be able to add extension
- agent-state: not show enabled if custom states is not activated
- agent-state: not be able disable a mandatory state
- filter-users: selection
- filter-users: selection
[1.92.0] - 2023-05-15¶
Added¶
- rename-callcenter: callcenter to contact center
- omni: rename cx to cx channels
- omni: rename omnichannel to cx
- bulk-solutions: as sms provider
- storage: recordings -> configuration -> set directory
- storage: cdrs -> queue outbound cdrs
- new-role: users, devices and reports without recordings
- queue-form: add scroll horizontal
- queue-form: add scroll horizontal
- queues-form: configuration -> outbound calls
- queues-form: csat configuration -> direction
- callcenter: reports -> queue outbound calls
Fixed¶
- queues-status: order
- favicon: image
- provisioning: phones form -> state update after edition
- provisioning: phones form -> validation of phone keys
- cc-set-state: on 304 case
- show-omni: on sidebar
- calls-history: download
- users: filters group -> layout on small screens
- campaign-add: route
- report-queue-calls: parse csat
[1.91.0] - 2023-04-13¶
Added¶
- new-customer: added
- reports: cdrs -> ringing (seconds) column
- provisioning: phones -> summary
- provisioning: phones -> download csv
Fixed¶
- reports: usage charges -> download csv
- queues: queues form -> csat
[1.90.0] - 2023-04-03¶
Added¶
- queues-form: csat configuration
- accounts-selector: ux improvements
- sidebar: expand/collapse navigation
- provisioning: phones -> add device registration info
- callcenter-sidebar: reorder
- header: header (reusable) -> back button
- dnd-report-info: adapt desc to new logic
- header: header (reusable) -> help window
Fixed¶
- registrations: empty validation
- sidebar-report-omni: visibility using permission
[1.89.0] - 2023-03-16¶
Added¶
- status: registrations -> add provisioning phone related columns
- queue-calls-agent-history: improve call id view
- queue-calls-csat: add column
- users: reports -> historical
Fixed¶
- reports: report (reusable) -> loading/error state
- agent-history: increase width
- visibility-agents-status-activity: if callcenter save sessions
[1.88.0] - 2023-03-13¶
Added¶
- queue-calls-sip-logs: added
- campaigns: campaigns activity -> call recording column
- queue-calls: unification button size
- users: bulk delete progress
- users: delete bulk
- users-bulk: fields info empty
- users-bulk: fields info empty
- users: download csv
- rows-w-subrows: reusable -> organism -> filtered subrows counter
- campaign-save: handle error
- queue-calls-agent-history: add call id
- queue-calls-call-id: improve view
- users: invitation status -> new statuses and history
- queue-calls: improve call view
- queues-calls: show agent's type of call
- table: default sorting
- crm: zoho integration -> set qvoice redirection site as redirect uri
Changed¶
- users: buttons
- tags: using reusables
Fixed¶
- report: reset error
- queue-calls: agent name
- call-id-hover: text
- number-search: on numbers section
- queue-calls-call-recording: filename
- typo: msg confirmation delete
- typo: user field
- queue-calls: statement to show recording
- queue-calls-agents-history: last attempt timezone
- queues-status: margin case two calls
- queues-status: active call style
- accounts: invalid working account
- users: bulk creation -> errors representation
[1.87.0] - 2023-02-09¶
Added¶
- queue-edit: handle msg error
- queue-edit: handle msg error
- queue-calls-tags: add tooltip
- queues-status: add tags
- queues-calls: call recordings
- cc-queues-status: filter agents misconfigured
- queue-status: misconfigured agents
- queue-status: add filters
- queue-status: add leads sorting
- cc-cdr: check transferred on digit
- cc-queue: new action on digit
- omni: reports
- crm: zoho integration
Fixed¶
- request-err-handler: util
- queues-calls: evaluate answered time to show call recording
- cc-queue-status: counts
- filters: width
- cc-calls: center history column
- cc-lead: set status
- queue-action: on change
- devices-get: migration v1 to v2
- sms-provider-field-token: type password
- login: with-google
[1.86.0] - 2023-01-19¶
Added¶
- cc-lead-status: fast edition
- cc-lead-status: voicemail
- omni: switch only when callcenter is enabled
- omni: set platform by message tunnel
- omni: only display when login is finished
- omni: reload by working account
- omnichannel: inboxes -> navigate back to inboxes list
- numbers: delete -> restriction when sms provider is omnichannel
- omnichannel: inboxes -> dids assignment
- omnichannel: able set enabled
Changed¶
- table: improve width columns
Fixed¶
- monster-login: revert
- monster-login: support all subdomains
- omnichannel: inboxes -> copy/paste
- faxbox: edition
- queue: parse
- omni: session
- omnichannel: duplication of msgs
[1.85.0] - 2022-12-26¶
Added¶
- omnichannel: inboxes -> queues binding
- omnichannel: inboxes
Fixed¶
- recordings: validations
- recordings: validations
[1.84.0] - 2022-12-07¶
Added¶
- campaigns: cool off column
- leads-status: set campaign cool off as default
- leads-status: add queue name
- accounts-selector: improvements on account selection
- leads: loader
- campaign: show err msg
- campaign: show err msg
- onboard-sms: apk beta
- external-callers-activity: for default sort by caller
- dids-activity: for default sort by number
- users-activity: for default sort by name
- users-charges: for default sort by name
- usage-charges: for default sort by start time
- inbound-calls: for default sort by start time
- campaign-caller-id: form
- campaigns: add queue name
- onboard: android apk beta
- sotrage-aws: field prefix
- aws-bucket: queue-directory
- did-management: for resellers account
- did-management: for resellers account
- campaigns-activity: add status
- campaigns-list: added leads
- report-apply: ever visible
- campaigns-activity: report
- callcenter: sidebar -> improvements
- callcenter: sidebar -> options hierarchy -> queues & campaigns
- callcenter: sidebar -> options order
- storage: cdrs -> single json file -> set params (type, direction)
- storage: cdrs -> single json/csv file -> set upload time interval
Changed¶
- report-reusable: error
- report-reusable: error
- report-reusable: loading
- report-reusable: loading
- storage: fields
- storage: fields
- storage-aws-fields: using reusable components
- users: interface
- migration-get-account: v1 to v2
- report: vars missing
- report: vars missing
- report-get-state: start, end and timezone
- report-start-end-timezone: data
- report-timezones: data
- report-timezone: on change func
- report-start-end: on change funcs
- reusable-row-with-subrows: build main row
- leads-status: func name
- leads-status: imports
Fixed¶
- sidebar: restrictions based on role
- sidebar: restrictions based on role
- accounts-selector: working account
- call-recordings: last update
- cool-off: on leads status
- campaign-cool-off: field required
- campaign: caller id number
- account-form: set automatically timezone
- leads-status: retries instead attempts
- campaign: caller id
- campaign: caller id enabled
- lead-status: lead attempts remove +1
- onboard: modal
- cdrs-legs: date
- users-onboard-sms-button: width
- accounts-features: did management in case not permissions
- users-table: aligment
- users: permissions
- storage-aws-fields: rename
- storage-form: width
- campaign-activity: call events order
- phones-selection: when working account changes
- campaigns-activity: talk time
- campaign-get: change by working account
- campaigns-get: change by working account
- leads-status: remove sort
- campaign: set status
- campaign-form: actions always visible
- campaign: hide lead dial timeout
- leads-status: refresh loading
- queue-status: refresh loading
- leads-status: refresh
- campaign-status: after start/stop
[1.83.0] - 2022-10-17¶
Added¶
- callcenter: reports -> leads status -> leads detail per campaign
- campaign-leads: remove
- campaign-lead-dial-timeout: added
- campaign-cooloff: added
- reusable-field-input: support placeholder
- callcenter: reports -> campaigns leads status
- campaing: crud
- queue-wrap-up-time: add unit
- storage: queue cdrs -> single csv file
- report-cdr: add fax column
- user-delete: added error info
- callcenter: persist start, end date and timezone during navigation
- reports: persist start, end date and timezone during navigation
- login: on press enter key automatically sign in
- call-barge-spy: permissions
- call-barge-spy: support
- queues: form -> agents -> select/remove all
- queues: form -> crm url -> ux improvements
- storage: add capability to remove configuration
- storage: cdrs -> upload through an external api
- typescript-constants: #2
- typescript-constants: #1
- sms: sms carriers -> message bird
- users-activity: only internal calls filter
- mfa: login flow -> multi factor authentication step
- login: new ui
- security-policies: settings -> multi factor authentication
Changed¶
- campaign: leads
- reports: remove constants
- credit-config-modal: minor changes
- get-accounts: migrate to v2
- reports: cache -> start, end date and timezone
- account-form: using reusables components
- users-render: using react-window
- agents-status-activity: unify
- active-dnds: using reusable components
- file: directory
- registrations: sort and filter
- file: directory
- mobile-devices: using reusable report component
- report-data-count: calc inside reusable
- table-component: add typescript
- delete-unused-files: styles
- agent-activity: using reusable component
- file: directory
- agents-activity: using reusable components
- calls-history: using reusable component
- queues-activity: filename
- queue-activity: file directory
- reusable-select-loader: added
- cdr-modal-sip-custom-headers: using reusable modal
- setup-proxy: add call legs endpoint rule
- did-activity: using reusable component
- user-charges: using reusable report
- caller-activity: using reusable report
- active-calls: using reusable report
- file: directory
- queues-activity: using report reusable
- file: directory
- axios-interceptor: extract into function
- file: directory
- file: directory
- file: directory
- file: directory
- user-activity: move directory
- user-activity: sorting and filtering
Fixed¶
- account: thresholds
- campaign: schedule order fields
- reusable-field-validator: no check when is empty
- campaign: texts
- campaign: not initialize with zero
- campaign: mandatory fields
- outbound-calls: set end date
- user-charges: var data param
- config-softphones: submit btn
- call-spy-barge: support multiple rows
- report-did-activity: param data
- cdrs-sort: by connected seconds
- active-calls: hang up
- report-total-charges-per-account: param data
- report-users-charges: param data
- report-usage-charges: pagination
- report-inbound-calls: set start and end
- report-did-activity: populate data
- err-msg: condition
- interceptor-error: parse status
- call-recording-config: validation
- credit-config-modal: remove
- queue-form: scrolling issue
- ci: orbs
- faxes-activity: start and end
- did-activity: start, end and timezone
- caller-activity: start, end and timezone
- reports: invalidate cache when working account changes
- users-table: row
- numbers: form -> error messages
- queues: form -> enable crm and add var to url
- queue-form: buttons
- queue-crm: enable
- faxes-activity: data var
- working-account: persist
- active-calls: hangup
- inbound-calls: fax modal
- inbound-calls: missing import
- inbound-calls: data var
- get-recording: bulk
- queue-calls: data var
- report-callers-activity: data param
- tags-extension-loading: on usage charges
- tags-extensions-loading: on usage charges
- timezone-loading: on users activity
- queues-activity: go back button
- user-form: actions buttons
- user-encode: decode before display
- login: when user is not admin
[1.82.0] - 2022-07-28¶
Added¶
- callcenter-report-role: added
- queue-crm: added
- queue-crm: added
Changed¶
- report-reusable: ui
Fixed¶
- users-form: alignment
- users: on hover users info
- accounts-dropdown: scrollable container
[1.81.0] - 2022-07-18¶
Added¶
- reset-registration: user
- user-charges: add tags
- reports-tags: on usage charges
- phone-template: custom
- users-form: password edition -> send password in plain text
- users-form: edition -> remove email
- user-form: callcenter -> supervisor
- storage: storage server configuration -> recordings
Changed¶
- report-reusable: add sort and filter capability
- registrations: use reusable report
- cdrs: use reusable report
- users-activity: use reusable report
- usage-charges: use reusable report
- totals-per-account: use reusable report
- inbound-calls: reusable report
- dids-activity: use reusable report
- callers-activity: use reusable report
- users-charges: using reusable report
- typescript-webapi: reports
- typescript-webapi: accounts and auth
- typescript-webapi: call recordings, autoprovision and active dnds
- typescript-webapi: callflows, callerID and callcenter
- typescript-webapi: faxboxes, devices and calls
- typescript-webapi: global addressbook, ldap and gateways
- typescript-webapi: logo, media, mobiledevices and locations
- typescript-webapi: onboard, numbers and numbers provider
Fixed¶
- registration-owner-name: add decode
- call-recording: filename
- cdrs: datetime conversion based on timezone
- table: subrows
- table: representation
- reusable-report: added validations
- report-usage-charges: fix placeholder
- user-activity: go back
- location-name: trim whitespaces
[1.80.0] - 2022-06-22¶
Added¶
- cdrs-storage: new option -> put cdrs into a list
- cdrs-storage: reports configuration -> cdrs storage
[1.79.0] - 2022-06-20¶
Added¶
- queue-calls: add username in agent history
- queue-activity: download csv
- queue-calls: download csv
- topbar: accounts dropdown -> new ui
Changed¶
- typescript-webapi: phone, permissions and payments
- typescript-webapi: ratedecks, queues and pins
- typescript-webapi: services, security policies, registrations and recordings server
- typescript-webapi: sms, signup, smartpbx and system
- typescript-webapi: ucp, templates and tags
Fixed¶
- recordings-server: exception when credentials are empty
- call-recordings-download: filtered case
- download-recordings: wait all before create zip file
- queue-status: login logout switch
[1.78.0] - 2022-06-07¶
Added¶
- reports: load more button
- queue-calls-modal: fixed height
- report-aggreagation: added
- queue-activity: improvements
- reports: router -> set cdrs as base route
- queue-calls: add filter agent hangup
- phones: add new model -> yealink t33
Changed¶
- typescript-webapi: env, webchat and users
- queue-calls: sort and filters
Fixed¶
- queues-status: agents logged in
- table-reusable-height: when conflict with other table
- fast-edition: one option case
- linter: issue
- fast-edition: one option case
- queue-form: ui -> visibility option
- reports: router redirection
- report-reusable: condition to show reports
- report: timezone
- reports-sidebar: remove queue calls
- queue-calls: abandoned filter
- report-filtering: on filter remove waypoint
[1.77.0] - 2022-05-25¶
Added¶
- queue-calls: add call id
- reports: queue calls -> add pagination
- reusable-report: add error message
- reports-permissions: added
- queue-calls: add column agent hangup
- queue-calls: agent attempts
- queue-calls: add agent event
- report-queue-calls: add caller_id_name
- inbound-calls-fax: new column
- default-report: cdr
- reports-configurable: default range
- time-range: 5 minutes default
- signup: otp sms subsection -> unique cellphone
Changed¶
- sort: using compare util
- queues-activity: state structs
- queue-activity: state structs
- filter: using includes util
- sort-func: one liner
- styles: use typescript
- configjsapi: use typescript lintering with @typescript-eslint
- organisms: use typescript
- typescript-reusables: moleculas
- typescript-reusables: atoms
- utils: use typescript
- inbound-calls: container
- date-helpers: typescript
- datehelpers: arrow functions
- queue-calls: move called time as first column
- arrow-functions: utils
- typescript: added
Fixed¶
- users: selection to send sms
- queue-calls: get
- queues-activity: add missing util
- protect-routes: reports
- agent-history: type display
- queue: parsing next action
- checkbox: styled
- queue-calls: abandoned instead answered
- linter-config: live reload
- live-reload: remove env
- reports: show msg no record when is not loading
- report: add empty message
- queue-field: min validation
- pins-patterns: list huge case
- cdrs: hangup cause
- cdrs: change-timezone
- cdrs: on working account change
- reports-range: selection
[1.76.0] - 2022-04-27¶
Added¶
- add-type: agent history
- callcenter: barge
- spy: callcenter call
- recordings-server: invalid configuration error message
- signup: new section for signup settings
Changed¶
- queues-status: call status -> agent call status
- queues-status: move login/logout to first column
- table: column width
- outbound-calls: container and component
- queues-status: parameterize all
- queues-status: #1
- queues-status: using reusable table
- queues-status: using loading inside reusable
- queues: remove polling
- delete-modal: view
- call-recordings: container and component
Fixed¶
- wait-time: when call is not answered
- payment-gateway: handling currency when provider is custom
- service-plans-list: when is empty
- reusable-fast-edition: loading
- change-ratedeck: on service plan
- form: padding
- clear-field: when modal close
- map-ids: unique
- tests: tests
- tests: tests
- sort: report
- report: summary
- queue-activity: paginate
- users-bulk: selection
- users-bulk: selection
- report-inbound-calls: not send start instead send emtpy
- call-recording: delete
[1.75.0] - 2022-03-24¶
Added¶
- new-theme: added
- improve-queues: report
- queue-wrap-up-time: added
- queue-strategy: talk time
- report-outbound-calls: add ext and user
- queue-calls: add disposition
- queue-calls: report
- queue-strategy: most idle
- cdrs: copy cdr filename and filter by filename
Changed¶
- caller-activity: container logic
Fixed¶
- queue-calls: end date based on timezone
- faxes-activity: end date based on timezone
- dnd-activity: end date based on timezone
- totals-per-account: end date based timezone
- callers-activity: end
- callcenter: reports -> calls history -> timezone is not updated
- sidebar: payment gateway -> warning icon
- login: invalid credentials popup
- queue-calls: timezone
- tests: tests
[1.74.0] - 2022-03-08¶
Added¶
- new-theme: added
- provisioning: park
- call-recordings: filter and copy recording filename
- recordings-server: integration with a sftp server
[1.73.0] - 2022-03-03¶
Added¶
- account-realm: set
- dnd-user-activity: csv
- user-listing: sort and add presence id
- assign-number: to user
- sms-carriers: list new sms provider -> voip_innovations
- recordings-server: add bucket directory configuration
- progress-bar: download recording
- billing: accounts section -> billing status
Changed¶
- users: data
- user-dnd: reusable table
- setup-proxy: customer url based
Fixed¶
- edit-user: go back if working account change
- phones-form: phone keys data
- queues-form: extension validation
- faxes-report: timezone
- numbers: list sms providers after numbers creation
- sidebar: configuration sidebar -> restrictions
- report-back: set params date and timezone
- download-csv: remove unused param
Test¶
- snapshots: update snapshots
[1.72.0] - 2022-02-11¶
Added¶
- zip-recordings-name: callee-caller-date.mp3
- faxes-activity: download csv
- user-dnd-activity: add duration column
- faxbox: list free numbers
- fax-result: modal
- sms-carriers: change sms provider type mysms -> ixica
- numbers: change "free voice" numbers filter condition
- fax-activity: hover text on direction icon
- sidebar: new sidebar ui design
Changed¶
- dnd-activity: reusable report
- reusable-report: component
Fixed¶
- validate-extension: user
- set-provider: on reseller
- show-numbers: condition
- call-recording: select all
- time: format
- recording-config: edition
- invalid-date: cdr report
- hangup-call: try with both legs
- expand-legs: call status
- get-faxes: range date missed
- numbers-form: invalid redirection
- queues: invalid links
- trunks: add trunk page link
- phone-form: field value with xml_browser, xml_browser_custom and custom keys
- fast-edition: text representation
- faxes-activity: order default
[1.71.0] - 2022-01-22¶
Added¶
- faxes-activity: report
- call-recordings: csv download
- totals-per-account: csv download
- accounts: autoprovisioning -> enable gs wave
- faxboxes: interface
Changed¶
- form: reusable
Fixed¶
- csv-name: totals charges per account
- faxbox-owner: select
- faxbox-edit: do not use at method
- faxbox-owner: select
[1.70.0] - 2022-01-16¶
Added¶
- profile-form: add wed administration subsection
Changed¶
- new-favicon: added
- new-theme: added
Fixed¶
- user-form: header
[1.69.0] - 2022-01-12¶
Added¶
- payments-gateway: configuration -> add payhost option
[1.68.0] - 2022-01-11¶
Added¶
- ratedeck: download
- callers-activity: download csv
- did-activity: download csv
- users-activity: download csv
- cdr-csv-filename: account name
- user-creation: include in directory default true
- yealink-t46u: added
- payments-gateway: select currency
Fixed¶
- call-recordings: recording modal -> show recording or error
[1.67.0] - 2021-12-27¶
Added¶
- call-recording: ui to enable / disable gorec server
- call-recordings-server: configuration section
Fixed¶
- header: use props instead params
[1.66.0] - 2021-12-27¶
Added¶
- ldap-enabled: switch
- user-form: scroll
- sidebar-scrollbar: added
- queues-form: next actions -> callflow action type
Changed¶
- header-component: json param instead multiple parameters
- phone-key-type: constants
- new-theme: added
- provisioning-phone: logic and fixed devices selection on edition
Fixed¶
- phone-device: creation
- phone-device: create / select no both
- phone: creation
- mac-validation: error detecting duplication
[1.65.0] - 2021-12-13¶
Added¶
- dnd-activity-user: go back
- dnd-csv: download
- dnd-user-activity: report
- users-form: validation of password security requirements (can not be phone number, date)
Changed¶
- validate-range: less 31 days
Fixed¶
- refresh-list: on new ratedeck
- tags-edition: in users section
- dnd-user-activity: title
- calls-hangup: button
[1.64.0] - 2021-11-25¶
Added¶
- phones: bulk unlock and synchronization
[1.63.0] - 2021-11-24¶
Added¶
- numbers-provider: numbers provider configuration section
[1.62.0] - 2021-11-23¶
Added¶
- phone: xml browser custom
Fixed¶
- phone-devices: initialize
[1.61.0] - 2021-11-19¶
Added¶
- phones: sort table columns
- table-sort: profiles
- security-policies: implementation of password age
- security-policies: add password age configuration subsection
Changed¶
- save-account: loading
- loading: reusable button
Fixed¶
- filter-cdr: by destination
[1.60.0] - 2021-11-05¶
Added¶
- change-password: validate user password based on password history
- security-policies: password history subsection
Changed¶
- logo: replaced
- delete-account: v2
Fixed¶
- ratedeck-filter: using util includes
[1.59.0] - 2021-10-29¶
Added¶
- ratedecks-per-account: for resellers
- users-form: implementation of password length security policy
- security-policies: password management subsection -> password length configuration
Fixed¶
- ratedecks-fields-missing: csv file
- listing-rates: default value
- ratedeck: hide delete because is default
- service-plans: show for reseller accounts
- build: node
- security-policies: read api response with security policies configuration
- edit-queue: param queue id
[1.58.0] - 2021-10-22¶
Added¶
- login: representation of error messages
- security: configuration -> security policies section
Changed¶
- util: deep copy
Fixed¶
- bulk-tags: in users
[1.57.0] - 2021-10-21¶
Added¶
- tags-bulk: in users
[1.56.0] - 2021-10-20¶
Added¶
- provisioning: registrations -> show device name instead username
- provisioning: dont delete keys when template is changed
- provisioning: phone form -> add new button types (xml_browser and custom)
- status-active-dnds: table
- status-active-dnds: table
Changed¶
- get-account: v1 -> v2
[1.55.0] - 2021-10-18¶
Added¶
- user-tags: fast edition
Fixed¶
- favicon: favicon
- color-component: props
- users-filter: by tag
- refresh-service-plans: on account creation
- user-tags-fast-edition: reset after cancel
- user-tags-fast-edition: pencil after cancel
[1.54.0] - 2021-10-13¶
Added¶
- login: change login route
- webchat: configuration -> webchat integration section
- user-form: operator switch
Fixed¶
- user-form: operator switch visible in all cases and sections improvements
[1.53.0] - 2021-10-04¶
Added¶
- user-restrictions: by tags
- payment-gateway: show warning banner if payment gateway is not set
- dnd-activity-help: component
- dnd-activity: report
Changed¶
- user: get methods
- sidebar: size, color
- upgrade: react stuff
Fixed¶
- user-form: initialize role id
- tag-switch: hide for user admin
- users-columns: count
- dnd-activity: when switch working account
[1.52.0] - 2021-09-20¶
Added¶
- payment-gateway: payment gateway -> integration with custom
- yealink-w60p: provisioning
Changed¶
- cdr-page-size: not specify
- open-snackbar: with a short syntax
[1.51.0] - 2021-09-07¶
Added¶
- provisioning-state: unlock | paring | paired | expired
- users-list: add tags
- tags: crud tag and tag field in edit / create user
[1.50.0] - 2021-09-03¶
Added¶
- user-agent: header
- user-agent: header
- service-plans: add phone numbers rates configuration
- total-per-account-report: minutes, calls and amount
Fixed¶
- phone-field-name: profile
- payment-gateway: set pgw type
- account-list: refresh on new / delete account
[1.49.0] - 2021-08-10¶
Added¶
- service plans & payments: service plans -> rates configuration, payments -> integration section
[1.48.0] - 2021-08-03¶
Added¶
- download-recording-by-user: enable / disable
Changed¶
- addressbook-buttons: add icons
Fixed¶
- queues-activity: pagination
- select-agent: in agents report
- call-history: get & load more
- accounts: endpoint for accounts_own point to v2 instead of v1
Test¶
- fix-user-activity: after each test made logout and wait to end loading
[1.47.0] - 2021-07-27¶
Added¶
- filter-hangup-cause: inbound calls
- Credit: Allow to add/remove credit to grandchildren accounts
- secure-admin: hide edit
- account: add a cancel button to account creation form and change submit for a themed button.
- theme: new
- phone-provisioning: able empty key
- cdr-filter: by hangup cause
- addressbook-download: csv
- modal: support loading
- addressbook-modal: on delete
Changed¶
- table: sidebar and field content
- modal: close
- modal: move style to correct folder
Fixed¶
- credit: unify currency amounts display in config accounts page
- addressbook-csv: empty input after submit
[1.46.0] - 2021-06-25¶
Added¶
- addressbook-err-msg: with a description
- addressbook-loader: when load current addressbook
[1.45.0] - 2021-06-24¶
Added¶
- addressbook: able to delete
[1.44.0] - 2021-06-23¶
Added¶
- addressbook: show current contacts
- global-addressbook: section
- reload-ucp: in autoprovisioning ucp
Fixed¶
- reports: 3 word timezone broke link
- addressbook: not use value
- global-addressbook: fields label
[1.43.0] - 2021-06-15¶
Added¶
- whitelabel-logo: on topbar
[1.42.0] - 2021-06-11¶
Added¶
- cdr-recording-buttons: show when call duration is more that 2 sec
- call-duration-filter: show only when duration is more than two seconds
- preferences-ucp: enable / disable
Changed¶
- preferences: into autoprovisioning
Fixed¶
- call-recordings-list: change by working account
- call-recordings-list: change by working account
- realm: remove realm field on account creation (is created in gpbe)
- cypress: add data-test attr. to accounts own selector
[1.41.0] - 2021-06-02¶
Added¶
- sms-carriers: sms carriers form ui refactor for add mysms provider
Fixed¶
- sms-carries: list again when working account change
[1.40.0] - 2021-05-27¶
Added¶
- users: bulk users creation in users view
- cdr-page-size: 1000
- queues-status-summary: agents, logged, registered, idle or oncall info
- login-user-type-user: show msg that can't login
- agent-registration: in queues status
- ratedesk-show: condition
- queues-status: view
Changed¶
- header-account: do not use own anymore
- queues-status-icons: improve view call and registration status
Fixed¶
- usage-charge-cdr-duration: function by increment value
- call-recording-save: check if response exist
- call-recording: bulk download url
- callcenter: change admin agent login route
- ratedecks-list: must change when working account change
- callcenter-endpoints: on localhost
- gitignore: update gitignore with .idea/ path
- index.html: uncomment resource from srcipt: config.js
- router: add prefixes api/v1 for python backend and api/v2 for go
- ratedesk-visibility: only acc admin
Build¶
- linter: issue
[1.39.0] - 2021-05-05¶
Added¶
- mobile-device: listing
Changed¶
- cdr-endpoints: migration to go
- mobile-devices: consistency
[1.38.0] - 2021-04-19¶
Added¶
- recording-name: caller-callee-date.mp3
- calls: hangup call - send uuid of inbound leg
- location-form: add access list subsection
- queue-form: add call_only_if_registered_agents in queue config
- queue-form: ui -> separate subsections
- reports: filter by callee id number / destination / dialed number
- reports: pagination bugs fixes in multiple reports pages, add load more button for pagination, add filters and callee_id_number column, add reports range in cdrs and fix inverted values
- queue-form: implementation of new ui design, validation of queue extension, order agents when queue is loaded, add support multiple extensions, add support multiple dids, add pre connect actions, explain queue strategies
- accounts: edit integration status (google) per account
- new-theme: added
- ucp-codec: g722
- ldap: get ldap directory when working account change
- (summary-active-calls): total & answered
- (call-recordings): add timezone config to datetime filters
- accounts: features restriction when account is disabled & filter account by status active / deactivated
- ratedecks: view restriction (only super admins)
- accounts: call recording config modal ui improvements
Changed¶
- title: portal | Customer
- title-edit-account: style like the others
- ldap: ldap directory section refactor & ldap configuration new section
- advanced-account-edition: refactor of container and view component
Fixed¶
- assign-null-permission: when request to get permissions fail
- unique-button-download: instead two
- access-to-null: in location form
- reports: oldest - newest range in cdrs & usage charges
- queue-timeout-unit: seconds to minutes
- queue-users-input: user name is not displayed correctly
- add-remove-credit: improve msg on grandchild account
- add-remove-credit: not enabled if working account is child and reseller
- cdrs: order cdrs by datetime
- cdr-datetime: missing seconds
- timezone-call-recording: apply timezone into records
- queue-form: save button
- queue-form: queue form validation fixes
- queue-next-action: validation queue exist
- cdr-permission-delete: pass prop to component
- cdr-permission-delete: only for admin
- trunks: incorrect redirection to /gateways
- (accounts-form): set body scrolleable
- (user-activity): go back
- (phone-number): access to undefined on save
- bubble-clickeable: must not
- ldap: check if exists ldap server directory
- numbers: numbers section bugs
CI¶
- changelog: copy file into public place
Summary of Major Features¶
Security & Compliance¶
- Enhanced security features and compliance improvements
AI & Automation¶
- AI-powered features and automation capabilities
Communication Features¶
- Real-time communication enhancements
User Experience¶
- Improved user interface and experience
Infrastructure & Performance¶
- Performance optimizations and infrastructure improvements