The Analytics Data Model in Flex WFO represents the structure and relationships between contact center-related business entities. The Analytics Data Model is designed for contact centers' analytics needs. You can drill down from high-level KPIs calculated on top of the Analytics Data Model to individual conversations and agents.
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 they are often called in the analytics world, "datasets." Datasets are connected with each other based on their real-world relationships with each other. Some of the datasets may not be filled with data, by default, and require custom data integration.
Agents handle conversations with customers. This dataset enables segmenting and filtering 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): An identifier assigned by contact center management to uniquely identify the agent.
- Department: A set of Teams. This is a higher-level organization unit than a Team.
- Email: The agent's email address.
- First Name: The agent's first name.
- Last Name: The agent's last name.
- Location: The agent's physical location.
- Manager: The agent's manager. This is a single person responsible for the agent.
- Phone: The agent's phone.
- Role: The agent's role. It enables segmentation of agents by their role in the company.
- State: The current state of the agent. It indicates whether they still work in the contact center. Possible values: Active, Inactive.
- Team: Agent's Team.
- 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.
Assessments enable you to categorize conversations, attach comments and score their quality. This dataset enhances 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: The date when the assessment was done for the conversation.
- Time - Assessment: The time when the assessment was done for the conversation.
- Assessment (PK): A distinct assessment of a conversation quality, given for a question by an assessor.
- Answer: The answer selected from the range of available answers for the given question.
- Assessment Type: A reference to the Conversation Screen from which 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: A free-form comment that a Supervisor may attach to the assessment.
- Metric: The assessed question in a questionnaire.
- Rejection: [Not in use] The 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 was impossible to assess.
- Report: This indicates whether the assessment should appear in reports. Enables excluding an assessment from reports if, for example, it's a training score or other assessment that should not influence an agent's performance rating. Possible values: Yes, No. If the conversation was assessed but then the assessor removed their scores, the assessments Report flag will be set to No.
- Review: [Not in use] A reference to the review during which the assessment was done. Enables grouping of assessments 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, as defined by the Min Score and Max Score bounds. May also be outside of these bounds for bonus points and extra negative points.
- Score Percentage: The score, when normalized to a percentage.
- Time - Assessment in Seconds: The duration of the content that was the focus of the assessment, 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.
- The Assessments dataset is populated with manual entries coming from filled conversation questionnaires and comments in Flex WFO.
Conversations represent communications 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 all steps 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 who took part in the conversation. The Customer is the same for all segments in the conversation.
- Date: The date when this segment started.
- Time: The segment's start time.
|Field Name in Reporting||Business/Reporting Meaning||Populated by default?||Possible Values|
|Segment (Label ID) (PK)||The lowest level of granularity in WFO conversation data, it represents an individual segment within the conversation.||Y|
|Abandoned||Abandoned calls are those where the talking party did not reach the intended party.||Y||Yes, No|
|Abandoned Phase||In inbound segments, this is the phase in which the customer gave up waiting for your agents. In outbound, this is the phase in which the agent stopped trying to reach the customer.||N|
|Activity||The kind of activity performed by an agent. This attribute is only relevant for segments with Kind = Agent Status.||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 the segments they contain) that are related to one issue, inquiry or sale.||N|
|Communication Channel||Communication channel used between customer and agent.||Y||Call, Chat, SMS, custom, etc.|
|Content||Summary of the content of the conversation. The content is reserved for automatic extraction from the monitored communications and it differs by channel, platform features and customer preferences. For SMS messages it can be the message itself; for emails it can be the subject or an extract from the body; for chat it can be the 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 to which this segment belongs. 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 address the customer 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 the customer's phone when you call them.||Y|
|Followed By||References the segment, if any, that follows this segment within the conversation. This can indicate, for example, a transfer of a customer conversation to another agent.||N|
|Handling Department (Label ID)||Department id for the agent when they handled the conversation.||Y|
|Handling Department (Label Name)||Department name for the agent when they handled the conversation.||Y|
|Handling Department (Label Name in Hierarchy)||Department name in hierarchy for the agent when they handled the conversation.||Y|
|Handling Team (Label ID)||The team id for the agent when they handled the conversation.||Y|
|Handling Team (Label Team Name)||The team name for the agent when they handled the conversation.||Y|
|Handling Team (Label Name in Hierarchy)||The team name in hierarchy for the agent 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||Indicates whether the conversation happened during business hours for the center.||N|
|Initiated By||Indicates who or what initiated 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, if any, that the customer selected in your IVR. You may use this to understand what customers wanted to do and whether they were successful, whether 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 follow-up or in which the customer asked to unsubscribe from your services.||N|
|Preceded By||References the segment, if any, that preceded this segment within the conversation. This can indicate, for example, a transfer of a customer conversation from another agent.||N|
|Productive||Productive activities are those activities designated as having brought value to the company. This designation must come from an attribute attached to the task.||N|
|Queue||The queue in which the customer was waiting before reaching the agent.||Y|
|Segment (Label Segment Link)||Recording URL, if captured, to play back the conversation.||N|
|Segment Order||The order in which this segment occurred within the conversation.||N|
|Service Level||The service level associated with the conversation. Enables you to identify the time-in-queue service level targeted for this conversation.||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 controlled how the segment of the conversation was routed. 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, etc.||Y|
|Field Name in Reporting||Business/Reporting Meaning||Populated by default?||Possible Values|
|Abandon Time||Time after which the call was abandoned without the parties connecting to each other.||Y||Integer|
|Activity Time||Time spent in 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 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 the customer spent on hold during this segment.||N||Integer|
|IVR Time||Time the customer spent in the 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 the customer spends in a queue before this segment.||Y||Integer|
|Ring Time||Time that a ring tone is heard by the 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 answering 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, following 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. Certain measures, such as Agent talk Time, Customer Talk Time and Silence Time are available only when conversation recordings are provided.
Customers are people who contacted the center or were contacted by the center. This dataset enables you to segment and filter conversations by demographic attributes.
- Customer (PK) - A reference to a single customer. Depending on how well we are able to connect individual contact information with a specific customer, one person may appear in several customer records. For example, if we are unable to associate a person's phone number and their email address, they will appear in two records.
- Acquisition Date - The date when the customer was acquired.
- Area - The geographical area where the customer is located.
- Category - An attribute enabling custom slicing of customer data by category.
- Country - The country in which the customer is located.
- 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 to which the customer belongs.
- 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 Flex customer may implement their own segmentation of the world.
- Type - An indicator that distinguishes between actual customers and agents that are identified as the "customer" in a conversation (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 or a similar metric.
- 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 - A reference to the Conversation segment that contains this Speech search result.
- Finding (PK) - An individual finding of a speech phrase in a segment.
- Enabled - This 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.
- Speaker -This indicates who said the given speech phrase. Useful for distinguishing what was said by agents and what was said by customers.
- Speech Phrase - The text of what is actually being searched for in the conversations.
- Speech Search - A collection of phrases that are semantically similar. This is useful for merging phrases with similar meaning into a single representative phrase - for example, "Greeting", "Competition", "Complaint", "Escalation Request" and so on.
- Verified - This indicates 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 a custom value
- Confidence - A measurement of the Speech Analytics engine's confidence that the finding is correct. This is useful for filtering findings to include only accurate findings or, alternatively, to include as many likely occurrences as possible.
- Offset - The offset in seconds from the beginning of the segment.This is useful for searching for findings that are in a particular part of a call.
- Speech Analytics provides data for all attributes and measures.
Supervisors are people that provided feedback to agents using Assessments. This dataset enables you to understand how feedback influences performance. Note that agents that provided feedback to other agents or assessed their conversations also appear in the Supervisors dataset.
- Supervisor (PK) - A Supervisor is anyone who provided feedback on a conversation or an agent, including agents themselves.
- Department -The supervisor's department, which is a set of Teams.
- Email - The supervisor's email address.
- Manager - The supervisor's manager.
- Role - The supervisor's role, such as the job title or role indicating his or her permissions.
- State - The current state of the supervisor. Indicating whether they still work in the contact center.
- Team - The supervisor's team.
- The Supervisors dataset is, by default, populated with data of a contact who made an assessment.
Segments, Conversations, Cases, Campaigns, Projects and Initiatives form a hierarchical structure of conversations between your agents and your customers. These datasets enable different levels of analysis.
- Segment - A continuous communication between a customer and an agent, separated by transfers and similar events, from other segments within a conversation.
- Conversation - A 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 - A business-goal oriented communication campaign with a set of customers. This might be an outbound sales campaign, marketing campaign leading to inbound conversations, social media content publishing, etc.
- Initiative - The highest level of grouping of conversations, intended for representing high-level business initiatives of the company.
Flex WFO groups segments into a conversation based on a conversation identifier extracted from the Flex event stream. 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. The exact behavior depends on the conversation channel(s) and can be customized by supplying a custom conversation ID as a task attribute, as described here.
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 actually have Conversation-wide meaning.
The data model contains three data field types: Measures, Attributes and Date Dimensions. Each of the data types is suited to different purposes:
- Measures: KPIs and other metrics that represent mathematical calculations or aggregations. Measures are calculated as sums, averages, etc. or counts of distinct values. Measures can be segmented by attributes or dates.
- Attributes: You can filter and segment data by attributes.
- Date Dimensions: You can filter and segment data 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, which are built atop Measures, 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 was performed.
- 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 are in the Gregorian civil calendar.
All dates have a set of attributes that you can use to data from several different temporal perspectives. 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 a 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 for 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: 15-minute interval in which an event happened. The interval is based on the segment/activity start time. For example, conversations starting between 01:15 PM and 01:30 PM are in the interval named 01:15 PM.
- Time, Time – Assessment: Time in hours and minutes when the event happened. It represents the finest grain of a time dimension.
In addition to segmentation by date and time intervals, you can use the In Business Hours attribute. This helps you quickly filter conversations and activity to the time period when you expect customers to contact you. As business hours can be different for each day and might be different during the holidays, they are much more convenient than 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 the week in metrics, reports, and dashboards.
To filter dashboards by day of the 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 the Show date attributes field at the bottom of the menu.
- Type Day of Week into the search box near the top of the page.
- 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 the week.