Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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. Nicht sichtbare Agenten werden in der gesamten Berechnung ausgeblendet.
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.

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:

#{ item['agentsLoggedIn'] eq 0 ? 0 : 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:

#{ item['acdLoginSeconds'] eq 0 ? 0.0 : item['acdLoginCallSeconds'] * 100 / 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.