Solution Reference

Introduction

ExpertFlow Dashboards & Wallboards application allows the contact center administrators, supervisors and agents to customize new dashboards as per the needs of the business. Each user can create its own dashboard or admins create a contact center Wallboard to be displayed on a large screen in a room. 

The application comes with predefined gadgets (display types ) to be added on a dashboard container. The user can then customize the gadget to see the attributes important to the business while hiding the rest of the other attributes.

There are six different templates. So user can create dashboard in six different ways. User can also add gadgets to the dashboard. The gadgets are 

  • Speedometer

  • Pie Chart

  • Line Chart

  • Bar Chart

  • Doughnut Chart 

  • Data Table

  • Scorecards
  • Greeting
  • Message Text Box

Different dashboards can be added in a Dashboard Group. The link can be generated for the dashboard and dashboard group. The dashboard can also be copied. User can also add Data Services URL in it. Settings are used to update the logo 

Business Features

Gadget-Oriented Dashboards 

ExpertFlow Dashboards & Wallboards application allows the contact center administrators, supervisors and agents to customize new dashboards as per the needs of the business. Each user can create its own dashboard or admins create a contact center Wallboard to be displayed on a large screen in a room. 

The application comes with predefined gadgets (display types and data stats) to be added on a dashboard container. The user can then customize the gadget to see the attributes important to the business while hiding the rest of the other attributes.

Predefined Layouts/ Dashboard Templates

The application also provides some predefined templates to be used while designing the dashboards. Each time the user has to create a dashboard, it chooses a template from the list of predefined templates to define the dashboard layout. Gadgets are then added to the dashboard following the selected template. 

Display Types

The display type defines how the data will be displayed in a gadget. A user-defined gadget carries a specific display type and data logic as defined by the user while adding the gadget into a dashboard. 

Following are the visuals and display types as available today: 

  • Pie Chart: Draws the data in the form of a pie chart. Used to display real-time data across particular answer categories. For a call center dashboard, this display type is particularly useful and recommended for viewing the current states of agents in a team using Agent Service. 
  • Doughnut Chart: Draws the data in the form of a doughnut. Used to display real-time data across particular answer categories. While showing call center stats, this display type is particularly useful and recommended for viewing the current states of agents in a team using Agent Service.
  • Scorecards: Each data attribute is represented by a square box called a "scorecard". While viewing call center stats, this display type is particularly useful for viewing real-time queue stats and reporting interval stats (for CCE only), using Queue data service. To view agents states summary, use the Agent Service with the display type Pie/ Doughnut chart.
  • Line Chart: Draws a line chart of the selected data statistics based on the specified resolution (daily, hourly). While viewing call center stats, this display type is only relevant while showing historical data of calls based on the Queue data service for calls answered, abandoned, and received.
  • Bar Chart: Draws a bar chart of the selected data statistics based on the specified resolution. While viewing call center stats, this display type is only relevant while showing historical data of calls based on the Queue data service for calls answered, abandoned, and received.
  • Text Message: To display a static text message on the dashboard.
  • Greeting Message: To display a static text message with a greeting such as "Good Morning Team!" on the Wallboard
  • Data Table: To display data in a tabular format. While viewing call center statistics, you may see the agent teams summary across all teams in a table, using Agent Data Service.

See the screenshot below.

Data Services 

Dashboards or Wallboards refer to a data service (or data source) to report on the statistical data in a gadget.  A Data Service is a REST+GraphQL-based microservice that returns real-time and historical data attributes to be displayed on Dashboards and Wallboards.

The application comes with two prebuilt data services that report on queues and agent statistics. 

  1. Queue Service: This reports all the statistics related to the contact center queues/ skill groups such as calls received, answered, abandoned, SLA based on queues or skill groups.
  2. Agent Service: This reports all the statistics related to the team agents such as Current state, Time in the state, ASA, AHT of agents.


  • The Queue Data Service only caters inbound call queues to show the inbound call statistics. Outbound campaign call stats cannot be shown on the Wallboard.
  • Any 3rd-party application can also write its own data services to return any real-time and historical data to be displayed on dashboards and wallboards. For instance, a data service connected to the reporting DB of a CRM to report on statistics from the CRM.

Consolidate Call Center Stats

See the consolidated statistics of the call center by selecting all (or not selecting any) skill groups while drawing a gadget on the dashboard. Choose the data aggregation type as one of the following:

  • Sum: Choosing this option sums up data of all selected attributes across all skill groups or teams.
  • Average: Choosing this option takes an average of all selected attributes across all skill groups or teams. This is also the default aggregation type for the Speedometer display type.
  • Count: This counts the occurrences for a particular value in the database and shows the total count. This is the default aggregation type for Pie and Doughnut charts and is currently only applicable to Pie and Doughnut display types.
  • While viewing consolidated statistics of the contact center, use the Queue Data Service to view calls summary (such as calls answered/received/abandoned, SLA) and Agent Data Service to view agents statistics (such as logged in, ready, not ready)   
  • Choose the Scorecard view to show the call stats summary and Pie/Doughnut to show the agent stats summary.

Dashboard Groups 

A dashboard group is a group of multiple dashboards that allows the user to set scrolling intervals to display each dashboard in the group one by one.

Generate a URL of the group to see all dashboards in the group in the browser window. 

No user authentication is required for now to access the final link of a dashboard group.

Auto scrolling and ordering among dashboards in a group

The auto-scrolling feature allows scrolling dashboards in a group in the sequence and interval as defined by the user in the Dashboard Group definition.

Link sharing of dashboards and dashboard groups

Get the URLs to the dashboards and dashboard groups to see your final dashboard(s) as Wallboards on a big screen in a browser tab.

By default, anyone with the link can access the dashboards. No user authentication is required for now to access the final dashboards.

Light and Dark Color Backgrounds

Choose a dark color theme to display your wallboard with a darker background or a light theme to display it on a lighter background.

APIs for 3rd-parties to report external system statistics

ExpertFlow exposes Data Services model (REST/ GraphQL APIs) to urge external systems to report on their data in the ExpertFlow Dashboard application. The 3rd-party data service should then get itself registered with the ExpertFlow application. The application then calls APIs of the external service to display the statistics from the 3rd-party system.

Note:

  • Multi-tenancy on Dashboards is not supported as of today; i.e. a user, for instance, who has the access to the application can view all dashboards irrespective of the tenant or team to which he belongs.

Deployment Models

Deployment Architecture

For HA, ExpertFlow deploys the solution on two VMs as Docker containers using Docker Compose. If one VM goes down, the traffic will be routed to the other VM.

Each solution component is deployed as a stateless microservice in its own Docker container. Expertflow opted for a service-per-container paradigm in which each backend microservice is executed in its separate container with a separate DB layer and interfacing layer.

Each Docker container is deployed with the “Restart Always” policy which causes it to restart automatically on the same VM. Notice that there might be a downtime of a few seconds while restarting the container. This implies that any requests received during the downtime will be rejected. 

Services will be available via a virtual IP. If one of the VMs goes down, the virtual IP will route the traffic to the other VM.

draw.io

Source page access restriction: Click the link below to check if the page is accessible.
/pages/viewpage.action?pageId=25172327

Out of Scope

  • Component-Level Failover: Failover of individual components is not supported. 
  • Network-level failover support: The internal network/link between the VMs (or the Docker network) is assumed to be working all the time. 

Assumptions

  • Both VMs must be on the same subnet. Otherwise, the failover won't work.
  • Setting up the DB cluster for MS SQL Server lies under the Customer responsibility. 
  • Manual intervention will be required when both VMs are down.



Failover scenarios

The following table lists the various failover scenarios and the behavior of the different solution components in each scenario:

Failover ScenariosBehavior
Synchronizer failover

Synchronizer component runs in an active-active state on both the VMs, using a heartbeat mechanism.

The active synchronizer updates its state in the DB after every 2 minutes.
When the active synchronizer becomes down or failover happens, it takes 2 minutes to shift to the other active synchronizer instance. Meanwhile, the front-end keeps showing the preserved stats. Once the newly-active synchronizer takes the control, all stats become zero for a second and then get refreshed.

Synchronizer restores after failover

If and when the previous, non-active synchronizer comes up again after the failover is successfully completed, the stats appearing on the gadgets become zero for a second once again. It continues to work afterward.

VM failover

The application runs on both VMs. When one VM goes down or failover happens, the user can still continue to perform all the CRUD operations on the application front-end. 

However, since the insertion of the active synchronizer state is updated in the DB after every 2 minutes, the synchronizer stops syncing the stats with Cisco DB for 2 minutes. Once the newly-active synchronizer instance takes full control, all stats become zero for a second and then get refreshed afterward.

Out of Scope

  • Component-Level Failover: Failover of individual components is not supported. 
  • Network-level failover support: The internal network/link between the VMs (or the Docker network) is assumed to be working all the time. 

Assumptions

  • Both VMs must be on the same subnet. Otherwise, the failover won't work.
  • Setting up the DB cluster for MS SQL Server lies under the Customer responsibility. 
  • Manual intervention will be required when both VMs are down.

Solution Security

Permissions-based User Access

Note:

  • User-based access to selective dashboards is currently not available. That is, dashboards cannot be created or assigned to selective teams.
  • Please note that each user upon a valid login has access to view all dashboards in the admin application. However, any user can only make changes to dashboards if given the respective permission to do that.

HTTP/S Support

The application supports HTTP and HTTPS. However, to run the application over HTTPS requires to get a domain-signed certificate from a valid CA.  

Cisco Contact Center Fail over

The application currently only supports handling the failover of Cisco Unified CCX within the application. 

When the CCX Master node fails over to the subscriber node, the subscriber node becomes the new Master. Due to this change, calls start landing on the new Master node, hence, all the real-time stats in CCX are refreshed and the count starts from zero as if the deployment is refreshed. This also affects the real-time stats shown on the EF application.  


All the real-time data displayed in the following display types may affect with the CCX failover:

  • Speedometer
  • PIE Chart
  • Doughnut Chart
  • Scorecards (all variations)
  • Data Table

However, all the historical stats in the Wallboard application remain unchanged. This means that the historical views, the Bar Chart and Line Chart, will not be affected by the CCX failover and will continue to show/update the historical data.

CCE Failover handling is not supported for now.


System Limitations


Summary

Description

Wallboard Failover is not tested in the version 13.5.2.This version is not tested in HA mode but this is assumed to work perfectly okay. 
SLA for multiple or all queues

If a single queue is selected on the gadget, the SLA is calculated by using one of the configured formulas. See Integration Specifications with CCX to see how SLA is calculated for an individual queue.


When multiple queues are selected,

  • It takes the average of all SLA values for the selected CSQs in the Speedometer gadget. For instance, (SLA of Q1 + SLA of Q2 + SLA of Q3)/3 (total number of queues).
  • In the Scorecard gadget, if the Aggregation type SUM is selected, it shows the SUM of all Queues SLA. When the Aggregation Type is set to Average, it calculates the average of all queues SLA.


Maximum Talk Time across multiple queuesWhen multiple queues are selected, the application calculates the Sum or Average of the max talk time values of all queues.
Maximum Wait Time across multiple queues When multiple queues are selected, the application calculates the Sum or Average of the max talk time values of all queues.
Select the Just Scan option using the TV

Just scan is a 1:1 pixel mapping picture size, which eliminates overscan. This is useful when using the TV as a PC monitor because PCs do not have overscan, so some of the PC images would be cut off. By using Just Scan, the picture fills the screen just as it should.


Tested on a 32-inches screenWallboard displays are tested on a 32-inches screen
Font size enhancements are implemented only for the Scorecard gadget

Font size enhancements are implemented only for the Scorecard gadget. See the following limitations in terms of the font size of the data values in the cards:

  • Font sizes are changed to variable units for data cards and will change according to the available screen width/height.
  • Font sizes are applied based on the maximum number of cards that can appear in a gadget. Therefore, in some cases, the font size may seem to be small but it is adjusted according to multiple cards perspective.
  • These font enhancements and resizeable cards are applied only to the Scorecard gadgets.
SSO enabled UCCX/UCCE  User tries to login SSO enabled agent with SSO disabled settings from the environment variables than for UCCX agent will not log in to the wallboard and for UCCE agent is able to login into the wallboard application
Timezone implementation is for the historical dataThe timezone variable in the Environment Variables applies only to the historical data. The gadgets used for historical data are Line and Bar charts.
Use Agent Data Service to view agent stats summary 

To view the real-time summary of call center agent states (Ready, Not Ready, Talking), it is suggested to use the Agent Data Service with Pie/Doughnut display type. This is because an agent can have multiple skills and hence, could be a part of multiple queues, viewing agent states summary queue-wise might not depict the true picture of the call center.

Use Data table (for individual agent stats) display type to view the individual agent stats team-wise. 

Date and Time on the dashboard/wallboard on the final link Date and Time of the Dashboards&Wallboards are based on the machine/browser settings where it is opened.
In CCE, an agent in the "Talking" state is also reflected in the "Ready" stateIn CCE, an agent in the "Talking" state is also reflected in the "Ready" state.
For CCE, a call that gets abandoned after getting routed to an agent by skill group is not available for reportingA call that gets abandoned by the customer after being routed to an agent is not available for reporting purposes and thus, is not shown in the EF dashboards. However, this may affect the SLA of the skill group.
For CCE, the application currently only displays stats based on skill groups and not on precision queues/ call typesFor CCE, the application currently only displays stats based on skill groups and not on precision queues or call types.  
Only the call center calls are available for reporting on EF dashboards & wallboards Only the inbound voice calls routed by the call center are reported on the dashboards. This means that any internal, ACD, outbound calls or other non-inbound customer calls are NOT available for reporting on wallboards for now. 

The range of speedometer display type provides two options:

  • -100 to +100 
  • 0 to 100 (use this option while displaying the SLA)

The range of speedometer display type provides two options:

  • -100 to +100 
  • 0 to 100 (use this option while displaying the SLA)
Any changes made to the dashboard configurations are not automatically reflected on the dashboard linkRefresh the browser tab to reflect any changes that are made to the dashboard configuration (such as changes to the name, background color, company logo, dashboard gadgets (added, removed, updated))
Any changes made to the dashboard group configurations are reflected only on the browser refreshAny changes made to the dashboard group configurations (such as Auto-scroll flag, auto-scroll time changes) are reflected only on the browser refresh
Gadgets are not resizeableGadgets added in the dashboard are of the fixed sizes.
Templates are not resizeable Templates are not resizeable. The user has to follow one of the fixed templates while creating a dashboard.
Free Dashboard Design grid not available to create custom dashboard templatesDashboards can only be created following one of the predefined dashboard templates. Users cannot create customized dashboard templates for now.
Large gadgets in small boxes might disturb the UIAvoid plotting the gadgets with large visualizations especially the Bar/Line charts and data tables on the dashboard templates having small boxes. 
Refresh the dashboard final link manually in case of a network glitch,In case of a network glitch, manual intervention is required to refresh the dashboard view  
Refresh the dashboard link to see updated or removed gadgets from the dashboard  If the user changes or removes and adds another gadget in a dashboard while the final dashboard link is already opened in a separate window, the user would need to refresh the page to see the updated gadgets. However, the real-time stats are updated automatically without requiring to refresh the page.
Refresh the final link to see the updated logo on the Dashboard fullscreenRefresh the final link of the dashboard to see the modified or updated logo on the Dashboard fullscreen.
Dashboard Template once selected cannot be updated later Once the dashboard template is selected, the dashboard is created with a default name. The user cannot later change the template. To change the template, delete the dashboard and create a new dashboard with the desired template. 
Default data refresh rate is 5 secondsThe application currently has the default data refresh rate of 5 seconds for each dashboard gadget
Font colors and sizes of gadget titles cannot be changed

You cannot change the font size and color of the gadget titles. The size of the title is adjusted automatically based on the screen resolution. 

Only the font color of the message text can be changed in the Text Message gadgets.

If the data is null, gadgets are added without drawing the display types

If the data is null, gadgets are added without drawing the display types (since there’s null data in the gadget)

Statistics get refreshed when the Master node is shifted from one node to the subscriber node  All the real-time stats are refreshed and the count starts from zero whenever the master node is shifted to a new Master. 
Data Service attribute tooltips are not translated The tooltips displayed for each data service attribute are not translated automatically. This is shown in the same language in which it was mentioned within the data service. 
The translation is only for the left to right languages 

The application supports language translation for all languages mentioned on the Languages Support page.

You can place the translation file in the /root/wallboard/docker/translation folder with the name translation_code.json. The frontend should be restarted after placing the translation file in the translation folder.

UCCX failover for version 12.5 is not testedUCCX failover for version 12.5 is not tested

Solution Prerequisites

Hardware Sizing

The following lists the machine specifications with no other EF components installed on the VM.

vCPU

vRAM

vDisk

Notes

2 cores (2.60GHz, 2 processors)

4 GB

1x100 GB mounted on /

In case MSSQL server is installed on a separate machine
4 cores (2.60 GHz, 4 processors8 GB1x100 GB mounted on /If MSSQL server is installed on the same machine as the wallboard stack


For HA, the same specifications would be doubled for two machines.

To get machine specifications for a larger agent volume and/or with other ExpertFlow products in a co-resident deployment, please get a quote from ExpertFlow or contact your ExpertFlow Account Manager.

Software Requirements

OS Compatibility

The following OS software is required on the server:

Item

Version

Notes

CentOS

7.x updated to the latest packages (use Yum update)The application can deploy in any folder

Database Requirements

Item

Notes

MS SQL Database Server 2016/2017 Express/Standard/EnterpriseFor clustered SQL Server installation, the customer will be responsible to provide the cluster. For stand-alone DB deployment, DB (2017 express) will be included within docker containers.
Microsoft SQL Server 2017Microsoft SQL Server 2017, Microsoft Corporation Express Edition (64-bit) on Linux (Ubuntu 16.04.5 LTS). 
Only valid in case of a non-HA deployment.

Docker Engine Requirements

ItemNotes

Docker CE

Docker CE 18.06.0+


Browser Compatibility

Item

Version

Notes

Firefox

85.0.2(64-bit)


Chrome

Not tested 

Some UI elements might not render properly. A full-blown testing cycle can be carried out on demand.
IENot tested

Not supported

Cisco Unified CCX Compatibility

 Tested with the CCX version 12.5 Assumed to work on higher versions as well. An on-demand testing cycle can also be executed on older versions of CCX.

Cisco Unified CCE Compatibility

This version is not tested with the Cisco CCE platform. An on-demand test cycle can be planned for testing with the desired CCE version.  


Wallboard Reporting/ Display Device

The provisioning of reporting devices is partner/customer's responsibility. For reporting device, one of the following hardware solutions must be provided to display wallboard views in the production environment.

  • An existing PC with a pre-installed OS, Monitor or LCD for wallboard display OR
  • A Smart LCD with an embedded browser to open the wallboard view OR
  • A raspberry pi device with OS installed with an LCD to display.
    For raspberry pi device's details, see https://www.raspberrypi.org/products/raspberry-pi-3-model-b/

Port Utilization

The following ports should remain open on the Firewall. The local security policy and any antivirus should also allow open communication on the following ports.

Type

Source Host

Source Port

Destination Host

Destination Port

HTTP

Enterprise web user

any

Dashboard & Wallboards

80

HTTPS

Dashboards & Wallboards server

any

Dashboard & Wallboards

443

UDP/TCPDashboards & Wallboards serveranyMS SQL Server (CCE DB)1433

System Access Requirements

Deployment Privileges

Administrative privileges (root) on the machine are required to follow the deployment steps. The Internet should be available on the machine where the application is being installed and connections on port 9242 should be allowed in the network firewall to carry out the installation steps.

Provision Database and a user on SQL Server Cluster

The following database and the privileged SQL user is required to connect to the application database. The application will create its tables and other schema objects itself after connection. 

  • Create a wallboard application database with the name EFWallboard.
  • Create an SQL Server User EFUser with a database role db_owner on the EFWallboard database.

Integration with UCCX

To read CSQs and agents list from CCX, we need admin user credentials to access UCCX Configuration APIs to fetch the list of CSQs, agents, and teams.

To access the Cisco CCX database remotely via the wallboard application, CCX reporting user (uccxhruser) password is required.

Integration with UCCE 

Since we need access on the Cisco AW database remotely, create an SQL server user, EFUser, with db_datareader role on the Cisco AW database.

Time Synchronization Requirements

If the system dates and times are not synchronized, the system can produce unpredictable results. Therefore, the EF applications and Cisco Contact Center should have their time zone and date/time properly configured, according to the geographic region and must be synchronized.


To configure the time zone, please see the instructions from the hardware or software manufacturer of the NTP server. The application servers should be synchronized. This synchronization should be maintained continuously and validated on a regular basis. For security reasons, the Network Time Protocol (NTP) V 4.1+ is recommended.


Test text goes here!


Test text goes here!


Test text goes here!

Test text goes here!

Test text goes here!

Test text goes here!

Test text goes here!

Test text goes here!

Test text goes here!

Test text goes here!


Anchor to this text::