Flex Insights (also known as Historical Reporting) is currently available as a public beta release and the information contained in the Flex Insights documentation is subject to change. This means that some features are not yet implemented and others may be changed before the product is declared as generally available. Public beta products are not covered by a Twilio SLA.
Any reference to "Historical Reporting," "Flex Insights API," "Flex Insights Historical Reporting," or "Flex Insights Historical Reporting API" in the Flex Insights documentation refers to Flex Insights.
The Flex Insights Data Model represents the structure and relationships between contact center entities. The model is designed for the analytical needs of the contact center. You can drill down from high-level KPIs calculated on top of the model to individual conversations and agents.
The model is highly optimized for maximum query performance and therefore has certain limitations. Notably, M:N relationships are not present. The model is also heavily denormalized.
The Flex Insights Data Models consists of data sets. Each data set, or group of data objects, represents a business entity in the contact center. Data sets are connected to each other based on their real-world relationships.
The following entity-relationship diagram maps how data sets within the model can be viewed with a real-world perspective:
Each data set contains one or more of the following data objects:
Before you begin working with Facts and Attributes, review the Flex Insights Data Model Caveats.
Additionally, the Flex Insights Data Model comes with pre-defined Metrics. Metrics are formulas built on top of facts (fka. measures). The data model may change over time, and pre-defined metrics provide an abstraction from these changes - so try to use pre-defined metrics whenever possible.
This section defines the model's main data sets and lists corresponding data objects. Please note that some data sets do not contain data by default and require custom data integration.
You can view the complete list of data sets by selecting the Manage tab in the Analytics Portal.
Conversations represent interactions between agents and customers. Each row in the Conversations data set represents a single Segment that is a part of a conversation or an agent activity (agent status data). These data enable the representation of all of the steps a customer went through when having a conversation with the contact center. You can also correlate these data with agent status data for reporting.
This data set contains data from TaskRouter events.
This data set includes the following attributes:
Field Name in Reporting | Business/Reporting Definition | Populated by default? | Possible Values |
---|---|---|---|
Segment (Label ID) (PK) | The lowest level of granularity in Insights conversation data. It represents an individual segment within the conversation. | Y | |
Segment (Label External ID) | Task SID for segments related to tasks in TaskRouter. | 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. | Y | Default: Queue Custom values: Short Queue, Ringing, Voicemail, Callback Request. |
Activity | The kind of activity that is 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 | The communication channel used between the customer and the agent. | Y | Call, Chat, SMS, custom, etc. |
Content | The 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 | Y | Moved for Queue Segments in which customers were moved to a different queue Timeout for Queue Segments from which customers were removed because of a timeout |
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 | N | |
Conversation Attribute 6 | Text custom field | N | |
Conversation Attribute 7 | Text custom field | N | |
Conversation Attribute 8 | Text custom field | N | |
Conversation Attribute 9 | Text custom field | N | |
Conversation Attribute 10 | Text custom field | N | |
Destination | The queue into which the customer went after this segment. Currently empty. | 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 the contact address 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) | The department ID for the agent when they handled the conversation. | Y | |
Handling Department (Label Name) | The department name for the agent when they handled the conversation. | Y | |
Handling Department (Label Name in Hierarchy) | The 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. | Y | Default: Unknown Custom values available with the Hang Up By plugin: Agent, Customer, Cold Transfer, External Warm Transfer |
In Business Hours | Indicates whether the conversation happened during the business hours of the contact 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 | The kind of activity or segment. | Y | Conversation, Queue, Agent Status, Missed Conversation, Rejected Conversation, Revoked Conversation |
Language | The 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. | Y | Task's Reason. Fallback to TaskCompletedReason or TaskCanceledReason . |
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 | Can be used to indicate whether a Conversation is productive or not. | N | Yes/No |
Queue | The queue in which the customer was waiting before reaching the agent. | Y | |
Segment (Label Segment Link) | The recording URL, if captured, to play back the conversation. | N | |
Segment Order | The order in which this segment occurred within the conversation. Applies to Kind: Conversation, only. | Y | Integer values in order of segment creation (1,2,3...) |
Service Level | The service level associated with the conversation. Enables you to identify the time-in-queue service level targeted for this conversation. | N | |
Source | The queue in where the customer was before this segment. Currently empty. | N | |
Virtual | Indicates whether the segment should be included in general reports. If Virtual is Yes then these Segments have a special purpose and should not appear in reporting on top of conversations. This is only set to No when the Kind = Conversation. It is set to Yes for all other Kinds. | 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 and under which circumstances the incoming conversations go, how they are ordered, what happens when a customer waits for too long, etc. | Y |
This data set includes the following facts:
Field Name in Reporting | Business/Reporting Definition | 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 | The time spent in this activity. | Y | Integer |
Agent Talk Time | The time the agent spent talking in the segment. | N | Integer |
Average Response Time | The time it took agents on average to respond to the customers from the moment the customer contacted the contact center. Currently empty. | N | 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 |
Conversation Measure 6 | Numeric Custom Field | N | Integer |
Conversation Measure 7 | Numeric Custom Field | N | Integer |
Conversation Measure 8 | Numeric Custom Field | N | Integer |
Conversation Measure 9 | Numeric Custom Field | N | Integer |
Conversation Measure 10 | Numeric Custom Field | N | Integer |
Crosstalk Time | The time the customer and the agent were talking simultaneously in the segment. | N | Integer |
Customer Talk Time | The time the customer spent talking in the segment. | N | Integer |
First Response Time | The time it took to respond to a first customer message from the moment the customer contacted the contact center. Currently empty. | N | Integer |
Focus Time | The time the agent was focused on handling the conversation. Currently empty. | N | Integer |
Hold Time | The time the customer spent on hold during this segment. | Y | Integer |
IVR Time | The 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. | N | 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. | N | 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 clearly. | N | Integer |
Longest Talk by Customer | The longest period of continuous talk by a customer. May indicate customers describing a complex problem. | N | Integer |
Priority | The priority of the conversation. Currently empty. | N | Integer |
Queue Time | The time the customer spends in a queue before this segment. | Y | Integer |
Ring Time | The time that a ringtone is heard by the customer. | N | Integer |
Silence Time | The time both the agent and the customer were silent in the segment. | N | Integer |
Talk Time | The 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 | The time in seconds for the start of a segment/activity. | Y | Integer |
Wrap Up Time | The time an agent spent wrapping up after the call with a customer. | Y | Integer |
Attributes not populated by default are fully customizable. Possible values are listed as recommendations and are shown in order to make sense of the attribute's meaning, or because they are used by existent metrics.
By default, Flex Insights does not capture IVR Time. In order to surface the IVR metric, you'll need to pass the value through TaskRouter events.
Agents handle conversations with customers. This data set enables you to segment and filter conversations by the agents who handled them.
This data set contains data from TaskRouter worker attributes. Check this resource to learn more about how worker data can be populated into Insights.
This data set includes the following attributes:
Workload breaks down conversations and agent activity (agent status data) into 15-minute intervals. This data set enables accurate intraday workload reporting.
This data set includes the following attributes:
This data set includes the following facts:
Customers are people who contacted the center or were contacted by the center. This data set enables you to segment and filter conversations by demographic attributes.
This data set contains data that TaskRouter provides, together with a customer phone number.
This data set includes the following attributes:
This data set includes the following facts:
Supervisors are people that provide feedback to agents using Assessments. This data set enables you to understand how feedback influences performance. Agents that provided feedback to other agents or assessed their conversations also appear in the Supervisors data set.
By default, this data set contains the data of the contacts who made assessments.
This data set includes the following attributes:
Assessments enable you to categorize conversations, attach comments, and score conversation quality. This data set enhances understanding of different, measurable quality aspects of conversations.
This data set contains manual entries that come from filled conversation questionnaires and comments in Flex Insights.
This data set includes the following attributes:
This data set includes the following facts:
This section provides descriptions for date dimensions that are present in the model. Usually, the primary date dimension is the right dimension to use. Use other dimensions for reporting needs that are focused on specific business processes. All dates have a set of attributes that you can use to display data from several different temporal perspectives. All dates are in the Gregorian civil calendar.
The model includes the following date dimensions:
Date and Date - Assessment date dimensions also have a time dimension that represents the time in minutes that is associated with the start of a segment. You can use the following attributes to understand intraday facts:
Hour, Hour - Assessment: The 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 15 Minutes, Interval 15 Minutes - Assessment: The 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.
Segments, Conversations, Cases, Campaigns, Projects and Initiatives form a hierarchical structure of conversations between your agents and your customers. These attributes enable different levels of analysis:
Flex Insights groups segments into a conversation based on a conversation identifier extracted from TaskRouter event attributes. Flex Insights 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 data set, all items that reference the Conversations data set are actually tied to a specific segment, even when they actually have Conversation-wide meaning.