The Analytics Data Model in Flex WFO represents the structure and relationships between business entities. The Analytics Data Model is designed especially for contact centers' analytics needs. We have emphasized ease of use for business people over other factors. You can drill down from high-level KPIs calculated on top of the Analytics Data Model down to individual conversations and agents behind them.
The Analytics Data Model is highly optimized for analytical performance, and thus has certain limitations. Notably, M:N relationships are not present in the Analytics Data Model. The model is also heavily denormalized.
When working with Measures, please check the Analytics Data Model Caveats to make sure your measures are accurate.
The model contains the following business entities, or as we call in the analytics world, datasets. Datasets are connected with each other depending on whether they have relationships with each other. Some of the datasets may not be filled with data by default, and may require custom data integration.
Agents handling conversations with the customers. Enables the slicing and filtering of conversations by the agents who handled them.
- Date - Joined - The date when the agent joined the company.
- Date - Left - The date when the agent left the company.
- Agent ID (Primary Key - PK) - Agent ID, as assigned from a contact center platform.
- Department - A set of Teams. This is a higher level organizational unit than a Team.
- Email - Agent's email address.
- First Name - Agent's first name.
- Last Name - Agent's last name.
- Location - Agent's physical location.
- Manager - Agent's manager - a single person responsible for the agent.
- Phone - Agent's phone.
- Role - Agent's role, enables segmentation of agents by their status in the company.
- State - Current state of the agent. Indicating whether they still work in the contact center. Possible values: Active, Inactive.
- Team - Team on which the agent is currently based.
- This dataset is filled with data from TaskRouter worker attributes, check this resource to learn more about how worker data can be populated into WFO.
Assessment of the conversation that enables you to categorize conversations, attach comments, and score quality. Enables the understanding of different measurable quality aspects of conversations.
- Conversations - The conversation segment that was assessed.
- Supervisors - The person or system who performed the assessment.
- Date - Assessment - Date when the assessment was done for the conversation.
- Time - Assessment - Time when the assessment was done for the conversation.
- Answer - Answer picked up from the range of available answers for the given question.
- Assessment (PK) - A distinct assessment of a conversation quality, given for a question by an assessor.
- Assessment Type - Defines via which Conversation Screen feature the assessment originated. Possible values: Quality (Assess feature), Comment (Comment feature).
- Category - The category of the metric. Enables the grouping of metrics into categories for reporting on a higher level.
- Comment - Free comment that a Supervisor may attach to the assessment.
- Metric - The assessed question in a questionnaire.
- Rejection - [Not in use] Reason why the assessment was rejected. The person who was supposed to asses the question declined to asses it, as it was not relevant or possible to assess.
- Report - Tells whether the assessment should appear in reports. Enables to exclude some assessment from reports as it may be a training score or other assessment that should not influence an agent's salary or carrier in general.
- Possible values: Yes, No. If the call was assessed, but then QA agent removed their scores, assessed questions will turn to Report = No.
- Review - [Not in use] Identification of a review during which the assessment was done. Enables to group the assessment into logical units.
- Assessed End Position - The end offset in the segment related to the assessment.
- Assessed Position - The offset in the segment related to the assessment.
- Max Score - The maximum possible score of the metric. Equal to 1 for percentages.
- Min Score - The minimum possible score of the metric. Equal to 0 for percentages.
- Score - The score in the metric original scoring scale. Within the Min Score and Max Score bounds. May also be out of the bounds for bonus points and extra negative points.
- Score Percentage - The score normalized to percentage.
- Time - Assessment in Seconds - Assessments's time expressed in seconds.
- Weight - The weight of the metric as set up in the external system. Enables reporting on different metrics with different importance to an overall score.
- Assessments dataset is populated with manual entries coming from filled conversation questionnaires and comments in Flex WFO.
Conversations between agents and customers. Each row in the Conversations dataset represents a single Segment that is a part of a conversation or agent activity. This enables the representation of multiple stages a customer went through when having a conversation with the contact center. Enables reporting on top of conversation metadata.
- Agents - The agent who handled this segment in the contact center.
- Customers - The customer that is taking part in the conversation. Customer stays the same for all segments in the conversation.
- Date - Date when this segment started.
- Time - Segment's start time.
|Field Name in Reporting||Business/Reporting Meaning||Populated by default?||Possible Values|
|Abandoned||Abandoned calls are those calls where the talking parties did not reach others||Y||Yes, No|
|Abandoned Phase||In inbound, this is a phase in which the customer gave up waiting for your agents. In outbound, this is the phase in which agents stopped trying to reach customers.||N|
|Activity||The kind of activity performed by an agent||Y||Available, Idle, Break, etc.|
|Campaign||A campaign related to this conversation||N|
|Case||The case that this segment belongs to. A case is a set of conversations (and thus segments they contain) that are related to one super unit from the perspective of the customer and may include several conversations with different customers.||N|
|Communication Channel||Communication channel used between customer and agent.||Y||Call, Chat, SMS|
|Content||Summary of the content of the conversation. The content is reserved for automatic extraction of content and it differs by channel, platform features, and customer preferences. For SMS messages it can be the message itself, for emails it can be subject or body extract, for chat it can be a first few messages, for calls it can be topics. The maximum length of content may be shortened to about 100 characters.||N|
|Conversation||The conversation that this segment belongs to. A conversation is a set of segments related to handling one customer.||Y|
|Conversation Attribute 1||Text custom field||N|
|Conversation Attribute 2||Text custom field||N|
|Conversation Attribute 3||Text custom field||N|
|Conversation Attribute 4||Text custom field||N|
|Conversation Attribute 5||Text custom field||Y||Task SID|
|Conversation Attribute 6||Text custom field||N|
|Conversation Attribute 7||Text custom field||N|
|Direction||The direction of the conversation. The direction depends on the first segment.||Y||Inbound, Outbound, Internal, External, Unknown|
|External Contact||The contact the customers used to reach you or from which you have reached them. This may be an inbound support phone number, your support email, or a phone number that appears on customers' phone when you call them.||Y|
|Followed By||Indicated what happened after the given segment. This can be indication of transfers of a customer activity following this conversation.||N|
|Handling Department (Label ID)||Department id in which the agent was when they handled the conversation.||Y|
|Handling Department (Label Name)||Department name in which the agent was when they handled the conversation.||Y|
|Handling Department (Label Name in Hierarchy)||Department name in hierarchy in which the agent was when they handled the conversation.||Y|
|Handling Team (Label ID)||The team id on which the agent was based when they handled the conversation.||Y|
|Handling Team (Label Team Name)||The team name on which the agent was based when they handled the conversation.||Y|
|Handling Team (Label Name in Hierarchy)||The team name in hierarchy on which the agent was based when they handled the conversation.||Y|
|Hang Up By||The party that hung up or left the conversation first.||N||Agent, Customer, Unknown|
|In Business Hours||Tells whether the conversation happened during a time that is during business hours of the company.||N|
|Initiated By||Indicates who or what initialized the conversation.||N|
|Initiative||The highest level of grouping of conversations, intended for representing high-level business initiatives of the company.||N|
|IVR Path||The sequence of options customers picked in your IVR. You may use this to understand what customers wanted to do and whether they were successful or they needed to talk to your agents or they gave up.||N|
|Kind||Kind of activity or segment||Y||Conversation, Queue, Agent Status, Missed Conversation, Rejected Conversation, Revoked Conversation|
|Language||Language used by the participants in the conversation.||N|
|Outcome||A custom categorization of conversations by how they ended. Exact options depend on each contact center. For example, you can mark conversations that ended up with a sale, that need followup, or in which customer asked to unsubscribe from your services. For IVR Only conversations Outcome may indicate whether customers achieved their goal or not.||N|
|Preceded By||What happened before this segment. This can be indication of transfers of a customer activity preceding this conversation.||N|
|Productive||Productive activities are those activities that bring value to the company.||N|
|Queue||The queue in which the customer was waiting before reaching the agent.||Y|
|Segment (Label ID) (PK)||The lowest level of granularity in WFO data, represents an interval within conversation||Y|
|Segment (Label Segment Link)||Recording URL to play the conversation||N|
|Segment Order||The order in which a segment happened within a conversation.||N|
|Service Level||The service level associated with the conversation. Enables to identify under which SLA the conversation was handled.||N|
|Virtual||Indicates whether the Segment should be included in general reports. If Virtual is Yes than these Segments have a special purpose and should not appear in reporting on top of conversations.||Y||Yes, No|
|Workflow||The name of the Workflow that controls how the segment of the conversation is handled. Typically this workflow decides into which queues under which circumstances the incoming conversations go, how they are ordered, what happens when a customer waits for too long.||Y|
|Field Name in Reporting||Business/Reporting Meaning||Populated by default?||Possible Values|
|Abandon Time||The time after which the call was abandoned without the parties connecting to each other.||Y||Integer|
|Activity Time||Time in seconds spend with this activity.||Y||Integer|
|Agent Talk Time||Time the agent spent talking in the segment.||Y||Integer|
|Conversation Measure 1||Numeric Custom Field||N||Integer|
|Conversation Measure 2||Numeric Custom Field||N||Integer|
|Conversation Measure 3||Numeric Custom Field||N||Integer|
|Conversation Measure 4||Numeric Custom Field||N||Integer|
|Conversation Measure 5||Numeric Custom Field||N||Integer|
|Crosstalk Time||Time both the customer and the agent were talking simultaneously in the segment.||Y||Integer|
|Customer Talk Time||Time the customer spent talking in the segment.||Y||Integer|
|Hold Time||Time a customer spends on hold during this segment.||N||Integer|
|IVR Time||Time a customer spends on IVR before this segment.||N||Integer|
|Longest Silence before Agent||The longest period of silence in a segment before an agent started to talk. May indicate issues like knowledge gaps, inability to keep customers informed during longer tasks etc.||Y||Integer|
|Longest Silence before Customer||The longest period of silence in a segment before a customer started to talk. May indicate dissatisfaction of a customer or agent's inability to assist the customer.||Y||Integer|
|Longest Talk by Agent||The longest period of continuous talk by an agent. May indicate agents describing a complex problem or failing to explain something plainly and simply.||Y||Integer|
|Longest Talk by Customer||The longest period of continuous talk by a customer. May indicate customers describing a complex problem.||Y||Integer|
|Queue Time||Time a customer spends in a queue before this segment.||Y||Integer|
|Ring Time||Time that the ring tone is heard by a customer.||Y||Integer|
|Silence Time||Time both agent and customer were silent in the segment.||Y||Integer|
|Talk Time||Time customer spent talking with an agent. This includes all silences and can be thought of as the time between picking the phone and hanging up.||Y||Integer|
|Time in Seconds||Time in seconds for the start of segment/activity.||Y||Integer|
|Wrap Up Time||Time an agent spent wrapping up the call with a customer.||Y||Integer|
IVR Time and Hold Time are not captured in WFO by default. In order to surface IVR and Hold metrics, you'll need to pass these through TaskRouter events.
- This dataset is filled with data from TaskRouter events. Measures such as Agent talk Time, Customer Talk Time, and Silence Time are available only when conversation recordings are provided.
Customers that contacted the contact center or were contacted by the contact center. Enables to slice and filter conversations by demographics.
- Acquisition Date - The date when the customer was acquired.
- Area - The geographical area where the customer is.
- Category - An attribute enabling custom slicing of customers by category.
- Country - The country from which the customer is.
- Customer (PK) - Single customer. Depending on how well we are able to connect individual contact information with a specific customer one person may appear as several customers. For example, if we are not able to connect phone number and email.
- Customer Attribute 1, Customer Attribute 2 and Customer Attribute 3 - custom customer fields.
- Email - The customer's primary email.
- Gender - The gender of the customer. Possible values: Female, Male, Other, Unknown
- Geo Location - GPS coordinates of a representative city or location within the area.
- Name - The full name of the customer. Includes First name and last name if they are available.
- Organization - The organization which the customer is from.
- Phone - The customer's primary phone number.
- Region - A higher-level geographical unit than Country. It allows the grouping of countries into regions. There is no required set of regions, each customer may implement varying segmentation of the world.
- Type - Distinguishes between actual customers and agents that are identified as a customer (in case of internal agent-agent segments). See Analytics Data Model Caveats.
- Year of Birth - The date of birth of the customer.
- Acquisition Cost - The cost of acquiring the customer.
- Business Value - A positive or negative value expressing how the company values the customer in terms of future possible income for a company.
- This dataset contains data that TaskRouter provides, together with a customer phone number.
Speech findings are provided by Speech Analytics and are attached to a time frame of conversations where they were found. Enables automatic categorization of conversations based on speech patterns.
- Conversations - Conversation segment that contains this Speech search.
- Enabled - Indicates whether Speech Analytics is actively searching for this phrase at this time. Useful for filtering out phrases that are not currently being searched for.
- Finding (PK) - Individual finding of a speech phrase in a segment.
- Speaker - Who said the given speech phrase. Useful for distinguishing what was said by agents and what was said by customers.
- Speech Phrase - Text of what is actually being searched for in the conversations.
- Speech Search - Collection of phrases by categories that are closely related. Useful for merging phrases with similar meaning one single representative - for example, "Greeting", "Competition", "Complaint", "Escalation Request" and so on.
- Verified - Tells whether the finding was verified by a person. If Yes - The finding is correct and verified by a person. If False Finding - The finding is not correct, as a person marked it as a false positive. If No - The finding was not yet verified. <custom> - Serves for custom levels of verification. Can, for example, contain the name of a secondary system that verifies findings. Possible values: Yes, False Finding, No or custom value
- Confidence - How confident Speech Analytics engine is that the finding is correct. Useful for filtering findings to include only accurate findings or to include as many occurrences as possible.
- Offset - The offset in seconds from the beginning of the segment. Useful for searching for findings that are in a particular part of a call.
- Speech Analytics provides data for all attributes and measures.
Supervisors contain people that provided feedback to agents by using either Assessments or Gamification. Enables to understand how feedback influences performance. Note that agents that provided feedback to other agents or assessed their conversations also appear in Supervisors dataset.
- Department - A set of Teams. This is a higher level organizational unit than a Team.
- Email - Supervisor's email.
- Manager - Supervisor's manager.
- Role - Supervisor role, such as the job title or role indicating his or her permissions.
- State - Current state of the supervisor. Indicating whether they still work in the contact center.
- Supervisor (PK) - Supervisor is anyone who provided any feedback to a conversation or an agent including agents themselves.
- Team - The team on which the supervisor is currently based.
- The Supervisors dataset is by default populated with data of a contact who made an assessment.
Segments, Conversations, Campaigns, Projects, and Initiatives are a hierarchical structure of conversations between your agents and your customers. Segments, Conversations, Cases, Projects, Campaigns, and Initiatives enable different levels of analysis.
- Segment - Continuous communication between customers and agents separated by holds, transfers and other similar events from other segments within a conversation.
- Conversation - Communication between one customer and all agents in the contact center handling them. A conversation is composed of one or more Segments.
- Case - Multiple conversations regarding the same issue or topic.
- Project - Multiple cases related to the same project.
- Campaign - Business-goal oriented campaign. For example an outbound sales campaign, marketing campaign leading to inbound conversations, social media content publishing etc.
- Initiative - The highest level of grouping of conversation, intended for representing high-level business initiatives of the company.
Flex WFO groups segments into a conversation based on identifiers in the individual systems. Flex WFO uses exact matching of IDs with heuristics that attempt to group segments with the same customer within a short period of time into a single conversation. Exact behavior depends on the Data Source.
As Segments represent the elementary item in the Conversations dataset, all items that reference the Conversations dataset are actually tied to a specific Segment even when they have actually a Conversation-wide meaning.
The data model contains three data field types: Attributes, Metrics, and Date Dimensions. Each of the data types is suited to be used for different purposes:
- Measures - KPIs and other metrics that represents mathematical calculation or aggregation of data. Measures are calculated as sums, averages, etc. or counts of distinct values. Measures can be sliced by attributes or dates.
- Attributes - You can slice and filter data by attributes.
- Date Dimensions - You can filter and slice by different items in the date dimension.
We recommend using Base Metrics instead of using Measures directly. The data model may change over time, and Base Metrics provide an abstraction from these changes.
For each business process there are different date dimensions in WFO analytics:
- Date - Primary date and time used by the majority of events. Date and time when a segment started
- Date - Assessment - Date and time when an individual assessment happened
- Date - Joined - Date when an agent joined the company (available in Flex WFO when you provide values via custom task attributes)
- Date - Left - Date when an agent left the company (available in Flex WFO when you provide values via custom task attributes)
Usually, the primary date dimension is the right dimension to use. Use other dimensions for reporting needs focused on specific business processes.
All dates have a set of attributes that you can use to have a look on each day from several different perspectives. All dates are in Gregorian civil calendar. In Analyze you can segment conversations by: Day, Week, Month, Quarter and Year.
In Reports you can use these attributes: Day of Week, Day of Month, Day of Quarter, Day of Year, Week of Quarter, Week of Year, Month of Quarter, Month of Year and Quarter of Year.
Date and Date – Assessment date dimensions also have time dimension representing time in minutes associated with segment start. You can use the following attributes to understand intra-day measures:
- Hour, Hour – Assessment – Hour of the day of the event. In the range from 0 to 23, respectively from 0 AM to 11 PM (you can select a different label to represent time according to your preference).
- Interval 30 Minutes, Interval 30 Minutes - Assessment - 30-minute interval in which an event happened.
- Interval 15 Minutes, Interval 15 Minutes – Assessment – Fifteen minute interval in which an event happened. The interval is always showing the segment/activity start time. For example conversations starting between 01:15 PM and 01:30 PM are in interval named 01:15 PM.
- Time, Time – Assessment – Time in hours and minutes when the event happened, represents the finest grain of time dimension.
In addition to segmentation by days and time interval you can use In Business Hours attribute. This helps you quickly filter conversations and activity just to the time period when you expect customers to contact you. As business hours can be different for each day and may be different during holidays they are much more convenient that using specific dates and hours. Business hours data is not automatically extracted from TaskRouter event, so you will have to add this data using custom task attributes.
You can filter and segment essentially any metric by day of week in metrics, reports and dashboards.
To filter dashboards by day of week follow these steps to add the filter:
- Go to the dashboard you would like to filter
- Click the gear button in the top right corner
- Click Edit in the menu
- Click Filter in the top grey bar
- Click Attribute in the menu
- Check Show date attributes field at the bottom of the menu
- Type into search Day of Week to the search on top
- Click Day of Week, Mon - Sun in the category Date Dimension (Date) which is the date when the conversation or activity happened
- Click Add
- Place the filter on the dashboard tab
- Click Save
Now you can filter all data on the dashboard by day of week.