Solution Components and Architecture
Communication Flow Diagram
The following diagram depicts the different components of the Dashboard application and the flow between each.
Below is the detail of each individual component.
Dashboard Frontend
This is the admin front-end that is responsible to serve the application front-end interface.
Dashboard Admin Server
This is the component that serves the Admin UI of the Dashboard application. This controls all the admin-related functions of the application.
Data Services
A Data Service in the Wallboard application is a REST+GraphQL-based microservice that returns real-time and/or historical data attributes to be displayed on Dashboards and Wallboards.
The application comes with two prebuilt data services that report on call center queues and agent statistics.
- Queue Service: This reports all the statistics related to the contact center queues/ skill groups such as calls received, answered, abandoned, SLA.
- Agent Service: This reports all the statistics related to the team agents such as Current state, Time in the state, ASA, AHT of agents.
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 reporting on statistics from the CRM.
Synchronizer
This component syncs contact center stats from the CC Database and dumps into the local database. The synchronizer refreshes/updates the real-time stats in the database every 5 seconds while, for the historical data, the stats are refreshed after every 5 minutes. However, for CCE deployments, this depends mainly on the real-time and historical data refresh interval set on the CCE side; i.e. for example, if the reporting interval for refreshing historical interval stats is set to 30 minutes, the new historical data are only available to be viewed on the dashboard after 30 minutes. Please note that the reporting interval stats are also always refreshed and updated when the new data is available for the next reporting interval.
Synchronizer/Data Services DB
The database where the synchronizer component pushes the detailed statistics of the contact center. The default data services of the Dashboard application read the data from the same DB to show those stats on the front-end.
External systems can also expose similar data services and develop a respective synchronizer component to store the statistics in its own DB.
Dashboard Admin Server DB
This is the configuration database that carries all configuration/administrative changes. This includes management of dashboards, dashboard groups and other actions being done from the admin portal.
User Management
The User Management (UMM) microservice allows administrators to create local users or get all contact center users and give them restricted access to the application. For instance, an agent can only view dashboards but a supervisor can create and manage dashboards and dashboard groups.
Each user that is logged into the Dashboard application gets authenticated by the UMM, which further checks its access permissions to segregate what the user can see after getting logged in. Please note that each user upon a valid logon 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.
User-based access to selective dashboards is currently not available. That is, dashboards cannot be created or assigned to selective teams.
User Management DB
The Database of UMM keeps the information about all users and the privileges assigned to them. All contact center users are synchronized by default with UMM whereas an admin can also create local user accounts. Customized roles can be created to assign selected permissions to certain users (both DB and Contact Center users). Each synced user from Cisco Finesse / CUCM has the default role "Agent" assigned to it. You can always change roles and assign selective permissions to the roles.
Integration with Cisco Unified CCE
The application comes with two default data services to report on queues and agent statistics.
- Queue Service: This reports all the statistics based on the skill groups such as calls received, answered, abandoned, SLA.
- Agent Service: This reports all the statistics based on the team such as agents, their current state, Time in the state, ASA, AHT of agents.
The following sections elaborate more on the list of attributes exposed by the two data services.
Queue Data Service
Attribute Filter
The data service allows creating dashboards based on call center skill groups for reporting statistics such as (number of calls answered, received, SLA, etc.). Hence, the following attribute filters are exposed to Queue service in case of CCE deployment:
- Skill Group: This lists all skill groups available in the CCE database. To show skill group stats, we refer to the following tables of CCE for realtime and historical data respectively; i) Skill_Group_Real_Time ii) Skill_Group_Interval.
It is mandatory to select the attribute filter to show some data on the wallboard. So the statistical data is then compiled/ accumulated based on one or multiple selected skill groups (or all skill groups for no selection).
Data Service Attributes
You can design the dashboard with the following exposed attributes of the data service:
Attribute Name | Description |
---|---|
SLA (5m) | This field shows the SLA on the skill group(s) in the rolling five-minute interval. After five minutes, this data either flushes out or updated depending upon the incoming calls in the next 5 minutes. This the ServiceLevelTo5 field in the Skill_Group_Real_Time table in the case of Attribute filter "Skill Group". |
SLA (Reporting Interval) | This field shows the value of the SLA in the last reporting interval (unlike the one above for rolling five minutes only). This is retrieved from the Skill_Group_Interval table and corresponds to the ServiceLevel field in the table. The value of this field is automatically updated or refreshed when the new data for the next reporting interval becomes available. |
Calls Received (5m) | This field shows the received calls on the skill group(s) in the rolling five-minute interval. After five minutes, this data either flushes out or updated depending upon the incoming calls in the next 5 minutes. This maps to the RouterCallsOfferedTo5 field in the Skill_Group_Real_Time table in the case of Attribute filter "Skill Group". |
Calls Received (Reporting Interval) | Choose this field to show the total received calls in the last reporting interval on this skill group. This is retrieved from the Skill_Group_Interval table and corresponds to the RouterCallsOffered field in the table. The value of this field is automatically updated or refreshed when the new data for the next reporting interval becomes available. |
Calls Answered (5m) | This field shows the answered calls on the skill group(s) in the rolling five-minute interval. After five minutes, this data either flushes out or updated depending upon the incoming calls in the next 5 minutes. This maps to the CallsAnsweredTo5 in the Skill_Group_Real_Time table in the case of Attribute filter "Skill Group". |
Calls Answered (Reporting Interval) | Choose this field to show the total answered calls in the last reporting interval on this skill group. This is retrieved from the Skill_Group_Interval table and corresponds to the CallsAnswered field in the table. The value of this field is automatically updated or refreshed when the new data for the next reporting interval becomes available. |
Calls Abandoned (5m) | This field shows the abandoned calls on this skill group in the rolling five-minute interval. After five minutes, this data either flushes out or updated depending upon the incoming calls in the next 5 minutes. This maps to the RouterCallsAbandQTo5 in the Skill_Group_Real_Time table in the case of Attribute filter "Skill Group". Only calls that abandon on the skill group (queued to skill group) will be reported with this attribute. |
Calls Abandoned (Reporting Interval) | Choose this field to show the total abandoned calls in the last reporting interval. This is retrieved from the Skill_Group_Interval table and corresponds to the RouterCallsAbandQ field in the table. The value of this field is automatically updated or refreshed when the new data for the next reporting interval becomes available. |
Calls in Queue | This field shows the number of calls in queue for the given skill group(s). This corresponds to the RouterCallsQNow field in the Skill_Group_Real_Time table in the case of Attribute filter "Skill Group". |
Longest Call In Queue | This field shows the longest time a call remained in the queue on the given skill group(s). This corresponds to the RouterLongestCallInQ field in the Skill_Group_Real_Time table in the case of Attribute filter "Skill Group". In the case of selecting multiple skill groups, this field shows the call which remained in the queue for a maximum time across all skill groups. |
Average Wait Time (5m) | This field shows the average wait time on the skill group(s) in the rolling five-minute interval. After five minutes, this data either flushes out or updated depending upon the incoming calls in the next 5 minutes. This is calculated as: (AnswerWaitTimeTo5/CallsAnsweredTo5) from the Skill_Group_Real_Time table in the case of Attribute filter "Skill Group". |
Average Talk Time (5m) | This field shows the average talk time on the skill group(s) in the rolling five-minute interval. After five minutes, this data either flushes out or updated depending upon the incoming calls in the next 5 minutes. This corresponds to the AvgHandledCallsTalkTimeTo5 field in the Skill_Group_Real_Time table. |
Average Talk Time (Reporting Interval) | Choose this field to show the average talk time in the last reporting interval. This is retrieved from the Skill_Group_Interval table and corresponds to the AvgHandledCallsTalkTime field in the table. The value of this field is automatically updated or refreshed when the new data for the next reporting interval becomes available. |
Agents Ready | This field shows the number of ready agents on the skill group(s). This is the Ready agents from the Skill_Group_Real_Time table. This also displays all agents who are in any state other than Not_Ready and Work_Not_Ready. |
Agents Not Ready | This field shows the number of not ready agents on the given skill group(s). This is the Not Ready field in the Skill_Group_Real_Time table. |
Agents Logged In | This field shows the number of logged-in agents on the given skill group(s). This is the LoggedOn field in the Skill_Group_Real_Time table. |
Agents Talking | This field shows the number of talking agents on the given skill group(s). This is the TalkingIn field in the Skill_Group_Real_Time table. |
- To view the real-time stats of call center agents (Ready, Not Ready, Talking), it is suggested to use the Agent Data Service with Pie/Doughnut (summary of ready, not ready states) and Data table (for individual agent stats) display types while viewing the stats team-wise. This is because since an agent can be a part of multiple skills, viewing agent states summary skill-group wise might not depict the true picture of the call center.
- The statistical data for the Reporting Interval attributes either flush or is overwritten automatically when the reporting interval expires and the new interval starts. So if the stats in the new interval are 0, the data stats become 0. If the stats are updated, the updated stats in the new reporting interval would be displayed.
- Since the stats are reported based on call center skill groups, only calls that actually land on the skill groups are available for reporting.
- There’s a difference between “Reporting Interval” stats and “Historical” stats. The “Historical” stats are calculated based on the interval stats but are persistent in the DB. Such Historical stats are only available for Calls Answered/Abandoned/Received attributes of the Queue Data Service and can only be seen in the Line/Bar charts display types.
- The “Reporting Interval” stats only last for the reporting interval configured on CCE and are refreshed when the new data for the next interval becomes available. Those interval stats can be seen in Scorecards, Speedometer display types.
Agent Data Service
Attribute Filter
The application shows the following attribute filters for Agent service in case of CCE deployment:
- Team: This lists all CCE teams in the CCE database.
Data Service Attributes
You can design the dashboard with the following exposed attributes of the data service:
Attribute Name | Description |
---|---|
First Name | This is the first name of the agent |
Last Name | This is the last name of the agent |
Current State | This is the current Finesse state of the agent. This refers to the AgentState field in the Agent_Real_Time table. This field caters the following states only:
|
State Duration: | This is the time since the agent is in the current state. This refers to the DateTimeLastStateChange field in the Agent_Real_Time table |
ASA | This field shows the average speed of answer to answer inbound voice calls per agent. This is calculated as (SUM(AnswerWaitTime)/SUM(CallsAnswered)) per agent against all skill groups from the Agent_Skill_Group_Interval table |
AHT | This field shows the average handling time for handling inbound voice calls per agent. This is calculated as (SUM(HandledCallsTime)/(SUM(CallsHandled)) from the Agent_Skill_Group_Interval table |
- Any type of historical statistics is not available for Agent Data Service. This means that only real-time data is available for team agents.
- On the Queue Service, only the historical data of "Calls Received/ Answered /Abandoned" is available. These historical data attributes are different from the same attributes for the Reporting Interval who automatically get reset or updated when the new interval starts.