Изменить

Поделиться через


Calculate conversation metrics

Applies to: Dynamics 365 Contact Center—standalone and Dynamics 365 Customer Service only

Note

Copilot Studio bot is renamed as Copilot agent (agent or AI agent). Human agent is now renamed as customer service representative (service representative or representative). You might come across references to the old and new terms while we update the product UI, documentation, and training content.

This article provides an overview of conversation metrics available in Dynamics 365 Customer Service, that help you analyze key performance indicators (KPIs) to make strategic decisions, track customer service representative (service representative or representative) and AI agent performance, and improve customer satisfaction.

It also provides detailed guidance on calculating key conversation metrics. By using Power BI reports and Dataverse calculations, you can gain valuable insights into customer service efficiency and improve overall customer satisfaction. Understand the conversation workflow to effectively utilize these metrics and improve customer service operations and decision-making.

Learn more about Session metrics and Service representative metrics.

Total conversations

Applies to Omnichannel real-time and Omnichannel historical dashboards.

The total number of conversations across all channels (digital and voice) during a specified period, including AI agent and service representative interactions, categorized by status: open, active, waiting, wrap-up, and closed. This includes both inbound and outbound communications.

Total conversations = Total bot conversations + Total direct agent Conversations (inbound and outbound) that can be in any of the conversation states. Learn more in conversation states.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Total conversations_FactConversation = CALCULATE(COUNTROWS(FactConversation))

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_channel. The channels in the conversation.
- msdyn_ocliveworkitem.msdyn_channelinstanceid. Unique identifier to identify the app to which this conversation belongs to. Learn more in msdyn_channelinstanceid.
Filters - Filter the FactConversations table to include only rows from msdyn_ocliveworkitem.​
- Ensure that msdyn_channel isn't equal to '192350000' and msdyn_channelinstanceid is NULL.

Total bot conversations

Applies to Omnichannel real-time and Omnichannel historical dashboards.

Total number of conversations during the selected period involving Voice, IVR, chat, or digital agents, across all statuses (active and closed conversations).

Total Bot Conversations = Bot Deflected Conversations + Bot Escalated Conversations

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query

Bot conversations_FactSession=CALCULATE(DISTINCTCOUNT(FactSession[ConversationId_FS]))

Element Value
Dataverse entities msdyn_ocliveworkitem, msdyn_ocsession​, and msdyn_ocsessionparticipantevent.
Attributes - msdyn_ocsessionparticipantevent.msdyn_eventreason .
- msdyn_ocsessionparticipantevent.msdyn_eventtype ​
- msdyn_ocsession.msdyn_sessioncreatedon ​
- msdyn_ocsession.msdyn_channel​
- msdyn_ocsession.msdyn_channelinstanceid
Filters - Filter the FactSession table to exclude records from msdyn_ocsessionparticipantevent where msdyn_eventreason is '192350001' (in-transit records).
- Include records from msdyn_ocsessionparticipantevent where msdyn_eventtype is '192350001' (hold events).​
- Exclude sessions from msdyn_ocsession where msdyn_sessioncreatedon is empty.​
- Exclude sessions from msdyn_ocsession where msdyn_channel is '192350000' (Entity Records channel).
- Exclude sessions where msdyn_channelinstanceid is NULL (SMS filter)​.
  • Bot deflected conversations: Total number of bot conversations resolved by the bot without escalating to a service representative. ​

  • Bot escalated conversations: Total number of bot conversations that were escalated to the service representative.

Direct service representative conversations (Incoming conversations)

Applies to Omnichannel real-time and Omnichannel historical dashboards.

The total number of inbound conversations that a service representative received directly or were escalated by an AI agent.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Incoming conversations_FactConversation = CALCULATE(DISTINCTCOUNTNOBLANK(FactConversation[ConversationId]), FactConversation[IsAgentInvolved] = "1",FactConversation[IsOutbound] <> "1“

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_ocliveworkitem.msdyn_isoutbound
- msdyn_ocliveworkitem.msdyn_channel ​
- msdyn_ocliveworkitem.msdyn_channelinstanceid ​
- msdyn_sessionparticipant.systemuser.msdyn_botapplicationid
Filters - Set IsOutbound to the value of msdyn_ocliveworkitem.msdyn_isoutbound.
-​ Filter the FactConversations table to include only rows from msdyn_ocliveworkitem.​
- Ensure that msdyn_channel isn't equal to '192350000' and msdyn_channelinstanceid is NULL.​
- Determine if an agent is involved by checking if there is at least one session where IsAgentSession is true.​
- IsAgentSession is set to true if msdyn_sessionparticipant.systemuser.msdyn_botapplicationid isn't null.​

Direct service representative conversations (Outgoing conversations)

Applies to Omnichannel historical dashboards.

The total outbound conversations a representative initiated with a customer.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Outgoing conversations = ​CALCULATE (​DISTINCTCOUNTNOBLANK ( FactConversation[ConversationId] ),​ FactConversation [IsOutbound] = "1")​

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_ocliveworkitem.msdyn_channel
- msdyn_ocliveworkitem.msdyn_channelinstanceid
- msdyn_conversationtopic_conversation.msdyn_conversationid
- msdyn_ocliveworkitem.msdyn_isoutbound
Filters - Filter the FactConversations table to include only rows from msdyn_ocliveworkitem.​
- Ensure that msdyn_channel isn't equal to '192350000' and msdyn_channelinstanceid is NULL. onversationid is set to the value of msdyn_conversationtopic_conversation.msdyn_conversationid.
- IsOutbound is set to the value of msdyn_ocliveworkitem.msdyn_isoutbound.
  • Incoming conversations: The total inbound conversations, including direct-to-representative and bot escalations.

Engaged conversations

Applies to Omnichannel historical dashboards.

An engaged conversation is an interaction where both the customer and representative actively participate. Engagement is measured from the moment the representative accepts the conversation.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


CALCULATE(TRUE(),FactConversation[IsOffered], FactConversation[IsAgentAccepted] = "1")

Element Value
Dataverse entities - msdyn_ocliveworkitem
- msdyn_ocsession​
- msdyn_ocsessionparticipantevent
Attributes - systemuser.msdyn_botapplicationid
- msdyn_sessionparticipant.msdyn_joinedon
- msdyn_ocliveworkitem.msdyn_channel
- msdyn_sessionparticipant.systemuser.msdyn_botapplicationid
- msdyn_ocliveworkitem.msdyn_channelinstanceid
Filters - Filter the FactConversations table to​ exclude rows where msdyn_channel is equal to '192350000' and msdyn_channelinstanceid is NULL.
- IsAgentInvolved is used if there's atleast one session with IsAgentSession set to true.
- IsAgentSession is set to true if msdyn_sessionparticipant.systemuser.msdyn_botapplicationid isn't null.​
- IsAgentAcceptedSession is set as follows:​ If systemuser.msdyn_botapplicationid is empty or NULL and msdyn_sessionparticipant.msdyn_joinedon isn't empty, then IsAgentAcceptedSession is 1.​ Otherwise, its 0.​

Abandoned conversations

Applies to Omnichannel real-time dashboards.

A conversation can be abandoned for multiple reasons. For example, a customer might be disconnected or might cancel the call because of a long waiting period, supervisors might forcibly close requests, or automatic system actions might be configured to handle overflow. Abandoned conversations can lead to customer dissatisfaction. A high abandonment rate requires further investigation into operational metrics such as service representative availability and queue distribution.

If an AI agent or IVR handles the customer before it escalates the request to a service representative, this metric is the number of conversations that were abandoned while customers were waiting for a service representative after the AI agent escalated the request. If a conversation is abandoned before an AI agent can be assigned, the system considers the conversation abandoned.

If a conversation is assigned to service representative's queue directly, this metric is calculated as the number of incoming conversations that were abandoned. The conversation direction is Incoming. The channels that the conversation came in through are Messaging and Voice.

DAX query


Abandoned conversations = ​SUMX(FactConversation, IF (FactConversation[IsAbandoned] && FactConversation[StatusCode] == 4 && FactConversation[DirectionCode],1,0)) 

Element Value
Dataverse entities msdyn_ocliveworkitem​, msdyn_ocsession​, msdyn_ocsessionparticipantevent
Attributes - msdyn_ocliveworkitem.msdyn_isagentsession ​
- msdyn_ocliveworkitem.msdyn_channelinstanceid ​
- msdyn_liveworkstream.msdyn_streamsource ​
- msdyn_ocliveworkitem.msdyn_isabandoned ​
- msdyn_ocliveworkitem.statuscode ​
- msdyn_ocliveworkitem.msdyn_isoutbound
Filters - msdyn_ocliveworkitem.msdyn_isagentsession is set to 1.
- Filter the FactConversations table to include only rows from msdyn_ocliveworkitem where msdyn_channelinstanceid is NULL.
- Exclude rows where msdyn_liveworkstream.msdyn_streamsource isn't equal to '192350000'​.
- msdyn_ocliveworkitem.msdyn_isabandoned is 1.
- msdyn_ocliveworkitem.statuscode is 4​.
- Isoutbound is based on msdyn_ocliveworkitem.msdyn_isoutbound not equal to 1.

Conversation first wait time

Applies to Omnichannel real-time dashboard.

This metric is a measure of the time, in seconds, before a service representative responds to a customer's request. In other words, it represents the amount of time that the customer spends waiting for the first response from a service representative. Service representative availability, a high volume of requests, and increased handle time are some factors that can affect customer wait time. A shorter wait time indicates that customers get faster issue resolution and have a better support experience.

If an AI agent or IVR handles the customer before it escalates the issue to a service representative, the calculation is based on the time between the point when the AI agent or IVR escalates the incoming conversation to a service representative and the point when the service representative accepts the conversation. If the customer abandons the conversation, the calculation is based on the time between the point when the AI agent or IVR escalates the conversation to a service representative and the point when the customer disconnects the conversation.

If the customer reaches a service representative queue directly, the calculation is based on the time between the point when the customer creates the request and the point when a service representative accepts the conversation. If the customer abandons the conversation, the calculation is based on the time between the point when the customer creates the request and the point when the customer disconnects the conversation.

This metric is available in two formats: seconds and hh:mm:ss.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Conversation first wait time (sec) =​

SUMX (FactConversation, IF (NOT FactConversation[DirectionCode], FactConversation[ConversationFirstWaitTimeInSeconds],BLANK ()))

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_firstwaitstartedon​
- msdyn_isagentaccepted ​
- msdyn_isoutbound
Filters - msdyn_ocliveworkitem. isagentaccepted is 1.
- msdyn_ocliveworkitem.msdyn_isoutbound != 1
  • Average conversation first wait time: This metric is calculated by dividing the total wait time for customers who are waiting in the queue by the total number of customers who were handled.
  • Longest wait time: This metric is a measure of the longest first wait time among unaccepted incoming conversations.
  • Conversations in queue: The number of conversations waiting for a service representative to be assigned or accept the conversation.

You can use Session wait time metrics to calculate the time spent by customers waiting in individual queues when they're transferred from one service representative to another.

Average conversation first wait time

Applies to Omnichannel historical dashboard.

This metric is calculated by dividing the total queue wait time by the number of handled conversations.

DAX query


Avg. conversation first wait time (sec) =​

    AVERAGEX(FactConversation, IF(NOT FactConversation[DirectionCode],  FactConversation[ConversationFirstWaitTimeInSeconds],BLANK() ))

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_firstwaitstartedon​
- msdyn_isagentaccepted ​
- msdyn_isoutbound
Filters - msdyn_ocliveworkitem. isagentaccepted is 1.
- msdyn_ocliveworkitem.msdyn_isoutbound != 1

Average speed to answer

Applies to Omnichannel real-time and historical dashboards.

This metric measures how quickly the service team responds to customer requests. It is calculated by dividing the total queue wait time (after the issue is escalated from an AI agent to a service representative) by the number of handled conversations. A lower average speed to answer means faster issue resolution and a better customer experience.

For an AI agent conversation, this metric measures the time from when the AI agent escalates the incoming conversation to when a service representative accepts it.

If the conversation enters the service representative queue directly, this metric measures the time from when the request is created to when a representative accepts the conversation.

This metric is available in two formats: seconds and hh:mm:ss.

  • Service level (10 seconds): The percentage of customer conversations where the speed to answer is less than or equal to 10 seconds. The calculation is similar for 20, 30, 40, 60, and 120 seconds.

  • Average speed to answer

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Avg. speed to answer (sec)_FactConversation = ​

CALCULATE (AVERAGE( FactConversation[SpeedToAnswerTime] ),​

    FactConversation[StatusId] = "4",​

    FactConversation[IsAgentAccepted] = "1")​

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_channel ​
- msdyn_channelinstanceid ​
- statuscode
Filters - Filter the FactConversations table to include only rows where msdyn_channel isn't equal to '192350000' and msdyn_channelinstanceid is NULL.
- msdyn_isagentaccepted is 1
- msdyn_ocliveworkitem.statuscode is set to 4

Conversation handle time

Applies to Omnichannel real-time dashboards.

This metric is a measure of the time that service representatives spend actively helping customers and resolving their issues. If multiple service representatives handle a conversation, the time that all the service representatives spend is aggregated. This metric also includes time that service representatives spend wrapping up the conversation after the customer disconnects, and the time spent in updating notes or contact details. However, it excludes time that subject matter experts or other service representatives spend consulting on the conversation.

For chat and digital messaging, a service representative is actively working on a conversation if it's open in the Copilot Service workspace or Contact Service workspace app. When handling multiple conversations, only the time spent on the open tab is factored in the handle time calculation.

For the Voice report, this metric is the sum of total talk time, total hold time, and total wrap-up time or after-call work, divided by the number of calls handled, where:

  • Talk time: The time a service representative spends in actively speaking with the customer.

  • Hold time: The time for which a service representative puts the customer on hold during the interaction.

  • Wrap-up time or after-call work: The time taken to complete any post-call tasks related to the interaction.

  • Total number of calls handled: The total number of customer interactions handled by the service representatives.​

    Screenshot of how average handle time is calculated for voice.

For the Chat report, this metric is the sum of the active chat time and active wrap-up time, divided by the number of chats handled, where:

  • Active chat time: The time a service representative spends in actively chatting with the customer.

  • Active wrap-up time: The time taken to complete any post-chat tasks related to the interaction.

  • Total number of chats handled: The total number of customer interactions handled by the service representatives.

    Screenshot of average handle time for chat

This metric can be viewed in two formats: seconds and hh:mm:ss.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Conversation handle time (sec) = SUM(FactConversation[ConversationHandleTimeInSeconds])

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_ocliveworkitem.msdyn_isagentsession​
- msdyn_ocliveworkitem.msdyn_channelinstanceid​
- msdyn_liveworkstream.msdyn_streamsource
- msdyn_ocliveworkitem.msdyn_conversationhandletimeinseconds​
Filters - Filter the FactConversations table to include only rows where msdyn_isagentsession is equal to 1.​
- Ensure that msdyn_channelinstanceid is NULL.
- Exclude rows where msdyn_streamsource is'192350000'.
- ConversationHandleTimeInSeconds is obtained from msdyn_conversationhandletimeinseconds.

Average conversation handle time

Applies to Omnichannel real-time and Omnichannel historical dashboards.

The average duration of a single customer interaction. This metric represents the total handle time divided by the number of conversations handled. Learn more about voice and chat conversations in Conversation handle time.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Avg. conversation handle time (min)_FactSession = CALCULATE(AVERAGE(FactSession[ConversationActiveTimeInSeconds]) / 60.00 , FILTER(FactSession, FactSession[ConversationStatusId] = "4" && FactSession[ConversationIsAgentAccepted]="1"))

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes msdyn_ocliveworkitem.statuscode
Filters - For Fact Session use following filters:​
- Exclude records from msdyn_ocsessionparticipantevent table where msdyn_eventreason is '192350001' (in-transit records).​ Include records from msdyn_ocsessionparticipantevent table where msdyn_eventtype is '192350001' (hold events).​ Exclude sessions from msdyn_ocsession table where msdyn_sessioncreatedon is empty and msdyn_channel is '192350000' (Entity Records channel).​ Include sessions where msdyn_channelinstanceid is NULL (SMS filter).​ ConversationStatusId is '4'​. ConversationIsAgentAccepted is '1'
- For ActiveTimeInSeconds use the following filter: If ActiveTimeInSeconds is empty, set it to '0'.
- For IsAgentAccepted in DAX use the following filter: If IsAgentAcceptedSession is empty, set it to '0'.
- For IsAgentAcceptedSession in DAX refer to the following DV entities:​ If systemuser.msdyn_botapplicationid is empty or NULL and msdyn_sessionparticipant.msdyn_joinedon isn't empty, set IsAgentAcceptedSession to 1.​ Otherwise, set IsAgentAcceptedSession to 0.

Average conversation hold time

Applies to Omnichannel real-time and Omnichannel historical dashboards.

The average hold time per conversation in seconds. If multiple service representatives handled the conversation, the hold time across all the service representatives is aggregated. This metric is calculated by dividing the total hold time for all conversations by the total number of handled conversations.

There are several reasons why a service representative might put a customer on hold. For example, the service representative might have to gather more information or research an issue, perform tasks that don't require interaction (for example, entering data into a system), or work on an offline task. A long hold time can cause customer frustration and might lead to a poor customer experience.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Avg. conversation hold time (min) = AVERAGE(FactConversation[HoldTime])/60.00

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_eventstarttime ​
- msdyn_eventendtime ​
- msdyn_channel ​
- msdyn_channelinstanceid ​
Filters Filter the FactConversations table to include only rows where msdyn_channel isn't equal to '192350000' and msdyn_channelinstanceid is NULL (SMS filter). Holdtime is calculated based on the duration between msdyn_eventstarttime and msdyn_eventendtime

Average conversation talk time

Applies to Omnichannel real-time and Omnichannel historical dashboards.

The average time, in seconds, that service representatives spent actively conversing with customers on the phone for voice conversations. If multiple service representatives handled the conversation, the conversation talk time is aggregated across all the service representatives. This metric is calculated by dividing the total talk time for all customer requests by the total number of handled conversations.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Avg. conversation talk time (min) = AVERAGE(FactConversation[TalkTime])/60.00

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_eventstarttime ​
- msdyn_eventendtime ​
- msdyn_channel
- msdyn_channelinstanceid
Filters - Filter the FactConversations table to include only rows where msdyn_channel isn't equal to '192350000' and msdyn_channelinstanceid is NULL (SMS filter).
- Talktime is calculated based on the duration between msdyn_eventstarttime and msdyn_eventendtime. ​If HoldTime is NULL, then TalkTime is equal to ActiveTimeInSeconds.​ If HoldTime isn't NULL and ActiveTimeInSeconds isn't NULL, then TalkTime is equal to ActiveTimeInSeconds minus HoldTime.​ If neither of the above conditions are met, then TalkTime is set to 0.
  • Conversation talk time: This metric is calculated based on the total talk time across all conversations.

Average conversation time

Applies to Omnichannel real-time and Omnichannel historical dashboards.

The average time, in seconds, a customer spends with a service representative, including wait time.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Avg. conversation time (min) = ​ 
IF (​

    //If filtered by Conversation status and status is not Closed, show blank​

    ISFILTERED (FactConversation[StatusId] ) && SELECTEDVALUE ( FactConversation[StatusId] ) <> "4",BLANK (),CALCULATE (AVERAGE ( FactConversation[_ConversationTime] ),​

FactConversation[IsOffered],FactConversation[StatusId] = "4”))

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_closedon​
- msdyn_createdon​
- msdyn_channel ​
- msdyn_channelinstanceid
Filters - Filter the FactConversations table to include only rows where msdyn_channel isn't equal to '192350000' and msdyn_channelinstanceid is NULL.
- msdyn_ocliveworkitem.statuscode is set to 4.
- IsAgentSession is set to true. IsAgentInvolved is used if there's atleast one session with IsAgentSession set to true.
- ConversationTimeInSeconds is calculated based on the duration between msdyn_closedon and msdyn_createdon.
- IsAgentAcceptedSession is set as follows:​ If systemuser.msdyn_botapplicationid is empty or NULL.
  • Conversation time: This metric measures the time from when the customer initiates a request to when the service representative wraps up the conversation.

Average conversation wrap-up time

Applies to Omnichannel real-time and Omnichannel historical dashboards.

This metric is a measure of the average time that a service representative spends completing any necessary tasks after the customer disconnects. These tasks might include documenting the conversation, updating notes, or updating the customer's information. This metric measures the time from the start of wrap-up to when the service representative closes the conversation. If multiple representatives handled the conversation, only the last representative's wrap-up time is counted.

This metric can be viewed in two formats: seconds and hh:mm:ss.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Avg. conversation wrap-up time (min) = ​

IF (//If filtered by Conversation status and status is not Closed, show blank​

ISFILTERED ( FactConversation[StatusId] )​

&&SELECTEDVALUE(FactConversation[StatusId] ) <> "4",BLANK (), CALCULATE(DIVIDE(IF(SUM (FactConversation[_WrapupTime] ) = BLANK(),0,SUM(FactConversation[_WrapupTime])),COUNTROWS (FactConversation),​

BLANK ()), FactConversation[IsOffered],​

FactConversation[IsAgentAccepted] = "1"))

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_closedon​
- msdyn_createdon​
- msdyn_channel ​
- msdyn_channelinstanceid
Filters - Filter the FactConversations table to include only rows where msdyn_channel isn't equal to '192350000' and msdyn_channelinstanceid is NULL.
- msdyn_ocliveworkitem.statuscode isn't set to 4.
- IsAgentSession is set to true. IsAgentInvolved is used if there's atleast one session with IsAgentSession set to true.
- IsAgentAcceptedSession is set as follows:​ If systemuser.msdyn_botapplicationid is empty or NULL.​

Active conversations awaiting service representative acceptance

Applies to Omnichannel real-time dashboards.

The number of conversations with service representatives assigned and customers waiting for the service representative to accept and join the conversation. The conversations revert to Open state if the service representative rejects the request.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query

Active conversations awaiting agent acceptance =​

SUMX (FactConversation,​

        IF (FactConversation[statuscode] = 2​

&& (FactConversation[StatusChangeReason]== 192350002 || FactConversation[StateReason] == "Agent assigned, awaiting acceptance"),1,0 ))

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_ocliveworkitem.msdyn_statuschangereason​
- msdyn_ocliveworkitem.msdyn_statereason​
- msdyn_ocliveworkitem.statuscode
Filters - msdyn_ocliveworkitem.msdyn_statuschangereason = 192350002 (AwaitingAgentAcceptance) or msdyn_ocliveworkitem.msdyn_statereason = Agent assigned, awaiting acceptance
-msdyn_ocliveworkitem.statuscode is set to 2.

Active conversations with service representative acceptance

Applies to Omnichannel real-time dashboards.

The total number of active service representative conversations. Includes conversations that were assigned to a service representative, accepted and actively engaged by the representative. This includes all inbound and outbound conversations across all channels (digital, voice, and cases).

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Active conversations with agent acceptance =​

    SUMX (FactConversation,​

        IF (FactConversation[statuscode] = 2&& (FactConversation[StatusChangeReason] == 192350003 ||FactConversation[StateReason] == "In conversation"), 1, 0 ))​

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes - msdyn_ocliveworkitem.msdyn_statuschangereason​
- msdyn_ocliveworkitem.msdyn_statereason​
- msdyn_ocliveworkitem.statuscode
Filters - msdyn_ocliveworkitem.msdyn_statuschangereason = 192350003 (InConversation) or msdyn_ocliveworkitem.msdyn_statereason = "In conversation"​.
- msdyn_ocliveworkitem.statuscode is set to 2​.​

Waiting conversations

Applies to Omnichannel real-time dashboards.

The number of conversations that are currently in a Waiting state.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Waiting conversations =​

    SUMX ( FactConversation, IF ( FactConversation[statuscode] == 3, 1, 0 ) )

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes msdyn_ocliveworkitem.statuscode
Filters msdyn_ocliveworkitem.statuscode is set to 3.​

Wrap-up conversations

Applies to Omnichannel real-time dashboards.

This metric is a count of conversations that are currently in a Wrap-up state.

DAX query and Dataverse reference

The following DAX query and the corresponding Dataverse entities are used in the Power BI semantic model.

DAX query


Wrap-up conversations =    SUMX ( FactConversation, IF ( FactConversation[statuscode] == 5, 1, 0 ) ) 

Element Value
Dataverse entities msdyn_ocliveworkitem
Attributes msdyn_ocliveworkitem.statuscode
Filters msdyn_ocliveworkitem.statuscode is set to 3.​
  • Agents in wrap-up conversations: Number of representatives handling conversations that are in wrap-up state.