Flow Lab

Allgemein

Das Flow Lab ist ein Tool, welches bei der Arbeit mit dem Flow Designer oder dem Flow Editor unterstützt. Innerhalb der App kann damit das Verhalten der IVR simuliert werden, um den Ablauf eines Anrufs in unterschiedlichen Szenarien schnell und einfach zu testen.

Die Oberfläche im Flow Lab stellt sich folgendermaßen dar:

  1. Schaltfläche zum Starten/Beenden der Session: Startet bzw. beendet die Session (achten Sie darauf, dass der Call Flow vorher gespeichert wurde).
  2. Kundengerät: In diesem Feld wird das Gerät des Kunden simuliert. Unter anderem können zum Beispiel in der Menü-Komponente DTMF-Eingaben gemacht werden, zudem kann die gewählte Nummer sowie die Nummer des Anrufers eingegeben werden. Die Eingaben hier werden auch als Variablen direkt an den Flow Designer übergeben.
  3. Status-Konfiguration: Hier können Einstellungen wie Geschäftszeiten von iAGENT innerhalb der App simuliert werden. Darüber hinaus können Sie weitere Abfragen in der IVR simulieren, z. B. wie viele Agenten eingehende Anrufe bearbeiten, die über eine bestimmte Warteschlange eingehen.
    Wenn Sie einen Anrufablauf im Flow Designer simulieren, gelten keine Einstellungen aus iAGENT, sondern nur das, was in der Status-Konfiguration konfiguriert ist.
  4. Logging: Hier werden die Protokolle ausgegeben, diese sind nützlich für Tests und Debugging.

Status-Konfiguration

Geschäftszeiten und Feiertage

Seit Version 6.1 werden Geschäftszeiten und Feiertage als Geschäftszeiten-Objekt behandelt, da Feiertage notwendigerweise mit einer Geschäftszeit verbunden sind. Das Ergebnisfeld enthält ein JSON mit je einem Attribut für den Status der Geschäftszeiten (Boolean) und der Feiertage (String Array), die aktuell in iAGENT konfiguriert sind.

Wenn Sie beispielsweise einen Ablauf erstellen möchten, der die globalen Geschäftszeiten berücksichtigt, müssen Sie der Statuskonfiguration ein JSON hinzufügen, das Informationen über den Status der Geschäftszeiten und – falls gewünscht – einen aktiven Feiertag enthält. Ein Beispiel könnte folgendermaßen aussehen:

{
isActive: true,

activeHolidays:["Christmas", "Easter"]
}

Beispielkonfigurationen für Geschäftszeiten sehen wie folgt aus. Es wird nur das Objekt Geschäftszeiten (businesshour) benötigt, die Feiertage und der Status der Geschäftszeiten sind mit dem Objekt verbunden.

Attributschlüssel Objektschlüssel Ergebnis
businesshour.category <Name einer Kategorie>
{ isActive: true, activeHolidays:[""] }
businesshour.global (nicht erforderlich)
{ isActive: true, activeHolidays:[""] }
businesshour.name <Name des iAGENT des Geschäftszeiten-Objekts in iAGENT>
{ isActive: true, activeHolidays:[""] }

Beispielablauf mit Geschäftszeiten & Feiertagen

Ein Beispielablauf soll dies verdeutlichen. In dem Call Flow wird abgefragt, ob eine Geschäftszeit aktiv ist oder nicht (der Name der Geschäftszeit ist rot und der Status der Geschäftszeit im JSON-Ergebnisfeld blau markiert). Dies wird zuvor in der Aktionskomponente über Geschäftszeiten setzen gesetzt, wo Sie aus den in iAGENT hinterlegten Geschäftszeiten auswählen können.

Der Status der Geschäftszeiten in iAGENT ist unabhängig von dem Status im Flow Lab.

Wenn Sie jetzt auf Session starten drücken, landet der Call Flow im Knoten wahr. Wenn Sie den Wert im JSON im Feld Ergebnis auf falsch ändern und erneut „Session starten“ aktivieren, landet der Call Flow im Knoten falsch. Das Gleiche gilt für Feiertage. Dort müssen Sie den Namen des Feiertags im JSON eingeben und in der Schalterkomponente können Sie den Feiertag mit einer String-Variablen vergleichen.

Weitere Schlüssel

Neben Geschäftszeiten und Feiertagen können auch andere Schlüssel festgelegt werden. Mit dem Schlüssel call.agents.available ist es zum Beispiel möglich, eine Verzweigung im Ablauf nach den verfügbaren Agenten zu erstellen. Die optionalen JSONs sind wie folgt zusammengesetzt:

{
    "category""Musterkategorie",
    "location""Musterstandort",
    "language""Mustersprache"
}
 
Attributschlüssel Objektschlüssel Ergebnis
systemstatus.available (nicht erforderlich) wahr oder falsch
systemstatus.available (nicht erforderlich) wahr oder falsch
call.agents.available optional: JSON mit Kategorie und Standort Anzahl der verfügbaren Agenten (Ziffer)
calls.queued optional: JSON mit Kategorie, Standort und Sprache  Anzahl der Anrufe in der Warteschlange (Ziffer)
call.queue.position String mit der Call ID der PBX Position in der Warteschlange (Ziffer)

Im Folgenden finden Sie ein Beispiel für einen solchen benutzerdefinierten Ablauf. In diesem Szenario wird ein Ablauf erstellt, der nach der Anzahl der verfügbaren Agenten verzweigt. Zunächst wird eine benutzerdefinierte Zahl-Variable erstellt und die Änderungen werden angewendet.

Als Nächstes wird der Ablauf selbst erstellt. Dazu gehören eine Javascript-Komponente, in die benutzerdefinierter Javascript-Code einfügt wird, und eine Verzweigungs-Komponente, die je nach Anzahl der verfügbaren Agenten differenziert.

 

 

 

 

 

Im Beispiel soll der Anrufer im linken Zweig des Call Flows laufen, sobald mehr als 1 Agent verfügbar ist; sobald weniger oder nur 1 Agent verfügbar ist, im rechten Zweig. Dazu muss das Flow Lab und die Javascript-Komponente eingerichtet werden. In der Javascript-Komponente wird folgender benutzerdefinierter Code verwendet:

var attributeKey = 'call.agents.available';
var response = status.get(attributeKey);
agentsAvailable=response.result;
 
Mit folgender Einstellung in Flow Lab landet der Anruf wie erwartet im rechten Zweig:
 
Attributschlüssel Objektschlüssel Ergebnis
call.agents.available (unset) 0

In einem realen Szenario ist es oft notwendig, die verfügbaren Bearbeiter einer Kategorie abzufragen. Dies kann mit kleinen Anpassungen mit folgendem Beispiel realisiert werden. Dazu müssen Sie den Javascript-Code leicht modifizieren:

var attributeKey = 'call.agents.available';
var categoryObject = {
"category""Kategoriename",
}
var response = status.get(attributeKey, JSON.stringify(categoryObject));
agentsAvailable=response.result;
 

Dieses neu angelegte Objekt muss im Flow Lab erneut als Objektschlüssel angelegt werden. Nun werden alle verfügbaren Bearbeiter der Kategorie „Kategoriename“ zurückgegeben.

Fehlercodes

Wenn im Flow Lab Fehler auftreten, werden diese im Protokollfenster angezeigt. Um besser verstehen zu können, woher ein Fehler kommt und um ihn zu beheben, werden sie mit Fehlercodes versehen. Alle Fehlercodes sind in der folgenden Tabelle aufgeführt.

Code Fehlertyp Beschreibung Vorkommen Tritt auf, wenn …
-900 Verbindung Das Remote-System ist nicht verfügbar. IVR oder Connector … eine Verbindung zwischen IVR, Connector oder iAGENT unterbrochen ist, während die Anfrage gestellt wird.
-901 Verbindung Die Anfrage wurde nach 5000 ms abgebrochen. IVR, Connector oder iAGENT … die Anfrage nicht innerhalb von 5000 ms beantwortet wurde.
-902 Verbindung Die Anfrage konnte wegen eines Verbindungsabbruchs nicht bearbeitet werden. IVR oder Connector … eine Verbindung zwischen IVR, Connector oder iAGENT innerhalb der Timeout-Dauer einer laufenden Anfrage abgebrochen wird.
-903 Verbindung Die Anfrage wurde mit einer ungültigen Antwort beantwortet. IVR, Connector oder iAGENT … die Antwort auf die Anfrage ein ungültiges oder unerwartetes Format hat.
-950 Eingabe/Daten Ungültiger Attributschlüssel IVR oder iAGENT … der Attributschlüssel null, undefiniert oder leer ist.
-951 Eingabe/Daten Unbekannter Attributschlüssel iAGENT … der Attributschlüssel gültig ist, aber keiner bekannten Abfrageoperation entspricht.
-952 Eingabe/Daten Ungültiger Objektschlüssel IVR oder iAGENT … der Objektschlüssel null, undefiniert oder leer ist.
-953 Eingabe/Daten Eingeschränkter Objektschlüssel iAGENT … der Attributschlüssel und der Objektschlüssel gültig sind, aber der Objektschlüssel oder die entsprechenden Daten eingeschränkt sind.
-954 Eingabe/Daten Keine Daten gefunden iAGENT … keine Daten zurückgegeben werden können und ein leeres Ergebnis (z. B. „“) für die angeforderten Daten nicht zutreffend ist.
-955 Eingabe/Daten Die gewünschte Kategorie existiert nicht. iAGENT … die gewünschte Kategorie nicht im System vorhanden ist.
-956 Eingabe/Daten Der angeforderte Standort existiert nicht iAGENT … der angeforderte Standort nicht im System vorhanden ist.