myContactCenterHandbuch

Produktdaten im Agentenskript

Einfache Felder der Produktdatenstrukturen für Konversation, Agent, Teilnehmer, Wissensgebiet, Sprache, Tätigkeit, Zusatzdaten, Chat und Aufzeichnungen im Agentenskript.

Das Agentenskript erhält Produktobjekte in seinen Ereignissen. Über Agent steht außerdem der eigene Agent zur Verfügung. Die folgenden Tabellen beschreiben die einfachen Werte der für Skripte wichtigen Datenstrukturen: Texte, Zahlen, boolesche Werte, Zeitwerte und Enumerationen.

Die Typnamen sind die tatsächlichen C#-Bezeichner. Struct_Conversation und Struct_Agent sind trotz ihres Namens Klassen, keine C#-struct- Werttypen. Eine Variable mit einem solchen Objekt ist daher eine Referenz auf Produktdaten, keine unabhängige Kopie.

Zugriff und Verwendung

Zugriff Produktdaten
Parameter conversation der Konversationsereignisse Struct_Conversation
Agent sowie Parameter agent Struct_Agent
conversation.Sender, conversation.Recipient Participant, gegebenenfalls CallParticipant oder MailParticipant
conversation.Skill und Wissensgebietsereignisse Struct_Skill
conversation.Language und Sprachereignisse Struct_Language
Agent.ActivityType und Tätigkeitsereignisse Struct_Activity
Parameter element bei hinzugefügten oder entfernten Zusatzdaten ConversationDataElement
Parameter vipClass bei Änderung der VIP-Klasse Struct_VIPClass
Telefonanlageneinstellungen der Ereignisse Struct_PbxSettings
einzelne Nachricht eines Chatverlaufs ChatMessage
Parameter recordingSummary bei Abschluss einer Aufzeichnung RecordingSummary

Referenzen können fehlen, beispielsweise der Agent einer noch wartenden Konversation. Prüfen Sie sie vor dem Zugriff oder verwenden Sie ?.. Im Konstruktor des Skripts ist die Agenten-API noch nicht gesetzt; verwenden Sie diese Daten erst in den vorgesehenen Ereignissen.

Nutzen Sie Produktobjekte zum Auslesen des aktuellen Stands. Ein öffentlicher Setter bedeutet nicht, dass eine Zuweisung eine fachliche Änderung am Server anfordert. Für Annehmen, Weiterleiten, Nacharbeit und andere Aktionen verwenden Sie die vorgesehenen Skriptbefehle. Siehe Agentenskript und Ereignisse.

Struct_Conversation — Konversation

Namensraum: ilogixx.SharedFiles.GeneralDefinitions. Auswahl der einfachen Eigenschaften:

Eigenschaft Typ Bedeutung
Id string Kennung der Konversation
RoutedConversationId string Kennung der gerouteten Konversation
ConversationType ConversationType Art der Konversation
ChannelType ChannelType aus der Art abgeleiteter Kanal
State ConversationState aktueller Zustand
PreviousState ConversationState vorheriger Zustand
StateChangeTime DateTime Zeitpunkt des Zustandswechsels
AgentChangeTime DateTime Zeitpunkt des Agentenwechsels
Position int gemeldete Position im Wartefeld
SkillName string Wissensgebietsname oder leer, wenn kein Wissensgebiet vorhanden ist
SkillId int Kennung des Wissensgebiets
LanguageId int Sprachkennung; ohne Sprache 0
SenderName string Name des Absenders; ohne Absender leer
SenderNumber string wirksame Rufnummer eines Telefonabsenders; sonst leer
SenderMailAddress string E-Mail-Adresse eines Mailabsenders; sonst leer
RecipientName string Name des Empfängers; ohne Empfänger leer
RecipientNumber string wirksame Rufnummer eines Telefonempfängers; sonst leer
RecipientMailAddress string E-Mail-Adresse eines Mailempfängers; sonst leer
Subject string Betreff
CcMailAddresses, BccMailAddresses string zusätzliche E-Mail-Empfänger
Classification string Klassifikation
TicketId int zugehörige Ticketkennung
RecordingPermitted bool Erlaubnis zur Aufzeichnung
IsRecording bool Aufzeichnung aktiv
IsTranscribing bool Transkription aktiv
IsManuallyCreated bool manuell erstellt
IsConnected bool verbunden, extern/intern verbunden oder gehalten
WasConnected bool war bereits verbunden
IsChat, IsEmail, IsFax, IsCall bool aus der Konversationsart abgeleitete Prüfungen
IsInboundCall, IsOutboundCall bool eingehender beziehungsweise ausgehender Anruf
IsVirtualCallback, IsVirtualDialIn bool virtueller Rückruf beziehungsweise Wiedereinwahl
IsThreateningCall bool als bedrohlich markierter Anruf
TotalWaitTime, TotalActiveTime, TotalHoldTime TimeSpan aufsummierte Zeiten der jeweiligen Zustände

State == ConversationState.Connected und IsConnected sind nicht dieselbe Prüfung: IsConnected berücksichtigt auch Halten und interne beziehungsweise externe verbundene Zustände. WasConnected beschreibt die Vergangenheit. Für eine Rufnummer können Sie direkt SenderNumber oder RecipientNumber verwenden; dadurch entfällt eine eigene Typprüfung des Teilnehmers.

Struct_Agent — Agent

Namensraum: ilogixx.SharedFiles.GeneralDefinitions. Agent bezeichnet den eigenen Agenten. Ein Ereignisparameter agent kann dagegen einen anderen Agenten betreffen.

Eigenschaft Typ Bedeutung
Id, Name string Agentenkennung und Name
IsLogin bool angemeldet
Active bool aktives Kennzeichen
Activity bool Tätigkeit aktiv
Wrapup bool normale Nacharbeit aktiv
DynamicWrapup bool dynamische Nacharbeitszeit noch nicht abgelaufen
IsPausing bool Nacharbeit, Tätigkeit oder noch laufende Nacharbeitszeit
RichPresenceState RichPresenceState Präsenzzustand; ohne Präsenzobjekt offline
RichPresenceText string Präsenztext; ohne Präsenzobjekt leer
EffectiveState ConversationState wirksamer Zustand der maßgeblichen Konversation
EffectiveCallState ConversationState wirksamer Zustand des maßgeblichen Anrufs
IsTalking bool wirksamer Anrufzustand verbunden oder gehalten
Extension string erste öffentliche Rufnummer, ersatzweise erste interne Rufnummer
InternalNumberString, PublicNumberString string interne beziehungsweise öffentliche Rufnummern als zusammengefasster Text
PBXName, PBXStandby string Name der primären beziehungsweise Ersatztelefonanlage
TotalNumberOfConversations int Anzahl der gerade vom Agenten bearbeiteten Konversationen
MicrophoneMuted bool Mikrofon stummgeschaltet
CurrentMissedConversations, CurrentRejectedConversations int aktuelle Zähler für verpasste beziehungsweise abgewiesene Konversationen
LastStateChangeTime, ActivityStartTime, WrapupStartTime DateTime Zeitpunkte der jeweiligen Änderungen
WrapupTimeSpan, WrapupTillTimeSpan TimeSpan bisherige beziehungsweise verbleibende Nacharbeitszeit gemäß den jeweiligen Eigenschaften
ActivityTimeSpan, LoginTimeSpan TimeSpan Dauer der Tätigkeit beziehungsweise Anmeldung
UnavailableForPhoneCallUntil DateTime Zeitpunkt, bis zu dem Telefonieverfügbarkeit gesperrt ist

Active, IsLogin und die Verfügbarkeit zur Verteilung sind unterschiedliche Informationen. Leiten Sie aus einem einzelnen booleschen Feld keine vollständige Verteilungsentscheidung ab. Die Statusdarstellung erläutert auch Agentensymbole und Verfügbarkeit.

Participant, CallParticipant und MailParticipant — Teilnehmer

Namensraum: ilogixx.SharedFiles.GeneralDefinitions.

Typ Eigenschaft Werttyp Bedeutung
Participant Identifier string Teilnehmerkennung
Participant Name string Teilnehmername
CallParticipant EffectiveNumber string wirksame, gegebenenfalls normalisierte Rufnummer
CallParticipant SipRealm string SIP-Realm
CallParticipant CountryCode int erkannte Landesvorwahl
CallParticipant LocaleCode, Location string erkannte Ortsinformation
CallParticipant NumberType PhoneNumberType erkannte Rufnummernart
MailParticipant MailAddress string E-Mail-Adresse beziehungsweise Adressangabe

Die beiden abgeleiteten Typen besitzen auch Identifier und Name. Lesen Sie Telefonrufnummern über EffectiveNumber: Der Getter von CallParticipant.Number ist privat und kann im Skript nicht gelesen werden.

Struct_Skill und Struct_Language — Wissensgebiet und Sprache

Namensraum: ilogixx.SharedFiles.GeneralDefinitions. Beide Typen besitzen folgende einfachen Werte:

Eigenschaft Typ Bedeutung
Id int Kennung
Name, Description string Name und Beschreibung
Deleted bool als gelöscht markiert
IsPrivate bool privater Eintrag
Key string Kennung als Text

Zusätzlich bei Struct_Skill: Color (int, gespeicherter Farbwert) und IsQualified (bool, nicht privat). Zusätzlich bei Struct_Language:

Eigenschaft Typ Bedeutung
MailReplyTag, MailForwardTag string Kennzeichnungen für Antworten und Weiterleitungen
DictionaryName string Kultur für Rechtschreibprüfung und Ressourcenübersetzung
FemaleVoice, MaleVoice string konfigurierte Stimmen

Qualifikationsstufen richtig unterscheiden

Eine benannte Stufe wie „Experte“ ist etwas anderes als die Zuordnung eines Agenten zu einer Sprache oder einem Wissensgebiet. Alle folgenden Produkttypen liegen im Namensraum ilogixx.SharedFiles.GeneralDefinitions.

Struct_LanguageQualification und Struct_SkillQualification beschreiben die in der Administration angelegten Stufen. Beide besitzen diese einfachen Eigenschaften:

Eigenschaft Typ Bedeutung
Id int Kennung der benannten Stufe, nicht der Sprache oder des Wissensgebiets
Qualification int Nummer der Qualifikationsstufe
Name string Name der Stufe
Key string Stufenkennung als Text

Eine kleinere gültige Stufennummer bedeutet eine bessere Qualifikation. Die Klasse KnowledgeLevel definiert dafür:

Wert Bedeutung
KnowledgeLevel.None = -1 nicht qualifiziert
KnowledgeLevel.Best = 1 beste Stufe
KnowledgeLevel.Worst = int.MaxValue oberste Zahlengrenze der gültigen Stufen, nicht die Anzahl der angelegten Stufen

KnowledgeLevel.IsQualified(stufe, anforderung) prüft, ob die Stufe mindestens 1 und höchstens die Anforderung ist. Bei einer Anforderung von 2 sind daher die Stufen 1 und 2 ausreichend; 3, 0 und -1 sind es nicht. Zum Anlegen und Verschieben der benannten Stufen siehe Qualifikationsstufen in der Administration.

Struct_LanguageQualificationEntry — Sprachqualifikation

Dieses Objekt beschreibt die Zuordnung zu einer Sprache. Die aktuell wirksamen Zuordnungen eines Agenten stehen in EffectiveLanguages.

Eigenschaft Typ Bedeutung
Id int Kennung des Zuordnungseintrags
LanguageId int Kennung der zugeordneten Sprache
Qualification int Sprachqualifikationsstufe oder KnowledgeLevel.None

Der Setter von Qualification übernimmt gültige Stufennummern ab 1; andere Werte werden zu KnowledgeLevel.None. Ein vorhandener Eintrag bedeutet deshalb noch nicht, dass der Agent qualifiziert ist. IsQualified() prüft eine gültige Stufe, IsQualified(anforderung) eine ausreichende Stufe für die angegebene Anforderung.

Im Skript liefert Agent.GetLanguageQualification(languageId) unmittelbar den einfachen int-Wert der aktuell wirksamen Zuordnung. Fehlt die Sprache in diesen Zuordnungen, kommt KnowledgeLevel.None zurück. Weitere Überladungen nehmen ein Struct_Language oder eine Struct_Conversation entgegen. Agent.HasLanguageQualification(languageId, anforderung) liefert die entsprechende Prüfung als bool.

Struct_SkillQualificationEntry — Wissensgebietsqualifikation

Dieses Objekt beschreibt die Zuordnung zu einem Wissensgebiet. Die aktuell wirksamen Zuordnungen eines Agenten stehen in EffectiveSkills.

Wert Typ Bedeutung
Id int Kennung des Zuordnungseintrags
SkillId int Kennung des zugeordneten Wissensgebiets
Qualification[qualifikationsart] int Stufe für eine bestimmte Konversationsart oder KnowledgeLevel.None

Qualification selbst ist kein int, sondern ein Struct_SkillQualificationLevel. Sein Indexer liefert den einfachen Wert für die gewählte SkillQualificationType aus dem Namensraum ilogixx.SharedFiles.GeneralEnums:

Qualifikationsart Bedeutung
InboundCall eingehender Anruf
VirtualCall virtueller Anruf
Fax Fax
EMail E-Mail
Chat Chat
WebCallback Rückruf über die Website
VoiceRecording Sprachnachricht

Eine fehlende Art und Undefined liefern KnowledgeLevel.None. Die Wissensgebietszuordnung allein reicht daher nicht: Ein Agent kann im selben Wissensgebiet für Anrufe qualifiziert sein, für Chat aber nicht. Die alten Eigenschaften QualificationInbound, QualificationOutbound, QualificationFax, QualificationEMail und QualificationChat sind im Code als veraltet markiert. Verwenden Sie für neue Skripte den Indexer oder die Methoden des Agenten.

Agent.GetSkillQualification(skillId, qualifikationsart) liefert die aktuell wirksame Stufe als int; bei fehlender Zuordnung kommt KnowledgeLevel.None zurück. Eine Überladung nimmt ein Struct_Skill statt seiner Kennung entgegen. Agent.GetSkillQualification(conversation) verwendet Wissensgebiet und Qualifikationsart der Konversation. Agent.HasSkillQualification(skillId, qualifikationsart, anforderung) liefert die entsprechende Prüfung als bool.

Skills und Languages beschreiben die hinterlegten Zuordnungen; EffectiveSkills und EffectiveLanguages den aktuell wirksamen Stand. Die genannten Agentenmethoden verwenden den wirksamen Stand. Eine Qualifikationsprüfung allein ersetzt trotzdem keine vollständige Prüfung von Anmeldung, Verfügbarkeit und Verteilungsbedingungen.

Struct_Activity — Tätigkeit

Namensraum: ilogixx.SharedFiles.GeneralDefinitions.

Eigenschaft Typ Bedeutung
Id int Tätigkeitskennung
Name, Description string Name und Beschreibung
Duration int konfigurierte Dauer in Sekunden
DurationTimeSpan TimeSpan dieselbe Dauer als Zeitspanne
IsBusyTime bool als Beschäftigungszeit werten
AllowCalls bool Anrufe während der Tätigkeit erlauben
AnswerBySupervisor bool Antwort durch Supervisor vorgesehen
AutomaticRelease bool automatische Freigabe vorgesehen
SkipInEscalation bool bei Eskalation überspringen
Key string Kennung als Text

ConversationDataElement — einzelnes Zusatzdatum

Namensraum: ilogixx.SharedFiles.GeneralDefinitions.

Eigenschaft Typ Bedeutung
Key string Name des Zusatzdatums
Value string gespeicherter Wert
Position int Position
IsVisible bool Sichtbarkeitskennzeichen, standardmäßig an

Value ist immer Text. Eine darin gespeicherte Zahl oder ein Datum müssen Sie für Berechnungen ausdrücklich mit dem passenden Format auswerten. Das Ereignis für ein einzelnes Element liefert keine Sammlung aller Zusatzdaten. Siehe Ereignisse.

Struct_VIPClass — VIP-Klasse

Namensraum: ilogixx.SharedFiles.GeneralDefinitions.

Eigenschaft Typ Bedeutung
Id int Kennung
Name, Description string Name und Beschreibung
Priority int Priorität
ARGBColor int gespeicherter ARGB-Farbwert
Key string Kennung als Text

Struct_PbxSettings — Telefonanlagenbezug

Namensraum: ilogixx.SharedFiles.GeneralDefinitions. Für den einfachen Bezug zur Telefonanlage sind diese Felder nutzbar:

Eigenschaft Typ Bedeutung
Tag string Kennung der Telefonanlageneinstellungen
Master, Standby string primärer und Ersatzserver
PBXType PBXType Telefonanlagenart
PBXProtocol Protocol Protokoll
SipRealm string SIP-Realm
ExternalLinePrefix string Amtskennziffer
SipBasePort, SipPortRange uint Beginn und Umfang des SIP-Portbereichs

ChatMessage — einzelne Chatnachricht

Namensraum: ilogixx.SharedFiles.

Eigenschaft Typ Bedeutung
Id, Key string Nachrichtenkennung
Time DateTime Nachrichtenzeitpunkt
ParticipantName string Name des Teilnehmers
ParticipantType ParticipantType Teilnehmerart
HtmlMessage string Nachrichtentext mit möglicher HTML-Formatierung
IntrusionMode IntrusionMode Art des Eingreifens

RecordingSummary — abgeschlossene Aufzeichnung

Namensraum: ilogixx.General.Shared. Das Ereignis My_RecordingSummaryReceived liefert dieses Objekt.

Eigenschaft Typ Bedeutung
FilePath string Pfad der Aufzeichnungsdatei
FileTotalTime TimeSpan Gesamtdauer
FileSize long Dateigröße
FileType AudioFileType Audiodateityp
RecordingType RecordingType Art der Aufzeichnung

Typen richtig auswerten

Vergleichen Sie Enumerationen mit benannten Werten wie ConversationState.Connected statt mit geratenen Zahlen. Rufnummern und Kennungen bleiben string: Eine Rufnummer ist kein Zahlenwert. TimeSpan ist eine Dauer, DateTime ein Zeitpunkt. Für Ausgabe und Berechnung sind beispielsweise TimeSpan.TotalSeconds und TimeSpan.TotalMinutes sinnvoll; Seconds enthält nur den Sekundenanteil.

Die Tabellen beschreiben den Produktstand der eingesetzten Version. Sammlungen, Konversationsverläufe und komplexe Verwaltungsobjekte gehören zu einem weiterführenden Zugriff und sind hier nicht als einfache Werte aufgeführt.

    ↑ ↓ auswählen · Eingabe öffnen · Esc schließen