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, and more. | |
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, and more. | |
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 or TaskRouter worker name of the agent the customer was sent to after this segment. Currently empty. | N | For Messaging transfers, the value is determined by the value of the Destination Type attribute:
| |
Direction | The direction of the conversation. The direction depends on the first segment. | Y | Inbound, Outbound, Internal, External, Unknown | |
Disposition | The outcome of a customer interaction. | Y | The values set by Agent Copilot during wrap-up. | |
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 | For Messaging transfers, this is the identifier of the transferred task. | |
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 | If applicable, references the segment, if any, that preceded this segment within the conversation. This can indicate, for example, that a customer conversation was transferred from one agent to another. | N | For Messaging transfers, this is the identifier of the task from which the agent initiated the transfer. | |
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...) | |
Sentiment | The customer attitude at the end of an interaction. | N | positive, neutral, negative | |
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 | ||
Transferred Segment | Indicates whether the current segment is a transferred segment. This attribute is available only when you turn on Messaging transfers. You can't override it. | Y | No (default), Yes | |
Transfer Type | For transferred segments, the type of transfer used. This attribute is available only when you turn on Messaging transfers. You can't override it. | N | cold | |
Destination Type | For transferred segments, the type of entity where the customer contact is transferred. This attribute is available only when you turn on Messaging transfers. You can't override it. | N | Agent, Queue | |
Virtual | Indicates whether the segment should be included in general reports. If Virtual is Yes then these Segments have a special purpose and shouldn't appear in reporting on top of conversations. This is only set to No when Kind = Conversation. It's 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, and so on. | Y |
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 30 Minutes, Interval 30 Minutes - Assessment: The 30-minute interval in which an event happened.
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.
Time, Time - Assessment: The time in hours and minutes when the event happened. It represents the finest granularity of a time dimension.
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 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.