Mapowania modelu danych dla raporty analizy w czasie rzeczywistym w aplikacji Obsługa wielokanałowa dla Customer Service
W tym artykule opisano logikę biblioteki Data Analysis Expressions (DAX) dla metryk w czasie rzeczywistym, których można użyć do tworzenia własnej logiki i własnych metryk. Więcej informacji: Odwołanie do funkcji DAX
Aby uzyskać szczegółowe informacje o metrykach w czasie rzeczywistym, przejdź do tematu Używanie metryk obsługi wielokanałowej dla Customer Service
FactConversation
- Porzucone konwersacje
SUMX (
FactConversation,
IF (
FactConversation[IsAbandoned]
&& FactConversation[StatusCode] == 4
&& NOT FactConversation[DirectionCode],
1,
0
)
)
- Współczynnik porzucania
DIVIDE (
SUMX (
FactConversation,
IF (
FactConversation[IsAbandoned]
&& NOT FactConversation[DirectionCode],
1,
0
)
),
SUMX (
FactConversation,
IF ( NOT FactConversation[DirectionCode], 1, BLANK () )
),
BLANK ()
)
- Aktywne konwersacje oczekujące na akceptację agenta
SUMX (
FactConversation,
IF (
FactConversation[statuscode] = 2
&& FactConversation[StatusReason] == "Agent assigned, awaiting acceptance",
1,
0
)
)
- Aktywne konwersacje z akceptacją agenta
SUMX (
FactConversation,
IF (
FactConversation[statuscode] = 2
&& FactConversation[StatusReason] == "In conversation",
1,
0
)
)
- Średni czas pierwszego oczekiwania na rozmowę (s)
AVERAGEX(FactConversation, IF(NOT
FactConversation[DirectionCode], BLANK(),
FactConversation[ConversationFirstWaitTimeInSeconds]
))
- Średni czas zawieszenia konwersacji (s):
AVERAGE(FactConversation[ConversationHoldTimeInSeconds])
- Średni czas mówienia w konwersacji (s):
AVERAGE(FactConversation[ConversationTalkTimeInSeconds])
- Średni czas konwersacji (s):
AVERAGE ( FactConversation[ConversationTimeInSeconds] )
- Średni czas wykonywania działań po konwersacji:
AVERAGE(FactConversation[ConversationWrapUpTimeInSeconds])
- Średni czas obsługi (s):
AVERAGE(FactConversation[ConversationHandleTimeInSeconds])
- Średnia szybkość udzielania odpowiedzi (s)
AVERAGEX (
FactConversation,
IF (
FactConversation[IsAgentAccepted]
&& NOT FactConversation[DirectionCode],
FactConversation[ConversationSpeedToAnswerInSeconds],
BLANK ()
)
)
- Zamknięta konwersacja:
SUMX ( FactConversation, IF ( FactConversation[StatusCode] == 4, 1, 0 ) )
- Średni czas pierwszego oczekiwania na konwersację (s)
SUMX (
FactConversation,
IF (
NOT FactConversation[DirectionCode],
FactConversation[ConversationFirstWaitTimeInSeconds],
BLANK ()
)
)
- Czas obsługi konwersacji (s):
SUM(FactConversation[ConversationHandleTimeInSeconds]
- Konwersacje w kolejce
Conversations in queue =
SUMX (
FactConversation,
IF (
NOT FactConversation[DirectionCode]
&& ( FactConversation[StatusCode] == 1
|| ( FactConversation[StatusCode] == 2
&& FactConversation[StatusReason] == "Agent assigned, awaiting acceptance" ) ),
1,
0
)
)
- Konwersacja przychodząca
SUMX ( FactConversation, IF ( NOT
FactConversation[DirectionCode], 1, 0 ) )
- Najdłuższy czas oczekiwania (s)
AXX(FactConversation, IF(NOT
FactConversation[DirectionCode],
FactConversation[CurrentWaitTimeInSeconds], BLANK()))
- Trwające konwersacje
SUMX ( FactConversation, IF (
FactConversation[IsOngoing], 1, 0 ) )
- Konwersacje otwarte
SUMX ( FactConversation, IF (
FactConversation[statuscode] == 1, 1, 0 ) )
- Poziom usług (10 s)
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 ()
)
- Łączna liczba konwersacji:
COUNTROWS(FactConversation)
- Oczekiwanie na konwersację
SUMX ( FactConversation, IF (
FactConversation[statuscode] == 3, 1, 0 ) )
- Działania po konwersacji
SUMX ( FactConversation, IF (
FactConversation[statuscode] == 5, 1, 0 ) )
FactSession
Aktywne sesje:
SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350001, 1, 0))
Średni czas obsługi sesji (s):
AVERAGE(FactSession[AgentHandlingTimeInSeconds])
Zamknięte sesje:
SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350002, 1, 0))
Sesje z interakcją:
SUMX(FactSession, IF(ISBLANK(FactSession[AgentAcceptedOn]), 0, 1))
Odrzucone sesje:
SUMX(FactSession, IF(FactSession[SessionClosureReasonCode] == 192350001, 1, 0))
Średni czas obsługi sesji (s):
SUM(FactSession[AgentHandlingTimeInSeconds])
Współczynnik odrzuceń sesji
DIVIDE (
SUMX (
FactSession,
IF ( FactSession[SessionClosureReasonCode] == 192350001, 1, 0 )
),
SUMX (
FactSession,
IF ( FactSession[SessionStateCode] == 192350002, 1, BLANK () )
),
BLANK ()
)
- Czas trwania sesji do jej zaakceptowania (s):
SUM(FactSession[TimeToAcceptInSeconds])
- Czas trwania sesji do jej odrzucenia (s):
SUM(FactSession[TimeToRejectInSeconds])
- Współczynnik przekroczeń limitu czasu sesji
DIVIDE (
SUMX (
FactSession,
IF ( FactSession[SessionClosureReasonCode] == 192350002, 1, 0 )
),
SUMX (
FactSession,
IF ( FactSession[SessionStateCode] == 192350002, 1, BLANK () )
),
BLANK ()
)
- Współczynnik transferów sesji
DIVIDE (
SUMX ( FactSession, IF ( FactSession[IsTransferredOut], 1, 0 ) ),
SUMX (
FactSession,
IF ( ISBLANK ( FactSession[AgentAcceptedOn] ), BLANK (), 1 )
),
BLANK ()
)
- Czas oczekiwania w sesji (s):
SUM(FactSession[SessionWaitTimeInSeconds])
- Sesje z przekroczeniem limitu czasu
SUMX(FactSession, IF(FactSession[SessionStateCode] = 192350002 && FactSession[SessionClosureReasonCode] = 192350002, 1, 0))
- Łączna liczba sesji:
COUNTROWS()
- Przeniesione sesje:
SUMX ( FactSession, IF ( FactSession[IsTransferredOut], 1, 0 ) )
FactSessionParticipant
- Liczba uczestników sesji:
COUNTROWS(FactSessionParticipant)
FactAgentStatusHistory
- Czas trwania stanu (min)
CALCULATE (
SUM ( FactAgentStatusHistory[DuringInSeconds] ) / 60.00,
USERELATIONSHIP ( FactAgentStatusHistory[PresenceId], DimAgentPresence[PresenceId] )
)
FactAgentCapacityProfile
- Liczba przypisanych profili dyspozycyjności
SUMX (
FactAgentCapacityProfile,
IF ( NOT RELATED ( DimAgentPresence[BasePresenceStatusId] ) == 192360004, 1, 0 )
)
- Dostępna dyspozycyjność
SUMX (
FactAgentCapacityProfile,
IF (
NOT RELATED ( DimAgentPresence[BasePresenceStatusId] ) == 192360004,
FactAgentCapacityProfile[AvailableProfileUnits],
0
)
)
- Całkowita dyspozycyjność:
SUM ( FactAgentCapacityProfile[DefaultMaxProfileUnits] )
- Łączna użyta dyspozycyjność elementu roboczego:
SUM ( FactAgentCapacityProfile[OccupiedProfileUnits] )
FactAgentCapacityUnit
- Agenci zalogowani
SUMX (
FactAgentCapacityUnit,
IF ( NOT RELATED ( DimAgentPresence[BasePresenceStatusId] ) == 192360004, 1, 0 )
)
- Łączna liczba agentów:
COUNTROWS ( FactAgentCapacityUnit )
- Całkowita dyspozycyjność:
SUM ( FactAgentCapacityUnit[DefaultMaxCapacityUnits] )
- Dostępne jednostki
SUMX (
FactAgentCapacityUnit,
IF (
NOT RELATED ( DimAgentPresence[BasePresenceStatusId] ) == 192360004,
FactAgentCapacityUnit[AvailableCapacityUntis],
0
)
)
- Zajęte jednostki:
SUM ( FactAgentCapacityUnit[OccupiedCapacityUnits] )
FactConversationMessageBlock
- Poziom usługi odpowiedzi agenta (60 s)
DIVIDE (
SUMX (
FactConversationMessageBlock,
IF (
FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour] <= 60,
1,
0
)
),
COUNTROWS ( FactConversationMessageBlock ),
BLANK ()
)
Średni czas odpowiedzi agenta (s):
AVERAGE( FactConversationMessageBlock[AgentReponseTimeInSecondsAdjustedForOperationHour])
Średni czas pierwszej odpowiedzi agenta (s)
AVERAGEX (
FactConversationMessageBlock,
IF (
FactConversationMessageBlock[IsFirstResponseTime],
FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour],
BLANK ()
)
)
- Czas do pierwszej odpowiedzi
DIVIDE (
SUMX (
FactConversationMessageBlock,
IF (
FactConversationMessageBlock[ReponseTimeInSecondsAdjustedForOperationHour] <= 60
&& FactConversationMessageBlock[IsFirstResponseTime],
1,
BLANK ()
)
),
SUMX (
FactConversationMessageBlock,
IF ( FactConversationMessageBlock[IsFirstResponseTime], 1, BLANK () )
),
BLANK ()
)
Zobacz też
Dostosowywanie wyświetlania wizualnego
Modele danych i mapowania raportów dla raportów analiz historycznych w usłudze Customer Service
Omówienie dostosowywania modelu danych
Dostosowanie modeli danych dla raportów analiz historycznych i w czasie rzeczywistym