You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 67 Next »

Supervisor - Header Einstellungen

VariableWert
$SERVICE_LEVEL_SECONDS

Supervisor - Echtzeitstatistik

QuelleQuery

varCallData

(CACHE)

DataCache_AcdGroups_RealtimeVarCallData.sql
Eingrenzung
WHERE ( AcdGroupsID = $ACDGROUPSID )
AND
( bOutbound = 0 );
BedeutungEchtzeitanrufe die in der jeweilgen ACD Gruppe sind.
Zwischenberechnungen
AcdSupervisor.Declarations.Realtime.Totals.xhtml

Zähler pro Gruppe

ÜberschriftBerechnungBedeutung

Akt. Anrufe

COUNT(*) AS ActCalls

Ausgabe: actCalls

Anzahl der Anrufe die aktuell in der jeweiligen ACD Gruppe sind.
Vor Queue
IFNULL ( SUM( CASE AcdCallStatesID
WHEN 0 THEN 1
WHEN 1 THEN 1
WHEN 2 THEN 1
WHEN 3 THEN 1
WHEN 9 THEN 1
WHEN 10 THEN 1
ELSE 0
END
), 0 ) AS PreQueueCalls,

Ausgabe: preQueueCalls

Alle Anrufe die in einer der folgenden Anrufstati sind:

  • Gruppenanfang
  • Ansage 1
  • Routing Applikation (nur Rückwärtskompatibilität)
  • Ansage 2
  • Tarifansage
  • Gesprächsaufzeichnungsansage

 

In Queue
IFNULL ( SUM( CASE AcdCallStatesID
WHEN 4 THEN 1
WHEN 8 THEN 1
ELSE 0
END
), 0 ) AS InQueueCalls,

Ausgabe: inQueueCalls

Alle Anrufe die in einer der folgenden Anrufstati sind:

  • Warteschleife
  • Warteschleife (Prio) - Weiterleitung in einer Gruppe von einem Agenten aus.

 

Servicelevel
IFNULL( SUM( CASE 
WHEN $SERVICE_LEVEL_SECONDS < 1 THEN 1
WHEN STRFTIME( '%s', dtAcdFirstAgentConnect )
- STRFTIME( '%s', dtAcdFirstGroupStart )
< $SERVICE_LEVEL_SECONDS THEN 1
ELSE 0
 END 
), 0 ) AS InServiceCalls,

Ausgabe:

#{item.actCalls eq 0 ? 0 : item.inServiceCalls * 100 / item.actCalls}

Bezogen auf die Zeitdifferenz zwischen Eintritt in die erste ACD Gruppe sowie erste erfolgreiche Verbindung mit einem Agenten, wenn dieser weniger ist als die eingestellten $SERVICE_LEVEL_SECONDS, wird der Anruf als "In Service" betrachtet.

Alle anderen Anrufe werden als "Nicht in Service" betrachtet.

Die Zahl der "In Service" Anrufe wird in Relation zur Gesamtzahl der Anrufe als Prozentzahl ausgegeben.

Erreichbarkeit
IFNULL( SUM( CASE 
 WHEN dtAcdAgentConnect IS NULL THEN 0
 ELSE 1
 END 
 ), 0 ) AS AgentCalls,
Ausgabe:
#{item.actCalls eq 0 ? 0 : item.agentCalls * 100 / item.actCalls}

Ein Anruf wird als Agentenanruf gezählt, wenn es in der aktuellen ACD Gruppe mit einem Agenten verbunden wird.

Die Zahl der "Agentenanrufe" wird in Relation zur Gesamtzahl der Anrufe als Prozentzahl ausgegeben.

Last-Agent %
IFNULL ( SUM( CASE bAcdFirstAgentConnectLastAgent
WHEN 1 THEN 1
ELSE 0
END
), 0 ) AS LastAgentCalls,

Ausgabe:

#{item.actCalls eq 0 ? 0 : item.lastAgentCalls * 100 / item.actCalls}

Die Kennzeichnung bAcdFirstAgentConnectLastAgent wird einem Gespräch zugeordnet wenn der Last-Agent Algorithmus erfolgreich dem Anrufer mit dem Last-Agent verbunden hat.

Die Zahl der "Last Agent Anrufe" wird in Relation zur Gesamtzahl der Anrufe als Prozentzahl ausgegeben.

Agentenanrufe
IFNULL( SUM( CASE 
WHEN dtAcdAgentConnect IS NULL THEN 0
ELSE 1
END
), 0 ) AS AgentCalls,

Ausgabe: agentCalls

Ein Anruf wird als Agentenanruf gezählt, wenn es in der aktuellen ACD Gruppe mit einem Agenten verbunden wird.
Agentenanrufe (↑)
IFNULL( SUM( CASE 
WHEN dtAcdAgentConnect IS NULL THEN 0
WHEN nSkillAfterCorrection > nSkillReal THEN 1
ELSE 0
END
), 0 ) AS AgentCallsUpSkill,

Ausgabe: agentCallsUpSkill

Wenn ein Anruf an einem Agenten verteilt wird, der eine Skillkorrektur nach Oben hat, wird der Anruf in diese Spalte gezählt.
Agentenanrufe (•)
IFNULL( SUM( CASE 
WHEN dtAcdAgentConnect IS NULL THEN 0
WHEN nSkillAfterCorrection = nSkillReal THEN 1
ELSE 0
END
), 0 ) AS AgentCallsSameSkill,

Ausgabe: agentCallsSameSkill

Wenn ein Anruf an einem Agenten verteilt wird, der keine Skillkorrektur hat, wird der Anruf in diese Spalte gezählt.
Agentenanrufe (↓)
IFNULL( SUM( CASE 
WHEN dtAcdAgentConnect IS NULL THEN 0
WHEN nSkillAfterCorrection < nSkillReal THEN 1
ELSE 0
END
), 0 ) AS AgentCallsDownSkill,

Ausgabe: agentCallsDownSkill

Wenn ein Anruf an einem Agenten verteilt wird, der eine Skillkorrektur nach Unten hat, wird der Anruf in diese Spalte gezählt.
Anrufe in Servicelevel
IFNULL( SUM( CASE 
WHEN $SERVICE_LEVEL_SECONDS < 1 THEN 1
WHEN STRFTIME( '%s', dtAcdFirstAgentConnect )
- STRFTIME( '%s', dtAcdFirstGroupStart )
< $SERVICE_LEVEL_SECONDS THEN 1
ELSE 0
END
), 0 ) AS InServiceCalls,

Ausgabe: inServiceCalls

Bezogen auf die Zeitdifferenz zwischen Eintritt in die erste ACD Gruppe sowie erste erfolgreiche Verbindung mit einem Agenten, wenn dieser weniger ist als die eingestellten $SERVICE_LEVEL_SECONDS, wird der Anruf als "In Service" betrachtet.

Alle anderen Anrufe werden als "Nicht in Service" betrachtet.

Die Zahl der "In Service" Anrufe wird als Zahl ausgegeben.

Last-Agent Anrufe
IFNULL ( SUM( CASE bAcdFirstAgentConnectLastAgent
WHEN 1 THEN 1
ELSE 0
END
), 0 ) AS LastAgentCalls,

Ausgabe: lastAgentCalls

Die Kennzeichnung bAcdFirstAgentConnectLastAgent wird einem Gespräch zugeordnet wenn der Last-Agent Algorithmus erfolgreich dem Anrufer mit dem Last-Agent verbunden hat.

Die Zahl der "Last Agent Anrufe" wird ausgegeben.

Ø Wartezeit

IFNULL( SUM( CASE
WHEN dtAcdFirstAgentConnect IS NOT NULL AND dtAcdFirstGroupStart IS NOT NULL THEN STRFTIME( '%s', dtAcdFirstAgentConnect ) - STRFTIME( '%s', dtAcdFirstGroupStart )
WHEN dtAcdGroupActionStart IS NOT NULL AND dtAcdFirstGroupStart IS NOT NULL THEN STRFTIME( '%s', dtAcdGroupActionStart ) - STRFTIME( '%s', dtAcdFirstGroupStart )
WHEN dtAcdFirstGroupStart IS NOT NULL THEN STRFTIME( '%s', DATETIME( 'now', 'localtime' ) ) - STRFTIME( '%s', dtAcdFirstGroupStart )
ELSE 0
END
), 0 ) AS ActTotalWaitingTime,

Ausgabe:

#{item.actCalls ne 0 ? item.actTotalWaitingTime / item.actCalls : 0}

Wenn der Anruf mit einem Agenten verbunden ist, wird die Zeit zwischen erster Gruppeneintritt und erste Verbindung mit einem Agenten als Wartezeit gemessen.

Wenn der Anruf aus der Queue ausgeleitet wird um beispielsweise eine Voice-Mail aufzuzeichnen, dann wird die Zeit zwischen erster Gruppeneintritt und Ausführung der Regel gemessen.

Ansonsten wird die Zeit zwischen Eintritt in die erste ACD Gruppe und aktuelle Urhzeit gemessen.

Diese Zeit entspricht die Wartezeit des Anrufers seit Eintritt in die erste ACD Gruppe.

Diese Zahl wird durch die Anzahl der aktuellen Anrufe geteilt und als durchschnittliche Zeit ausgegeben.

Max. Wartezeit

IFNULL( MAX( CASE
WHEN dtAcdFirstAgentConnect IS NOT NULL AND dtAcdFirstGroupStart IS NOT NULL THEN STRFTIME( '%s', dtAcdFirstAgentConnect ) - STRFTIME( '%s', dtAcdFirstGroupStart )
WHEN dtAcdGroupActionStart IS NOT NULL AND dtAcdFirstGroupStart IS NOT NULL THEN STRFTIME( '%s', dtAcdGroupActionStart ) - STRFTIME( '%s', dtAcdFirstGroupStart )
WHEN dtAcdFirstGroupStart IS NOT NULL THEN STRFTIME( '%s', DATETIME( 'now', 'localtime' ) ) - STRFTIME( '%s', dtAcdFirstGroupStart )
ELSE 0
END
), 0 ) AS ActMaxWaitingTime,

Ausgabe: actMaxWaitingTime

Dieser Wert ist das Maximum aller Wartezeiten die für die Durschnittsberechnung Ø Wartezeit genutzt werden.
Ø Queuezeit

IFNULL( SUM( CASE
WHEN AcdCallStatesID IN ( 4, 8 ) THEN
CASE
WHEN dtAcdFirstAgentConnect IS NOT NULL AND dtAcdFirstQueueStart IS NOT NULL THEN STRFTIME( '%s', dtAcdFirstAgentConnect ) - STRFTIME( '%s', dtAcdFirstQueueStart )
WHEN dtAcdFirstQueueStart IS NOT NULL THEN STRFTIME( '%s', DATETIME( 'now', 'localtime' ) ) - STRFTIME( '%s', dtAcdFirstGroupStart )
ELSE 0
END
ELSE 0
END
), 0 ) AS ActTotalQueueTime,

Ausgabe:

#{item.inQueueCalls ne 0 ? item.actTotalQueueTime / item.inQueueCalls : 0}

Für alle Anrufe, die aktuell in der ACD Warteschleife sind:

Wenn der Anruf mit einem Agenten verbunden ist, wird die Zeit zwischen erster Eintritt in die erste ACD Warteschleife und erste Verbindung mit einem Agenten als Queuezeit gemessen.

Ansonsten wird die Zeit zwischen Eintritt in die erste ACD Warteschleife und aktuelle Urhzeit gemessen.

Diese Zeit entspricht die Queuezeit des Anrufers seit Eintritt in die erste ACD Warteschleife.

Diese Zahl wird durch die Anzahl der aktuellen Anrufe geteilt und als durchschnittliche Zeit ausgegeben.

Max. Queuezeit

IFNULL( MAX( CASE
WHEN AcdCallStatesID IN ( 4, 8 ) THEN
CASE
WHEN dtAcdFirstAgentConnect IS NOT NULL AND dtAcdFirstQueueStart IS NOT NULL THEN STRFTIME( '%s', dtAcdFirstAgentConnect ) - STRFTIME( '%s', dtAcdFirstQueueStart )
WHEN dtAcdFirstQueueStart IS NOT NULL THEN STRFTIME( '%s', DATETIME( 'now', 'localtime' ) ) - STRFTIME( '%s', dtAcdFirstGroupStart )
ELSE 0
END
ELSE 0
END
), 0 ) AS ActMaxQueueTime

Ausgabe: actMaxQueueTime

Für alle Anrufe, die aktuell in der ACD Warteschleife sind:

 Dieser Wert ist das Maximum aller Queuezeiten die für die Durschnittsberechnung Ø Queuezeit genutzt werden.

Summenzeile

ÜberschriftBerechnungBedeutung

Akt. Anrufe

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_ActCalls"
value="#{realtimeGroupDataBean.sumOfColumn('ActCalls')}"
scope="request"/>

Ausgabe:

#{realtimeGroupDataBean_sumOfColumn_ActCalls}

Die Gesamtzahl der Spalte "Akt. Anrufe" aus allen angezeigten Datenreihen.
Vor Queue

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_PreQueueCalls"
value="#{realtimeGroupDataBean.sumOfColumn('PreQueueCalls')}"
scope="request"/>

Ausgabe:

#{realtimeGroupDataBean_sumOfColumn_PreQueueCalls}

Die Gesamtzahl der Spalte "Vor Queue" aus allen angezeigten Datenreihen.

In Queue

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_InQueueCalls"
value="#{realtimeGroupDataBean.sumOfColumn('InQueueCalls')}"
scope="request"/>

Ausgabe:

#{realtimeGroupDataBean_sumOfColumn_InQueueCalls}

Die Gesamtzahl der Spalte "In Queue" aus allen angezeigten Datenreihen.

 

Servicelevel

Berechnung:

<c:set var="realtimeGroupDataBean_InServicePercent"
value="#{jt:safePercentage( realtimeGroupDataBean_sumOfColumn_InServiceCalls, realtimeGroupDataBean_sumOfColumn_ActCalls )}"
scope="request"/>

Ausgabe:

#{realtimeGroupDataBean_InServicePercent}

Die Summe der Spalte "Anrufe in Servicelevel" für alle angezeigte Datenreihen, geteilt durch die Summe der Spalte "Akt. Anrufe" als Prozentzahl ausgegeben.

Erreichbarkeit

Berechnung:

<c:set var="realtimeGroupDataBean_AvailabilityPercent"
value="#{jt:safePercentage( realtimeGroupDataBean_sumOfColumn_AgentCalls, realtimeGroupDataBean_sumOfColumn_ActCalls )}"
scope="request"/>

Ausgabe:

#{realtimeGroupDataBean_AvailabilityPercent}

Die Summe der Spalte "Agentenanrufe" für alle angezeigte Datenreihen, geteilt durch die Summe der Spalte "Akt. Anrufe" als Prozentzahl ausgegeben.
Last-Agent %

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_LastAgentCalls"
value="#{realtimeGroupDataBean.sumOfColumn('LastAgentCalls')}"
scope="request"/>

Ausgabe:

#{ ( realtimeGroupDataBean_sumOfColumn_ActCalls eq 0 ) ? 0 : realtimeGroupDataBean_sumOfColumn_LastAgentCalls * 100 / realtimeGroupDataBean_sumOfColumn_ActCalls}

Die Summe der Spalte "Last-Agent Anrufe" für alle angezeigte Datenreihen, geteilt durch die Summe der Spalte "Akt. Anrufe" als Prozentzahl ausgegeben.
Agentenanrufe

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_AgentCalls"
value="#{realtimeGroupDataBean.sumOfColumn('AgentCalls')}"
scope="request"/>

Anzeige:

#{realtimeGroupDataBean_sumOfColumn_AgentCalls}

Die Summe der Spalte "Agentenanrufe" für alle angezeigte Datenreihen.
Agentenanrufe (↑)

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_AgentCallsUpSkill"
value="#{realtimeGroupDataBean.sumOfColumn('AgentCallsUpSkill')}"
scope="request"/>

Anzeige:

#{realtimeGroupDataBean_sumOfColumn_AgentCallsUpSkill}

Die Summe der Spalte "Agentenanrufe (↑)" für alle angezeigte Datenreihen.
Agentenanrufe (•)

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_AgentCallsSameSkill"
value="#{realtimeGroupDataBean.sumOfColumn('AgentCallsSameSkill')}"
scope="request"/>

Anzeige:

#{realtimeGroupDataBean_sumOfColumn_AgentCallsSameSkill}

Die Summe der Spalte "Agentenanrufe (•)" für alle angezeigte Datenreihen.
Agentenanrufe (↓)

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_AgentCallsDownSkill"
value="#{realtimeGroupDataBean.sumOfColumn('AgentCallsDownSkill')}"
scope="request"/>

Anzeige:

#{realtimeGroupDataBean_sumOfColumn_AgentCallsDownSkill}

Die Summe der Spalte "Agentenanrufe (↓)" für alle angezeigte Datenreihen.
Anrufe in Servicelevel

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_InServiceCalls"
value="#{realtimeGroupDataBean.sumOfColumn('InServiceCalls')}"
scope="request"/>

Anzeige:

#{realtimeGroupDataBean_sumOfColumn_InServiceCalls}

Die Summe der Spalte "Anrufe in Servicelevel" für alle angezeigte Datenreihen.
Last-Agent Anrufe

Berechnung:

<c:set var="realtimeGroupDataBean_sumOfColumn_LastAgentCalls"
value="#{realtimeGroupDataBean.sumOfColumn('LastAgentCalls')}"
scope="request"/>

Anzeige:

#{realtimeGroupDataBean_sumOfColumn_LastAgentCalls}

Die Summe der Spalte "Last-Agent Anrufe" für alle angezeigte Datenreihen.
Ø Wartezeit

Anzeige:

#{ ( realtimeGroupDataBean_sumOfColumn_ActCalls eq 0 ) ? 0 : supervisorRealtimeGroupData.sumOfColumn('ActTotalWaitingTime') / realtimeGroupDataBean_sumOfColumn_ActCalls }

Die Summe der Spalte 'ActTotalWaitingTime' (siehe Berechnung für Feld "Ø Wartezeit"), geteilt durch die Summe der Spalte "Akt. Anrufe".
Max. Wartezeit

Anzeige:

#{supervisorRealtimeGroupData.maxOfColumn('ActMaxWaitingTime')}

Der Maximum Wert der Spalte "Max. Wartezeit".
Ø Queuezeit

Anzeige:

#{ ( realtimeGroupDataBean_sumOfColumn_InQueueCalls eq 0 ) ? 0 : supervisorRealtimeGroupData.sumOfColumn('ActTotalQueueTime') / realtimeGroupDataBean_sumOfColumn_InQueueCalls }

Die Summe der Spalte 'ActTotalQueueTime' (siehe Berechnung für Feld "Ø Queuezeit"), geteilt durch die Summe der Spalte "In Queue".
Max. Queuezeit

Anzeige:

#{supervisorRealtimeGroupData.maxOfColumn('ActMaxQueueTime')}

Der Maximum Wert der Spalte "Max. Queuezeit".

Supervisor - Agenten

Zähler pro Gruppe

QuelleQuery

AcdAgentGroupMapping, AcdAgentGroupMappingTypes, Users, AcdAgentStatus, varCallData

(CACHE)

DataCache_AcdGroups_RealtimeAgentData.sql
Eingrenzung

FROM AcdAgentGroupMapping
JOIN AcdAgentGroupMappingTypes
ON AcdAgentGroupMapping.AcdAgentGroupMappingTypesID = AcdAgentGroupMappingTypes.ID
JOIN Users
ON AcdAgentGroupMapping.UsersID = Users.ID
JOIN AcdAgentStatus
ON Users.AcdAgentStatusID = AcdAgentStatus.ID
LEFT JOIN varCallData
ON Users.varCallDataID = varCallData.ID
WHERE ( AcdAgentGroupMapping.AcdGroupsID = $ACDGROUPSID )
AND
( bInvisible = 0 );

BedeutungZähler für Agenten und Agentenanrufe. Nicht sichtbare Agenten werden in der gesamten Berechnung ausgeblendet.
ZwischenberechnungAcdSupervisor.Declarations.Realtime.Totals.xhtml
ÜberschriftBerechnungBedeutung

Angem.

IFNULL( SUM( CASE
WHEN ( AcdAgentStatus.bLoggedIn = 0 ) OR ( AcdAgentGroupMapping.bLoggedIn = 0 ) THEN 0
WHEN ( bMultiChannelAgent = 1 ) AND ( MaxParallelCalls IS NOT NULL ) THEN MaxParallelCalls
ELSE 1
END
), 0 ) AS AgentsLoggedIn,

Ausgabe: agentsLoggedIn

Für Agenten die in einem Status sind, die nicht mit "Angemeldet" gekennzeichnet ist: 0.

Für Agenten die in einem Status sind, die mit "Angemeldet" gekennzeichnet ist:

1, wenn der Agent einem normalen Agent ist

Anzahl der Kanäle, wenn der Agent einem Multichannel-Agent ist

Diese Werte werden summiert ausgegeben.

Frei

IFNULL( SUM( CASE
WHEN ( AcdAgentGroupMapping.bLoggedIn = 0 ) OR ( TelStatusID <> 0 ) OR ( TransactionCodeMandatoryStatisticsPartAID IS NOT NULL ) THEN 0
WHEN bMultiChannelAgent = 1 THEN IFNULL( MaxParallelCalls, 1 )
ELSE 1
END
), 0 ) AS AgentsFree,

Ausgabe: agentsFree

Für Agenten die abgemeldet sind, dessen Telefon belegt ist, oder die ein Transaction-Code für den letzten Anruf noch erfassen müssen, oder die in Pause sind, oder die in der Nachbearbeitung sind, 0.

Ansonsten:

1, wenn der Agent einem normalen Agent ist

Anzahl der Kanäle, wenn der Agent einem Multichannel-Agent ist

Diese Werte werden summiert ausgegeben.

Im Gespräch

IFNULL( SUM( CASE
WHEN ( varCallDataID IS NOT NULL ) AND ( AcdAgentGroupMapping.bLoggedIn = 1 ) THEN 1
ELSE 0
END
), 0 ) AS AgentsBusy,

Ausgabe: agentsBusy

Wenn der Agent angemeldet ist, und einen Gespräch zugewiesen bekommen hat (auch ggf. kurz bevor es klingelt), dann 1

Ansonsten 0

Diese Werte werden summiert ausgegeben.

 

Langtelefonierer

IFNULL( SUM( CASE
WHEN varCallData.bLongCallAlarmed = 1 THEN 1
ELSE 0
END
), 0 ) AS AgentsLongCalls,

Ausgabe: agentsLongCalls

bLongCallAlarmed wird für ein Gespräch gesetzt, wenn dieser die für die ACD Gruppe konfigurierte "Long Call" Zeit überschreitet.

Diese Spalte beinhaltet die Anzahl solcher "Long Calls".

Nachbearbeitung

IFNULL( SUM( CASE
WHEN STRFTIME( '%s', Users.dtLastCall ) > STRFTIME( '%s', DATETIME( 'now', 'localtime' ) ) THEN 1
ELSE 0
END
), 0 ) AS AgentsPostCall,

Ausgabe: agentsPostCall

Diese Spalte beinhaltet die Anzahl der Agenten die in der automatischen Nachbearbeitung sind.
Pause

IFNULL( SUM( CASE
WHEN ( AcdAgentGroupMapping.bLoggedIn = 0 ) OR ( bPause = 0 ) THEN 0
WHEN bMultiChannelAgent = 1 THEN IFNULL( MaxParallelCalls, 1 )
ELSE 1
END
), 0 ) AS AgentsPause,

Ausgabe: agentsPause

Für abgemeldeten Agenten oder für Agenten die nicht in Pause sind, 0

Ansonsten für normale Agenten 1, für Multi-Channel-Agenten die Anzahl der konfigurierten Kanäle.

Diese Werte werden summiert ausgegeben.

Besetzt

IFNULL( SUM( CASE
WHEN AcdAgentGroupMapping.AcdMissedCallCounterBusy > 0 THEN 1
ELSE 0
END
), 0 ) AS AgentsFailedBusy,

Ausgabe: agentsFailedBusy

Für Agenten die einem oder mehrere Gespräche für diese ACD Gruppe durch ein besetztes Telefon verpasst haben, wird eine 1 gezählt.

Ansonsten wird 0 gezählt.

Diese Werte werden summiert ausgegeben.

Keine Antwort

IFNULL( SUM( CASE
WHEN AcdAgentGroupMapping.AcdMissedCallCounterNoAnswer > 0 THEN 1
ELSE 0
END
), 0 ) AS AgentsFailedNoAnswer,

Ausgabe: agentsFailedNoAnswer

Für Agenten die einem oder mehrere Gespräche für diese ACD Gruppe durch keine Antwort verpasst haben, wird eine 1 gezählt.

Ansonsten wird 0 gezählt.

Diese Werte werden summiert ausgegeben.

Ø Anrufe

IFNULL( SUM( CASE
WHEN AcdAgentGroupMapping.bLoggedIn = 0 THEN 0
ELSE AcdAgentGroupMapping.AcdLoginTotalCalls
END
), 0 ) AS AcdLoginTotalCalls,

 

Ausgabe:

#{jt:safeDivideAndRound( item['acdLoginTotalCalls'], item['agentsLoggedIn'] )}

Für Agenten die angemeldet sind: die Anzahl der Anrufe für diese ACD Gruppe seit der Anmeldung.

Für Agenten die abgemeldet sind, 0.

Diese Zahlen werden summiert und durch die Zahl der Agenten die angemeldet sind geteilt.

Somit ergibt sich die durchschnittliche Zahl der Anrufe pro Agent seit der Anmeldung (unabhängig davon wann dieser war).

Ø Auslastung

IFNULL( SUM( CASE
WHEN AcdAgentGroupMapping.bLoggedIn = 0 THEN 0
ELSE AcdAgentGroupMapping.AcdLoginCallSeconds
END
), 0 ) AS AcdLoginCallSeconds,

IFNULL( SUM( CASE
WHEN AcdAgentGroupMapping.bLoggedIn = 0 THEN 0
ELSE STRFTIME( '%s', DATETIME( 'now', 'localtime' ) ) - STRFTIME( '%s', AcdAgentGroupMapping.dtAcdLoggedIn )
END
), 0 ) AS AcdLoginSeconds

Ausgabe:

#{jt:safePercentage( item['acdLoginCallSeconds'], item['acdLoginSeconds'] )}

In dieser Berechnung werden nur Agenten berücksichtigt, die angemeldet sind.

Diese Prozentzahl gibt aus, in Relation zur Login Zeit in der jeweiligen ACD Gruppe, wieviel Prozent der Zeit mit Telefonate für die jeweilige ACD Gruppe verbracht wurden.

Die Telefoniezeit wird ohne Whisper Ansage berechnet.

 

Gesamt

IFNULL( SUM(
CASE
WHEN bMultiChannelAgent = 1 THEN IFNULL( MaxParallelCalls, 1 )
ELSE 1
END
), 0 ) AS AgentsTotal,

Ausgabe: agentsTotal

Diese Spalte gibt an die Gesamtzahl der konfigurierten Agenten für diese ACD Gruppe.

Bei Multi-Channel Agenten wird die Anzahl der konfigurierten Kanäle gezählt, für normale Agenten 1.

 

Summenzeile

QuelleQuery

Users, AcdAgentStatus, varCallData

(CACHE)

DataCache_AcdGroups_RealtimeAgentDataTotals.sql
Eingrenzung

FROM Users
JOIN AcdAgentStatus
ON Users.AcdAgentStatusID = AcdAgentStatus.ID
LEFT JOIN varCallData
ON Users.varCallDataID = varCallData.ID

WHERE Users.ID IN
(
SELECT UsersID
FROM AcdAgentGroupMapping
JOIN AcdAgentGroupMappingTypes
ON AcdAgentGroupMapping.AcdAgentGroupMappingTypesID = AcdAgentGroupMappingTypes.ID
WHERE ( AcdGroupsID IN ( $ACDGROUPSIDS ) )
AND
( bInvisible = 0 )
);

BedeutungZähler für Agenten und Agentenanrufe. Nicht sichtbare Agenten werden in der gesamten Berechnung ausgeblendet. Nur Agenten aus den Gruppen die der Benutzer eingeblendet hat.
ZwischenberechnungKeine
ÜberschriftBerechnungBedeutung

Angem.

Berechnung:

IFNULL( SUM( CASE
WHEN ( AcdAgentStatus.bLoggedIn = 0 ) THEN 0
ELSE IFNULL( MaxParallelCalls, 1 )
END
), 0 ) AS AgentsLoggedIn,

Anzeige:

#{supervisorRealtimeGroupDataTotals.data['AgentsLoggedIn']}

Die Anzahl der angemeldeteten Agenten.

Hierbei werden Agenten nur einmal gezählt, unabhängig davon in wieviele ACD Gruppen Sie angemeldet sind. D.h. diese Zahl muss nicht zwangsläufig die Summe der darüberliegende Zahlen entsprechen.

Frei

Berechnung:

IFNULL( SUM( CASE
WHEN ( AcdAgentStatus.bLoggedIn = 0 ) OR ( TelStatusID <> 0 ) OR ( TransactionCodeMandatoryStatisticsPartAID IS NOT NULL ) THEN 0
WHEN bMultiChannelAgent = 1 THEN IFNULL( MaxParallelCalls, 1 )
ELSE 1
END
), 0 ) AS AgentsFree,

Anzeige:

#{supervisorRealtimeGroupDataTotals.data['AgentsFree']}

Die Anzahl der freien Agenten (als Agent Angemeldet, egal in welche ACD Gruppen, Telefon ist Frei, keine Zwangserfassung von Transaction-Codes aktiv).

Für Multi-Channel Agenten wird die Anzahl der eingerichteten Kanälen gezählt.

Hierbei werden Agenten nur einmal gezählt, unabhängig davon in wieviele ACD Gruppen Sie angemeldet sind. D.h. diese Zahl muss nicht zwangsläufig die Summe der darüberliegende Zahlen entsprechen.

Im Gespräch

Berechnung:

IFNULL( SUM( CASE
WHEN ( varCallDataID IS NOT NULL ) AND ( AcdAgentStatus.bLoggedIn = 1 ) THEN 1
ELSE 0
END
), 0 ) AS AgentsBusy,

Anzeige:

#{supervisorRealtimeGroupDataTotals.data['AgentsBusy']}

Die Anzahl der belegten Agenten (haben ein Gespräch zugewiesen oder werden ein Gespräch zugewiesen bekommen).

Hierbei werden Agenten nur einmal gezählt, unabhängig davon in wieviele ACD Gruppen Sie angemeldet sind. D.h. diese Zahl muss nicht zwangsläufig die Summe der darüberliegende Zahlen entsprechen.

Langtelefonierer

Berechnung:

IFNULL( SUM( CASE
WHEN varCallData.bLongCallAlarmed = 1 THEN 1
ELSE 0
END
), 0 ) AS AgentsLongCalls,

Anzeige:

#{supervisorRealtimeGroupDataTotals.data['AgentsLongCalls']}

Die Anzahl der Agenten die in einem Telefonat involviert sind, die als "Long Call" alarmiert / gekennzeichnet wurde.

Diese Zahl wird die Summe der darüberliegende Zahlen entsprechen.

Nachbearbeitung

Berechnung:

IFNULL( SUM( CASE
WHEN STRFTIME( '%s', Users.dtLastCall ) > STRFTIME( '%s', DATETIME( 'now', 'localtime' ) ) THEN 1
ELSE 0
END
), 0 ) AS AgentsPostCall,

Anzeige:

#{supervisorRealtimeGroupDataTotals.data['AgentsPostCall']}

Die Anzahl der Agenten die in Nachbearbeitung sind.

Hierbei werden Agenten nur einmal gezählt, unabhängig davon in wieviele ACD Gruppen Sie angemeldet sind. D.h. diese Zahl muss nicht zwangsläufig die Summe der darüberliegende Zahlen entsprechen.

Pause

Berechnung:

IFNULL( SUM( CASE
WHEN ( AcdAgentStatus.bLoggedIn = 0 ) OR ( bPause = 0 ) THEN 0
WHEN bMultiChannelAgent = 1 THEN IFNULL( MaxParallelCalls, 1 )
ELSE 1
END
), 0 ) AS AgentsPause,

Anzeige:

#{supervisorRealtimeGroupDataTotals.data['AgentsPause']}

Die Anzahl der Agenten die in Pause sind.

Hierbei werden Agenten nur einmal gezählt, unabhängig davon in wieviele ACD Gruppen Sie angemeldet sind. D.h. diese Zahl muss nicht zwangsläufig die Summe der darüberliegende Zahlen entsprechen.

Besetzt

Berechnung:

IFNULL( SUM( CASE
WHEN Users.AcdMissedCallCounterBusy > 0 THEN 1
ELSE 0
END
), 0 ) AS AgentsFailedBusy,

Anzeige:

#{supervisorRealtimeGroupDataTotals.data['AgentsFailedBusy']}

Die Anzahl der Agenten, die beim letzten Anwahlversuch als Besetzt erkannt wurden.

Hierbei werden Agenten nur einmal gezählt, unabhängig davon in wieviele ACD Gruppen Sie angemeldet sind. D.h. diese Zahl muss nicht zwangsläufig die Summe der darüberliegende Zahlen entsprechen.

Keine Antwort

Berechnung:

IFNULL( SUM( CASE
WHEN Users.AcdMissedCallCounterNoAnswer > 0 THEN 1
ELSE 0
END
), 0 ) AS AgentsFailedNoAnswer,

Anzeige:

#{supervisorRealtimeGroupDataTotals.data['AgentsFailedNoAnswer']}

Die Anzahl der Agenten, die beim letzten Anwahl-Versuch nicht geantwortet haben.

Hierbei werden Agenten nur einmal gezählt, unabhängig davon in wie viele ACD Gruppen Sie angemeldet sind. D.h. diese Zahl muss nicht zwangsläufig die Summe der darüberliegende Zahlen entsprechen.


Ø Anrufe

Berechnung:

IFNULL( SUM( CASE
WHEN AcdAgentStatus.bLoggedIn = 0 THEN 0
ELSE Users.AcdLoginTotalCalls
END
), 0 ) AS AcdLoginTotalCalls,

Anzeige:

#{jt:safeDivideAndRound( supervisorRealtimeGroupDataTotals.data['AcdLoginTotalCalls'], supervisorRealtimeGroupDataTotals.data['AgentsLoggedIn'] )}

Die durchschnittliche Anzahl der Anrufe seit dem Agenten-Login über alle eindeutige Agenten ermittelt, die Mitglied der angezeigten ACD Gruppen sind.

Hierbei werden Agenten nur einmal gezählt, jedoch werden alle Gespräche die der Agent geführt hat berechnet. D.h. diese Zahl steht nicht in Relation zu den darüber liegenden Zahlen für jede einzelne ACD Gruppe.

Ø Auslastung

Berechnung:

IFNULL( SUM( CASE
WHEN AcdAgentStatus.bLoggedIn = 0 THEN 0
ELSE Users.AcdLoginCallSeconds
END
), 0 ) AS AcdLoginCallSeconds,


IFNULL( SUM( CASE
WHEN AcdAgentStatus.bLoggedIn = 0 THEN 0
ELSE STRFTIME( '%s', DATETIME( 'now', 'localtime' ) ) - STRFTIME( '%s', Users.dtAcdLoggedIn )
END
), 0 ) AS AcdLoginSeconds

Anzeige:

#{jt:safePercentage( supervisorRealtimeGroupDataTotals.data['AcdLoginCallSeconds'], supervisorRealtimeGroupDataTotals.data['AcdLoginSeconds'] )}

Die Durchschnittliche Auslastung der Agenten insgesamt. Hierbei werden die Gesamtzeiten für Login sowie Call-Dauer der Agenten summiert und als Prozentsatz ausgegeben.

Hierbei werden Agenten nur einmal gezählt, jedoch werden alle Gespräche die der Agent geführt hat berechnet. D.h. diese Zahl steht nicht in Relation zu den darüber liegenden Zahlen für jede einzelne ACD Gruppe.

Gesamt

Berechnung:

IFNULL( SUM(
CASE
WHEN bMultiChannelAgent = 1 THEN IFNULL( MaxParallelCalls, 1 )
ELSE 1
END
), 0 ) AS AgentsTotal,

Anzeige: agentsTotal

Die Gesamtzahl der eindeutige Agenten die in allen angezeigten ACD Gruppen mitglied sind.

Hierbei werden Agenten nur einmal gezählt, unabhängig davon in wieviele ACD Gruppen Sie angemeldet sind. D.h. diese Zahl muss nicht zwangsläufig die Summe der darüberliegende Zahlen entsprechen.

 

 

  • No labels