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


Сопоставление моделей данных для отчетов аналитики в реальном времени в Многоканальном взаимодействии для Customer Service

Область применения: только Dynamics 365 Contact Center — автономная версия и Dynamics 365 Customer Service

Заметка

Информация об обращении применима только к Customer Service.

В этой статье рассматривается логика Data Analysis Expressions (DAX) для получаемых в реальном времени метрик, которую можно использовать для построения логики и создания собственных метрик. Дополнительные сведения: Справочник по функциям DAX

Дополнительные сведения о метриках в реальном времени см. в статье Использование метрик отчета.

FactConversation

  • Прерванные разговоры
    SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[IsAbandoned] 
                && FactConversation[StatusCode] == 4 
                && NOT FactConversation[DirectionCode], 
            1, 
            0 
        ) 
    ) 
  • Коэффициент прерывания
DIVIDE ( 
    SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[IsAbandoned] 
                && NOT FactConversation[DirectionCode], 
            1, 
            0 
        ) 
    ), 
    SUMX ( 
        FactConversation, 
        IF ( NOT FactConversation[DirectionCode], 1, BLANK () ) 
    ), 
    BLANK () 
) 
  • Активные разговоры, ожидающие принятия агентом
SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[statuscode] = 2 
                && FactConversation[StatusReason] == "Agent assigned, awaiting acceptance", 
            1, 
            0 
        ) 
    ) 
  • Активные разговоры, принятые агентом
SUMX ( 
        FactConversation, 
        IF ( 
            FactConversation[statuscode] = 2 
                && FactConversation[StatusReason] == "In conversation", 
            1, 
            0 
        ) 
    ) 
  • Среднее время ожидания разговора (с)
    AVERAGEX(FactConversation, IF(NOT 
FactConversation[DirectionCode], BLANK(),
FactConversation[ConversationFirstWaitTimeInSeconds] 
))

  • Среднее время удержания разговора (с): AVERAGE(FactConversation[ConversationHoldTimeInSeconds])
  • Среднее время говорения в разговоре (с): AVERAGE(FactConversation[ConversationTalkTimeInSeconds])
  • Среднее время разговора (с): AVERAGE ( FactConversation[ConversationTimeInSeconds] )
  • Среднее время завершения разговора: AVERAGE(FactConversation[ConversationWrapUpTimeInSeconds])
  • Среднее время обработки (с): AVERAGE(FactConversation[ConversationHandleTimeInSeconds])
  • Средняя скорость ответа (с)
AVERAGEX ( 
    FactConversation, 
    IF ( 
        FactConversation[IsAgentAccepted] 
            && NOT FactConversation[DirectionCode], 
        FactConversation[ConversationSpeedToAnswerInSeconds], 
        BLANK () 
    ) 
) 
  • Закрытый разговор: SUMX ( FactConversation, IF ( FactConversation[StatusCode] == 4, 1, 0 ) )
  • Время ожидания разговора (с)
SUMX ( 
    FactConversation, 
    IF ( 
        NOT FactConversation[DirectionCode], 
        FactConversation[ConversationFirstWaitTimeInSeconds], 
        BLANK () 
    ) 
) 
  • Время обработки разговора (с): SUM(FactConversation[ConversationHandleTimeInSeconds]
  • Разговоры в очереди
Conversations in queue =  
    SUMX ( 
        FactConversation, 
        IF ( 
            NOT FactConversation[DirectionCode] 
                && ( FactConversation[StatusCode] == 1 
                || ( FactConversation[StatusCode] == 2 
                && FactConversation[StatusReason] == "Agent assigned, awaiting acceptance" ) ), 
            1, 
            0 
        ) 
    )
  • Входящий разговор
SUMX ( FactConversation, IF ( NOT 
FactConversation[DirectionCode], 1, 0 ) )
  • Наибольшее время ожидания (с)
AXX(FactConversation, IF(NOT 
FactConversation[DirectionCode], 
FactConversation[CurrentWaitTimeInSeconds], BLANK())) 
  • Текущие разговоры
SUMX ( FactConversation, IF (
 FactConversation[IsOngoing], 1, 0 ) ) 
  • Открытые разговоры
SUMX ( FactConversation, IF (
 FactConversation[statuscode] == 1, 1, 0 ) )
  • Уровень обслуживания (10 секунд)
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 () 
) 
  • Всего разговоров: COUNTROWS(FactConversation)
  • Ожидание разговоров
SUMX ( FactConversation, IF ( 
FactConversation[statuscode] == 3, 1, 0 ) )
  • Завершение разговоров
 SUMX ( FactConversation, IF ( 
FactConversation[statuscode] == 5, 1, 0 ) )

FactSession

  • Активные сеансы: SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350001, 1, 0))

  • Среднее время обработки сеанса (с): AVERAGE(FactSession[AgentHandlingTimeInSeconds])

  • Закрытые сеансы: SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350002, 1, 0))

  • Проведенные сеансы: SUMX(FactSession, IF(ISBLANK(FactSession[AgentAcceptedOn]), 0, 1))

  • Отклоненные сеансы: SUMX(FactSession, IF(FactSession[SessionClosureReasonCode] == 192350001, 1, 0))

  • Время обработки сеанса (с): SUM(FactSession[AgentHandlingTimeInSeconds])

  • Коэффициент отклонения сеанса

DIVIDE ( 

    SUMX ( 

        FactSession, 

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

    ), 

    SUMX ( 

        FactSession, 

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

    ), 

    BLANK () 

) 
  • Время принятия сеанса (с): SUM(FactSession[TimeToAcceptInSeconds])
  • Время отклонения сеанса (с): SUM(FactSession[TimeToRejectInSeconds])
  • Коэффициент истечения времени ожидания сеансов
DIVIDE ( 

    SUMX ( 

        FactSession, 

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

    ), 

    SUMX ( 

        FactSession, 

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

    ), 

    BLANK () 

) 
  • Коэффициент передачи сеансов
DIVIDE ( 

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

    SUMX ( 

        FactSession, 

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

    ), 

    BLANK () 

) 
  • Время ожидания сеанса (с): SUM(FactSession[SessionWaitTimeInSeconds])
  • Сеансы с истекшим временем ожидания
SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350002 && FactSession[SessionClosureReasonCode] = 192350002, 1, 0))
  • Всего сеансов: COUNTROWS()
  • Переданные сеансы: SUMX ( FactSession, IF ( FactSession[IsTransferredOut], 1, 0 ) )

FactSessionParticipant

  • Количество участников сеанса: COUNTROWS(FactSessionParticipant)

FactAgentStatusHistory

  • Длительность статуса (мин)
CALCULATE ( 

    SUM ( FactAgentStatusHistory[DuringInSeconds] ) / 60.00, 

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

) 

FactAgentCapacityProfile

  • Количество профилей назначенной емкости
SUMX ( 

        FactAgentCapacityProfile, 

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

    ) 
  • Доступная емкость
SUMX ( 

        FactAgentCapacityProfile, 

        IF ( 

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

            FactAgentCapacityProfile[AvailableProfileUnits], 

            0 

        ) 

    )
  • Общая емкость: SUM ( FactAgentCapacityProfile[DefaultMaxProfileUnits] )
  • Общая используемая емкость рабочих элементов: SUM ( FactAgentCapacityProfile[OccupiedProfileUnits] )

FactAgentCapacityUnit

  • Агенты, вошедшие в систему
SUMX ( 

        FactAgentCapacityUnit, 

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

    ) 
  • Общее количество агентов: COUNTROWS ( FactAgentCapacityUnit )
  • Общая емкость: SUM ( FactAgentCapacityUnit[DefaultMaxCapacityUnits] )
  • Доступные единицы
SUMX ( 

        FactAgentCapacityUnit, 

        IF ( 

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

            FactAgentCapacityUnit[AvailableCapacityUnits], 

            0 

        ) 

    )
  • Занятые единицы: SUM ( FactAgentCapacityUnit[OccupiedCapacityUnits] )

FactConversationMessageBlock

  • Уровень обслуживания ответа агента (60 секунд)
DIVIDE ( 

    SUMX ( 

        FactConversationMessageBlock, 

        IF ( 

            FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour] <= 60, 

            1, 

            0 

        ) 

    ), 

    COUNTROWS ( FactConversationMessageBlock ), 

    BLANK () 

)
  • Среднее время ответа агента (с): AVERAGE( FactConversationMessageBlock[AgentReponseTimeInSecondsAdjustedForOperationHour])

  • Среднее время первого ответа (с)

AVERAGEX ( 

    FactConversationMessageBlock, 

    IF ( 

        FactConversationMessageBlock[IsFirstResponseTime], 

        FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour], 

        BLANK () 

    ) 

) 
  • Время первого ответа
DIVIDE ( 

    SUMX ( 

        FactConversationMessageBlock, 

        IF ( 

            FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour] <= 60 

                && FactConversationMessageBlock[IsFirstResponseTime], 

            1, 

            BLANK () 

        ) 

    ), 

    SUMX ( 

        FactConversationMessageBlock, 

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

    ), 

    BLANK () 

)

Настройка визуального отображения
Модели данных и сопоставления отчетов для отчетов исторической аналитики в Customer Service
Обзор настройки моделей данных
Настройка моделей данных для отчетов исторической аналитики и аналитики в реальном времени