Partage via


Mappage du modèle de données pour les rapports d’analyse en temps réel dans Omnicanal pour Customer Service

Cet article décrit la logique DAX (Data Analysis Expressions) pour les mesures en temps réel, que vous pouvez utiliser pour créer votre logique et créer vos propres mesures. Informations complémentaires : Référence des fonctions DAX

Pour plus de détails sur les mesures en temps réel, accédez à Utiliser les mesures Omnicanal pour Customer Service

FactConversation

  • Conversations abandonnées
    SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[IsAbandoned] 
                && FactConversation[StatusCode] == 4 
                && NOT FactConversation[DirectionCode], 
            1, 
            0 
        ) 
    ) 
  • Taux d’abandon
DIVIDE ( 
    SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[IsAbandoned] 
                && NOT FactConversation[DirectionCode], 
            1, 
            0 
        ) 
    ), 
    SUMX ( 
        FactConversation, 
        IF ( NOT FactConversation[DirectionCode], 1, BLANK () ) 
    ), 
    BLANK () 
) 
  • Conversations actives en attente d’acceptation par l’agent
SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[statuscode] = 2 
                && FactConversation[StatusReason] == "Agent assigned, awaiting acceptance", 
            1, 
            0 
        ) 
    ) 
  • Conversations actives avec acceptation par l’agent
SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[statuscode] = 2 
                && FactConversation[StatusReason] == "In conversation", 
            1, 
            0 
        ) 
    ) 
  • Temps d’attente de la première conversation en moyenne (sec)
    AVERAGEX(FactConversation, IF(NOT 
FactConversation[DirectionCode], BLANK(),
FactConversation[ConversationFirstWaitTimeInSeconds] 
))

  • Temps moyen de suspension de la conversation (sec) : AVERAGE(FactConversation[ConversationHoldTimeInSeconds])
  • Temps moyen de parole de la conversation (sec) : AVERAGE(FactConversation[ConversationTalkTimeInSeconds])
  • Durée moyenne de la conversation (sec) : AVERAGE ( FactConversation[ConversationTimeInSeconds] )
  • Temps moyen de conclusion de la conversation (min). : AVERAGE(FactConversation[ConversationWrapUpTimeInSeconds])
  • Temps moyen de gestion (sec) : AVERAGE(FactConversation[ConversationHandleTimeInSeconds])
  • Vitesse moyenne du temps de réponse (sec)
AVERAGEX ( 
    FactConversation, 
    IF ( 
        FactConversation[IsAgentAccepted] 
            && NOT FactConversation[DirectionCode], 
        FactConversation[ConversationSpeedToAnswerInSeconds], 
        BLANK () 
    ) 
) 
  • Conversation fermée : SUMX ( FactConversation, IF ( FactConversation[StatusCode] == 4, 1, 0 ) )
  • Temps d’attente de la première conversation (sec)
SUMX ( 
    FactConversation, 
    IF ( 
        NOT FactConversation[DirectionCode], 
        FactConversation[ConversationFirstWaitTimeInSeconds], 
        BLANK () 
    ) 
) 
  • Temps de gestion de la conversation (sec) : SUM(FactConversation[ConversationHandleTimeInSeconds]
  • Conversations en file d’attente
Conversations in queue =  
    SUMX ( 
        FactConversation, 
        IF ( 
            NOT FactConversation[DirectionCode] 
                && ( FactConversation[StatusCode] == 1 
                || ( FactConversation[StatusCode] == 2 
                && FactConversation[StatusReason] == "Agent assigned, awaiting acceptance" ) ), 
            1, 
            0 
        ) 
    )
  • Conversation entrante
SUMX ( FactConversation, IF ( NOT 
FactConversation[DirectionCode], 1, 0 ) )
  • Temps d’attente le plus long (sec)
AXX(FactConversation, IF(NOT 
FactConversation[DirectionCode], 
FactConversation[CurrentWaitTimeInSeconds], BLANK())) 
  • Conversations en cours
SUMX ( FactConversation, IF (
 FactConversation[IsOngoing], 1, 0 ) ) 
  • Conversations en cours
SUMX ( FactConversation, IF (
 FactConversation[statuscode] == 1, 1, 0 ) )
  • Contrats de niveau de service (10 secondes)
DIVIDE ( 
    SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[ConversationFirstWaitTimeInSeconds] <= 10 
                && FactConversation[IsAgentAccepted] 
                && NOT FactConversation[DirectionCode], 
            1, 
            0 
        ) 
    ), 
    SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[IsAgentAccepted] 
                && NOT FactConversation[DirectionCode], 
            1, 
            0 
        ) 
    ), 
    BLANK () 
) 
  • Nombre total de conversations : COUNTROWS(FactConversation)
  • Conversations en attente
SUMX ( FactConversation, IF ( 
FactConversation[statuscode] == 3, 1, 0 ) )
  • Conclusion des conversations
 SUMX ( FactConversation, IF ( 
FactConversation[statuscode] == 5, 1, 0 ) )

FactSession

  • Sessions actives : SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350001, 1, 0))

  • Temps moyen de gestion de la session (sec) : AVERAGE(FactSession[AgentHandlingTimeInSeconds])

  • Sessions fermées : SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350002, 1, 0))

  • Sessions avec interaction : SUMX(FactSession, IF(ISBLANK(FactSession[AgentAcceptedOn]), 0, 1))

  • Sessions rejetées : SUMX(FactSession, IF(FactSession[SessionClosureReasonCode] == 192350001, 1, 0))

  • Temps de gestion de la session (sec) : SUM(FactSession[AgentHandlingTimeInSeconds])

  • Taux de rejet de la session

DIVIDE ( 

    SUMX ( 

        FactSession, 

        IF ( FactSession[SessionClosureReasonCode] == 192350001, 1, 0 ) 

    ), 

    SUMX ( 

        FactSession, 

        IF ( FactSession[SessionStateCode] == 192350002, 1, BLANK () ) 

    ), 

    BLANK () 

) 
  • Temps de session pour accepter (sec) : SUM(FactSession[TimeToAcceptInSeconds])
  • Temps de session pour rejeter (sec) : SUM(FactSession[TimeToRejectInSeconds])
  • Taux d’expiration de la session
DIVIDE ( 

    SUMX ( 

        FactSession, 

        IF ( FactSession[SessionClosureReasonCode] == 192350002, 1, 0 ) 

    ), 

    SUMX ( 

        FactSession, 

        IF ( FactSession[SessionStateCode] == 192350002, 1, BLANK () ) 

    ), 

    BLANK () 

) 
  • Taux de transfert de session
DIVIDE ( 

    SUMX ( FactSession, IF ( FactSession[IsTransferredOut], 1, 0 ) ), 

    SUMX ( 

        FactSession, 

        IF ( ISBLANK ( FactSession[AgentAcceptedOn] ), BLANK (), 1 ) 

    ), 

    BLANK () 

) 
  • Temps d’attente de la session (sec) : SUM(FactSession[SessionWaitTimeInSeconds])
  • Sessions expirées
SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350002 && FactSession[SessionClosureReasonCode] = 192350002, 1, 0))
  • Nombre total de sessions : COUNTROWS()
  • Sessions transférées : SUMX ( FactSession, IF ( FactSession[IsTransferredOut], 1, 0 ) )

FactSessionParticipant

  • Nombre de participants à la session : COUNTROWS(FactSessionParticipant)

FactAgentStatusHistory

  • Durée du statut (minutes)
CALCULATE ( 

    SUM ( FactAgentStatusHistory[DuringInSeconds] ) / 60.00, 

    USERELATIONSHIP ( FactAgentStatusHistory[PresenceId], DimAgentPresence[PresenceId] ) 

) 

FactAgentCapacityProfile

  • Nombre de profils de capacité attribués
SUMX ( 

        FactAgentCapacityProfile, 

        IF ( NOT RELATED ( DimAgentPresence[BasePresenceStatusId] ) == 192360004, 1, 0 ) 

    ) 
  • Capacité disponible
SUMX ( 

        FactAgentCapacityProfile, 

        IF ( 

            NOT RELATED ( DimAgentPresence[BasePresenceStatusId] ) == 192360004, 

            FactAgentCapacityProfile[AvailableProfileUnits], 

            0 

        ) 

    )
  • Capacité totale : SUM ( FactAgentCapacityProfile[DefaultMaxProfileUnits] )
  • Capacité totale des éléments de travail utilisés : SUM ( FactAgentCapacityProfile[OccupiedProfileUnits] )

FactAgentCapacityUnit

  • Agents connectés
SUMX ( 

        FactAgentCapacityUnit, 

        IF ( NOT RELATED ( DimAgentPresence[BasePresenceStatusId] ) == 192360004, 1, 0 ) 

    ) 
  • Total des agents : COUNTROWS ( FactAgentCapacityUnit )
  • Capacité totale : SUM ( FactAgentCapacityUnit[DefaultMaxCapacityUnits] )
  • Unités disponibles
SUMX ( 

        FactAgentCapacityUnit, 

        IF ( 

            NOT RELATED ( DimAgentPresence[BasePresenceStatusId] ) == 192360004, 

            FactAgentCapacityUnit[AvailableCapacityUntis], 

            0 

        ) 

    )
  • Unités occupées : SUM ( FactAgentCapacityUnit[OccupiedCapacityUnits] )

FactConversationMessageBlock

  • Niveau de service de réponse de l’agent (60 secondes)
DIVIDE ( 

    SUMX ( 

        FactConversationMessageBlock, 

        IF ( 

            FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour] <= 60, 

            1, 

            0 

        ) 

    ), 

    COUNTROWS ( FactConversationMessageBlock ), 

    BLANK () 

)
  • Temps moyen de réponse de l’agent (sec) : AVERAGE( FactConversationMessageBlock[AgentReponseTimeInSecondsAdjustedForOperationHour])

  • Temps moyen de première réponse de l’agent (sec)

AVERAGEX ( 

    FactConversationMessageBlock, 

    IF ( 

        FactConversationMessageBlock[IsFirstResponseTime], 

        FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour], 

        BLANK () 

    ) 

) 
  • Premier temps de réponse
DIVIDE ( 

    SUMX ( 

        FactConversationMessageBlock, 

        IF ( 

            FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour] <= 60 

                && FactConversationMessageBlock[IsFirstResponseTime], 

            1, 

            BLANK () 

        ) 

    ), 

    SUMX ( 

        FactConversationMessageBlock, 

        IF ( FactConversationMessageBlock[IsFirstResponseTime], 1, BLANK () ) 

    ), 

    BLANK () 

)

Voir aussi

Personnaliser l’affichage visuel
Modèles de données et mappages de rapports pour les rapports d’analyse historiques dans Customer Service
Présentation de la personnalisation du modèle de données
Personnaliser les modèles de données des rapports d’analyse historiques et en temps réel