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

Compare with Current View Page History

« Previous Version 53 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.
Berechnete WerteAcdSupervisor.Declarations.Realtime.Totals.xhtml
Ü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,

#{ 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.

Supervisor - Agenten

QuelleQuery

AcdAgentGroupMapping, AcdAgentGroupMappingTypes, Users, AcdAgentStatus, varCallData

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.
Berechnete WerteKeine
Ü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.

   
  • No labels