Skripterstellung mit Dateien und Ordnern

Sie können in Studio-Skripten mit Dateien arbeiten. Die Dateien müssen in Ihrem CXone Mpower-System vorhanden sein. Sie können die Dateien in CXone Mpower auf der Seite ACD-Dateien durchsuchen anzeigen. Sie können auf dieser Seite Dateien hoch- und herunterladen. Sie können Dateien auch hochladen und herunterladen mit Desktop Studio.

Es gibt Aktionen, mit denen Sie Dateien in Ihrem CXone MpowerSystemdurchsuchen können:

Mit den folgenden Aktionen können Sie Dateien per E-Mail oder via FTP/SFTP senden:

Es gibt Aktionen, mit denen Sie in Ihren Interaktionen vorab aufgezeichnete Audiodateien oder Eingabeaufforderungen verwenden können:

  • MENU : Spielt eine Eingabeaufforderung oder eine aufgezeichnete Audiodatei für den Kontakt ab und erstellt ein Menü mit Optionen, aus denen er wählen kann.
  • Play : Spielt benutzerdefinierte WAV-Audiodateien oder Text-to-Speech-Aufforderungen (TTSGeschlossen Ermöglicht den Benutzern die Eingabe von Ansagen als Text und die Verwendung einer computergenerierten Sprache für die Aussprache des Inhalts.) ab. Bei Verwendung einer Datei wird die gesamte Datei abgespielt. Nur der Kontakt kann den Ton hören.
  • Playlog : Spielt benutzerdefinierte Audio-WAV-Dateien ab, die nur der Kontakt hören kann. Ermöglicht Ihnen die Auswahl eines bestimmten Anfangs -und Endpunkts. Die Musikdateien, die in anderen Aktionen wie Music enthalten sind, können nicht wiedergegeben werden.
  • Reqagent: Spielt benutzerdefinierte WAV-Audiodateien oder Text-to-Speech-Aufforderungen ab, die nur der Agent hört. Die Aufforderung wird abgespielt, bevor der Agent und der Kontakt miteinander verbunden werden. Deshalb hört der Kontakt keine Stille.
  • Whisper : Spielt benutzerdefinierte WAV-Dateien oder Text-to-Speech-Aufforderungen ab. Sie können festlegen, dass dies nur vom Kontakt, nur vom Agenten oder von beiden hörbar ist. Die Aufforderung wird abgespielt, nachdem der Agent und der Kontakt miteinander verbunden wurden. Wenn die Aktion nur für den Agenten oder nur für den Kontakt abgespielt wird, hört die jeweils andere Partei deshalb für die Dauer der Aufforderung Stille.

Eine letzte Aktion ist die CONCATWAV action, mit der Sie zwei WAV Dateien verketten können.

Dateipfade

Wenn Sie auf Dateipfade in Ihren Skripten verweisen müssen, rufen Sie die Hilfeseite der von Ihnen verwendeten Aktion auf. Einige Aktionen verwenden absolute Pfade. Andere erfordern hingegen einen relativen Pfad. Wenn auf der Hilfeseite keine Angaben dazu zu finden sind und ein Pfadtyp nicht funktioniert, probieren Sie den anderen Typ aus. Absolute und relative Pfade unterscheiden sich wie folgt:

  • Absoluter Pfad: Beginnt immer im Stammverzeichnis. Es spielt keine Rolle, wo sich die Skriptdatei relativ zu der Datei oder dem Skript befindet, auf das Sie sich beziehen. Verwenden Sie eine Tilde und einen Backslash (~\), um den Stammordner anzugeben. Beispiel: ~\Ordner\Datei.wav.
  • Relativer Pfad: Beschreibt den Speicherort der Datei, auf die Sie sich beziehen, relativ zur Skriptdatei, beginnend am Speicherort der Skriptdatei. Wenn sich die Datei in einem Unterordner im selben Ordner wie das Skript befindet, behandeln Sie den Speicherort des Skripts als Stammverzeichnis und schließen Sie die Namen der Unterordner in Ihren Pfad ein. Wenn sich beispielsweise das Skript in \Ordner befindet und file.wav in \Ordner\Subfolder1 liegt, würden Sie den Pfad folgendermaßen schreiben: \Subfolder1\file.wav. Befindet sich die Datei außerhalb des Skriptordners oder funktioniert ein relativer Pfad nicht, verwenden Sie stattdessen einen absoluten Pfad.

Es ist eine Best Practice in Studio, wenn möglich absolute Pfade zu verwenden, auch wenn relative Pfade ebenfalls unterstützt werden. Dies ist besonders wichtig, wenn man auf eine Datei verweist, die sich in einem anderen Ordner befindet. Diese bewährte Vorgehensweise gilt immer dann, wenn Sie in Skripten auf Dateien verweisen, nicht nur bei der Arbeit mit Entwicklungs-Workflow-Phasen.

Dateipfadverwaltung in Skripte

Skripte in Studio existieren selten isoliert. Sie sind üblicherweise auf mehrere Ordner verteilt, um Wiederverwendung und Anpassung zu ermöglichen. Andere Dateien, die mit Skripten verwendet werden, wie z. B. Audio-Prompts oder ASRGeschlossen Automatic Speech Recognition (automatische Spracherkennung). Ermöglicht es Kontakten, auf Aufforderungen durch Sprechen zu reagieren, Telefontasten zu drücken oder beides. Grammatikdateien, befinden sich in separaten Ordnern. Wenn Ihr Unternehmen die Studio Entwicklungsworkflow-Phasenverwendet, verfügen Sie auch über phasenbezogene Ordner, die eine kontrollierte Weitergabe ermöglichen. Da Skripte häufig auf andere Skripte in verschiedenen Ordnern verweisen, ist eine effiziente Pfadverwaltung für eine erfolgreiche Skripterstellung unerlässlich.

Sie können Variablensubstitution in Dateipfaden verwenden, um eine konsistente und zuverlässige Methode zur Verwaltung von Pfaden in Ihren Skripten zu schaffen. Dies trägt dazu bei, dass Verweise auf andere Skripte, Audio-Prompts, ASR-Grammatiken und andere Dateien innerhalb Ihres Skript-Ökosystems genauer sind.

Die Pfadverwaltung ermöglicht es Skripten, andere Skripte zu finden und auszuführen oder andere Dateien über Ordnergrenzen hinweg zu verwenden. Durch die Verwendung von Variablenersetzung für Dateipfade müssen die Pfade nur an wenigen Stellen definiert werden. Wenn sich Ordner oder Dateien ändern, müssen Sie den Pfad nur an einer Stelle aktualisieren, anstatt jede einzelne Referenz auf die Datei suchen zu müssen.

Variablensubstitution für Dateipfade

Die Verwendung von Variablenersetzung für Dateipfade ermöglicht Ihnen Folgendes:

  • Der absolute Pfad zu Ordnern, die Skripte oder Dateien enthalten, auf die Sie in Skripten verweisen. Wenn Sie auf Skripte oder Dateien verweisen, die sich in anderen Ordnern befinden, müssen Sie einen absoluten Pfad verwenden.

  • Pfade, die sich automatisch aktualisieren, wenn ein Skript hochgestuft wird. Diese Option gilt nur, wenn Ihr Unternehmen die Studio-Entwicklungsworkflow-Phasen verwendet.

  • Pfade zu Ordnern und Dateien an einem einzigen Speicherort oder an einer kleinen Anzahl von Speicherorten. Das erleichtert die Aktualisierung des Pfades, da man weiß, wo die Variablen erstellt wurden.

Sie können Variablen erstellen, um den Pfad zu jedem Dateityp zu speichern, auf den Sie verweisen, z. B. zu Ansagen, Grammatiken, Voicemails, anderen Skripten usw. Wenn ein Skript Dateien in einem Ordner speichert oder aus einem Ordner liest, können Sie für diese Pfade auch Variablen verwenden.

Wenn Sie auf eine Datei verweisen müssen, verwenden Sie die Variable anstelle des Pfads. Erstellen Sie beispielsweise eine Variable für den Pfad zu Ihren Eingabeaufforderungsdateien und verwenden Sie sie in den AktionseigenschaftenGeschlossen Führt einen Prozess innerhalb eines Studio-Skripts durch, wie z. B. das Erfassen von Kundendaten oder das Abspielen von Musik, wenn Sie eine Eingabeaufforderung angeben. Es könnte wie das folgende Beispiel aussehen: {promptPath}Greeting.wav.

Um die Aktualisierung der Pfadvariablen zu automatisieren, können Sie eine SNIPPET Aktion verwenden und Code schreiben, um zu ermitteln, in welchem Entwicklungsstadienordner sich das Skript befindet, und dann den Pfad entsprechend aktualisieren. Der Rest dieser Hilfeseite beschreibt ein Beispiel für einen Snippet, den Sie als Modell in Ihrem Skript verwenden können.

Wenn Ihre Organisation über mehrere Skriptentwickler verfügt, sollten Sie gemeinsam eine Strategie für die Verwendung von Variablenersetzung für Dateipfade entwickeln. Dies spart Zeit und stellt sicher, dass jeder weiß, welche Variablen zu verwenden sind.

Beispiel für die Ersetzung von Dateipfadvariablen

Das Beispiel der Variablensubstitution für Dateipfade ist als Eingabeskript aufgebaut. Ein Eingabeskript ist das in einem Point of ContactGeschlossen Der Eintrittspunkt, den ein eingehender Kontakt verwendet, um eine Interaktion zu initiieren, wie z. B. Telefonnummer oder E-Mail-Adresse. (POC) konfigurierte Standardskript. In diesem Beispiel wird vom Einstiegsskript ein weiteres Skript aufgerufen, das das Routing für den Kanal übernimmt. Sie könnten auch ein Einstiegsskript als Standardskript für mehr als einen POC verwenden und es aufgrund von Kriterien wie ACDskilloderGeschlossen Wird verwendet, um die Bereitstellung von Interaktionen basierend auf den Kompetenzen, Fertigkeiten und Kenntnissen der Agenten zu automatisieren.DNISzum entsprechenden Routing-SkriptGeschlossen Die Nummer, die in eingehenden oder ausgehenden Sprachanrufen gewählt wurde.ausführen lassen. Der Vorteil der Verwendung eines Eingabeskripts für mehrere POCs besteht darin, dass die Wahrscheinlichkeit von Fehlern verringert wird, da Ihre Dateipfadvariablen-Ersetzungen nur an einer Stelle definiert sind.

Das Beispiel-Eingabeskript enthält eine BEGIN-Aktion, die mit einer SNIPPET- und einer RUNSCRIPT-Aktion verbunden ist, wie im folgenden Bild gezeigt.

Die Aktion SNIPPET enthält Code, der den Namen und den Pfad des ausgeführten Skripts bestimmt. Diese Informationen werden verwendet, um einen absoluten Pfad zu den Ordnern zu erstellen, die die Skripte, Eingabeaufforderungen usw. enthalten. Sie können Ihren eigenen Code schreiben oder dieses Beispiel verwenden:

SELECT
 {
  CASE runScript.length > 0 //Voice, Legacy Chat, Work Item
  {
   ASSIGN normalizedScriptName = "{runScript}"
  }
  CASE __runScript.length > 0 //Legacy Email
  {
   ASSIGN normalizedScriptName = "{__runScript}"  
  }
  CASE __targetScript.length > 0 //Simulate Inbound
  {
   ASSIGN normalizedScriptName = "{__targetScript}"
  }
  CASE __scriptName.length > 0 //Digital
  {
   ASSIGN normalizedScriptName = "{__scriptName}"
  }
  CASE customScript.length > 0 //Custom Outbound script
  {
   ASSIGN normalizedScriptName = "{customScript}"  
  }
  CASE __reskillscript.length > 0 //Custom Script assigned to skill on reskill
  {
   ASSIGN normalizedScriptName = "{__reskillscript}"  
  }
  CASE global:callSuppScript.length > 0 //Suppression script
  {
   ASSIGN normalizedScriptName = "{global:callSuppScript}"
  }
}
IF normalizedScriptName.length > 0
{
 ASSIGN folderArray = "{normalizedScriptName.split('\')}"
 ASSIGN env = "{folderArray[1]}"
 FOR i = 1 TO folderArray.size - 1
 {
  ASSIGN folderPath = "{folderPath}\{folderArray[i]}"
  }
}
IF env.length = 0
 {
  ASSIGN env = "DEV"
 }
ASSIGN scriptPath = "~{folderPath}\"
ASSIGN promptPath = "~{folderPath}\Prompts\"
ASSIGN grammarPath = "~{folderPath}\Grammars\"

Dieser Beispielcode verwendet eine SELECT Anweisung mit mehreren CASEs. Jede CASE stellt eine der Systemvariablen dar, die den aktuellen Skriptnamen und -pfad enthalten können. Die in einem bestimmten Skript verwendete Variable hängt vom Skripttyp ab. Der Ausschnitt:

  1. Sucht die Systemvariable, die den Pfad und den Namen des aktuellen Skripts enthält. Dazu muss Folgendes geschehen:

    1. Wertet jede CASE aus, um zu sehen, ob der Wert der angegebenen Variable eine Länge größer als 0 hat.
    2. Wenn dies der Fall ist, wählt das Snippet dieses CASE aus und weist den Wert der Variablen der Variable normalizedScriptName zu.
  2. Bestimmt den Namen des Entwicklungs-Workflow-Phasenordners, in dem sich das Skript befindet. Dazu muss Folgendes geschehen:

    1. Verwendet die Funktion split() , um den Wert von normalizedScriptName in ein Array umzuwandeln, wobei der Backslash (\) als Trennzeichen verwendet wird, und weist den umgewandelten Wert folderArray zu. Dadurch werden alle Backslashes im Skriptpfad durch ein Pipe-Zeichen (|) ersetzt, wodurch der Pfad und der Skriptname in ein Array umgewandelt werden. Wenn beispielsweise der Wert von normalizedScriptName Prod\ScriptFolder3\ScriptExample1 ist, wird der Wert von folderArray zu Prod|ScriptFolder3|ScriptExample1.

    2. Erstellt eine Variable namens env, die den Namen des aktuellen Ordners der Entwicklungs-Workflow-Phase enthält. Der Snippet füllt env mit dem Inhalt des ersten Array-Elements. Dem Beispiel im vorhergehenden Schritt folgend hätte env den Wert Prod.

  3. Erstellt den Pfad zum Ordner des aktuellen Skripts und speichert ihn in einer Variablen. Der Pfadwert enthält nicht den Namen des Skripts. Dazu der Codeausschnitt:

    1. Verwendet eine FOR-Schleife, um den Wert jedes Elements in folderArray zu einer neuen Variable folderPath hinzuzufügen, getrennt durch einen Backslash (\).

  4. Enthält eine IF-Anweisung, die überprüft, ob die Variable env mit einem Wert (IF env.length = 0) gefüllt ist. Wenn dies nicht der Fall ist, wird standardmäßig dev darauf angewendet. Diese IF-Anweisung dient als Backup für den Fall, dass während der vorhergehenden IF-Anweisung etwas passiert und env nicht ausgefüllt wird.

    Es ist wichtig, dass diese Variable einen geeigneten Wert hat, da sie häufig in Studio-Skripten verwendet wird, um die Umgebung zu bestimmen, die in verschiedenen Situationen verwendet wird, in denen das Skript mit einem System interagiert, das möglicherweise eine Sandbox- oder Entwicklungsversion und eine Produktionsversion hat. Dies ist beispielsweise bei Integrationen mit CRMsGeschlossen Systeme von Drittanbietern, die z. B. Kontakte, Vertriebsinformationen, Supportdetails und Fallgeschichten verwalten. üblich. Sie können den Wert so ändern, dass er mit dem Namen des Entwicklungsphasenordners Ihrer Organisation übereinstimmt.

  5. Definiert und füllt Variablen, um den absoluten Pfad zum Speicherort der folgenden Ordner basierend auf folderPath zu speichern:

    • Die Ordner, die die Skripte enthalten, die die Aktion RUNSCRIPT startet, Wert:

      ASSIGN scriptPath = "~{folderPath}\"

    • Der Ordner, der die Eingabeaufforderungen enthält, die von den nachfolgenden Skripten verwendet werden:

      ASSIGN promptPath = "~{folderPath}\Prompts\"

    • Der Ordner, der die Grammatikdateien enthält, die das/die nachfolgende(n) Skript(e) verwenden:
      ASSIGN grammarPath = "~{folderPath}\Grammars\"

    Sie können zusätzliche Variablen erstellen, um Pfade zu den Speicherorten anderer Dateien zu speichern, die Ihre Organisation verwendet, beispielsweise Voicemail.

Der vorangehende Codeausschnitt erstellt einen absoluten Pfad. Sie können diese Variable in jedem nachfolgenden Skript verwenden, das einen Ordnerpfad in einem Snippet oder einer Aktionseigenschaftskonfiguration erfordert. Wenn die von Ihnen verwendete Aktion relative Pfade unterstützt, können Sie die Variable folderPath auch nicht verwenden. Die Best Practice in Studio besteht jedoch darin, wenn möglich absolute Pfade zu verwenden, auch wenn relative Pfade ebenfalls unterstützt werden.

Eingabeskript-Snippet anpassen

Damit der Beispiel-Eintragsskriptausschnitt mit Ihren Skripten funktioniert, müssen Sie einige der Variablen anpassen:

Sie können diese Variablennamen bei Bedarf ändern. Wenn Sie jedoch die Namen von Variablen ändern, die bereits in anderen Skripten verwendet wurden, müssen Sie jede Instanz des alten Namens in Ihren Skripten ändern. Ändern Sie den Namen von env nicht.

Sie können unter anderem folgende zusätzliche Anpassungen vornehmen:

  • Wenn Sie in Ihren Skripten auf andere Ordner verweisen, fügen Sie Variablen hinzu und konfigurieren Sie deren Werte entsprechend, indem Sie dem Beispiel der vorhandenen Variablen folgen.

  • Ändern Sie in der folgenden IF-Anweisung den env zugewiesenen Standardwert so, dass er dem Ordner der obersten Ebene für Ihre Entwicklungsphase entspricht:

    
    IF env.length = 0
     {
      ASSIGN env = "DEV"
     }

Einrichten eines Eingabeskripts zum Starten mehrerer Skripte

Sie können ein Eingabeskript einrichten, um auszuwählen, welches Skript die Aktion RUNSCRIPT startet. Dies ist hilfreich, wenn Sie dasselbe Eingabeskript für mehrere Hauptskripte verwenden möchten.

Um dies einzurichten, fügen Sie dem SNIPPET im Eingabeskript eine Skriptlogik hinzu, die definiert, wie das entsprechende Skript ausgewählt wird. Das folgende Beispiel verwendet eine SWITCH-Anweisung mit DNISGeschlossen Die Nummer, die in eingehenden oder ausgehenden Sprachanrufen gewählt wurde. als Entscheidungskriterium. Sie können jede unterstützte Skriptlogik und alle Kriterien verwenden, um die Anforderungen Ihrer Organisation zu erfüllen. Um diesen Code anzupassen, stellen Sie sicher, dass der Wert jeder nextScript-Variable das entsprechende Skript für ihre Kriterien definiert. Fügen Sie Kommentare mit doppelten Schrägstrichen (//) ein, um Erklärungen zu jedem Skript bereitzustellen.

SWITCH DNIS // choose the next script based on a DNIS
{
CASE 8885551234  {
	ASSIGN nextScript = "{scriptPath}MainGreeting1"
  }
CASE 8005552345
  {
    ASSIGN nextScript = "{scriptPath}MainGreeting2" 
  }
CASE 6145554567  {
    ASSIGN nextScript = "{scriptPath}MainGreeting3" 
  }
DEFAULT
  {
    ASSIGN nextScript = "{scriptPath}MainGreeting4" 
  }

Verwenden Sie Pfadvariablen in Skripten

Nachdem Sie Ihr Eingabeskript eingerichtet haben, müssen Sie die darin definierten Variablen in Ihren anderen Skripten verwenden.

Ändern Sie keine Produktionsskripte. Arbeiten Sie nach Möglichkeit immer mit der Entwicklungsversion eines Skripts. Testen Sie alle Änderungen, bevor Sie das Skript wieder in die Produktion überführen. Wenn Sie Änderungen direkt an Produktionsskripten vornehmen, kann es sein, dass Kontakte nicht an den betroffenen AnsprechpartnerGeschlossen Der Eintrittspunkt, den ein eingehender Kontakt verwendet, um eine Interaktion zu initiieren, wie z. B. Telefonnummer oder E-Mail-Adresse. weitergeleitet werden.

  1. Gehen Sie in Studio Ihre Skripte durch und suchen Sie nach Fällen, in denen Dateipfade verwendet werden. Pfade können in Eigenschaftskonfigurationen, Beschriftungen, Variablenwerten und Snippet-Code angezeigt werden. Achten Sie insbesondere auf Aktionen wie RUBSUB, RUNSCRIPT, SPAWN, MUSIC, PLAY, WHISPER und alle ASR oder dateibezogenen Aktionen. Sie können nach Skripten suchen, die bestimmte Aktionen enthalten oder deren Beschriftungen Ordnernamen aufweisen.

  2. Ersetzen Sie den entsprechenden Teil des Dateipfads durch die entsprechende Variable, wie in Ihrem Eingabeskript definiert. Wenn beispielsweise eine MENU-Aktion eine Sequence-Eigenschaft hat, die zum Abspielen von 01MainGreetingMenu.wav konfiguriert ist, ändern Sie diese in "{promptPath}01MainGreetingMenu.wav". Das folgende Bild zeigt mehrere Beispiele hierfür in einem Skript.