Scripting avec des fichiers et des dossiers

Vous pouvez travailler avec des fichiers dans des scripts Studio. Les fichiers doivent exister sur votre système CXone Mpower. Vous pouvez voir les fichiers de votre CXone Mpower sur la page Parcourir ACDles fichiers. Vous pouvez charger et télécharger des fichiers de cette page. Vous pouvez également téléverser et télécharger des fichiers en utilisant Desktop Studio.

Il existe des actions qui vous permettent d'explorer les fichiers de votre CXone Mpowersystème :

Certaines actions vous permettent d'envoyer des fichiers par e-mail ou par FTP/SFTP :

  • EMAILEMAIL : envoi d'un e-mail avec un fichier en pièce jointe.
  • EMAILEMAIL (Scripts numériques) : envoie un e-mail avec un fichier en pièce jointe.
  • AttachAttach : attache des fichiers aux e-mails générés.
  • SendfileSendfile : envoie des fichiers via FTP ou SFTP.

Il existe des actions qui vous permettent d'utiliser des fichiers audio préenregistrés ou des invites dans vos interactions :

  • MENU  : Lit une invite ou un fichier audio préenregistré pour le contact et crée un menu d'options parmi lesquelles il peut choisir .
  • Play  : lit des fichiers audio WAV personnalisés ou des invites de synthèse vocale (TTSFermé Permet aux utilisateurs de saisir des invites enregistrées sous forme de texte et d'utiliser une voix générée par ordinateur pour lire le contenu.). Si vous utilisez un fichier, le fichier entier est lu. Seul le contact peut entendre l'audio.
  • Playlog  : lit des fichiers audio WAV personnalisés que seul le contact peut entendre. Vous pouvez sélectionner des points de début et de fin précis. Il est impossible de lire les fichiers musicaux qui sont intégrés à d’autres actions, comme Music.
  • Reqagent: Lit des fichiers audio WAV personnalisés ou des invites de synthèse vocale que seul l'agent entend. Pour éviter que le contact entende un temps de silence, l’invite est lue avant que l’agent et le contact soient mis en relation.
  • Whisper  : lit des fichiers WAV personnalisés ou des invites de synthèse vocale. Vous pouvez déterminer que ces fichiers soit audibles par le contact uniquement, l'agent uniquement ou les deux. L’invite est lue après la mise en relation de l’agent et du contact ; par conséquent, si l’action lit l’invite uniquement à l’agent ou au contact, l’autre partie entend un silence pendant ce temps.

Une dernière action est l'action CONCATWAV , qui vous permet de concaténer deux fichiers WAV.

Chemins d'accès aux fichiers

Lorsque vous devez faire référence à des chemins de fichiers dans vos scripts, consultez la page d'aide de l'action que vous utilisez. Certaines actions utilisent des chemins absolus. D'autres requièrent un chemin relatif. Si la page d'aide ne le précise pas et qu'un type de chemin ne fonctionne pas dans votre script, essayez l'autre type. La différence entre les chemins d'accès absolus et relatifs est la suivante :

  • Chemin absolu : Commence toujours au dossier racine. L'emplacement du fichier de script par rapport au fichier ou au script auquel vous faites référence n'a aucune importance. Utilisez un tilde et une barre oblique inverse (~\) pour indiquer le dossier racine. Par exemple, ~\Dossier\fichier.wav.
  • Chemin relatif : Décrit l’emplacement du fichier auquel vous faites référence par rapport au fichier de script, en commençant par l’emplacement du fichier de script. Si le fichier se trouve dans un sous-dossier du même dossier que le script, traitez l'emplacement du script comme la racine et incluez les noms des sous-dossiers dans votre chemin. Par exemple, si le script se trouve dans \Folder, et file.wav se trouve dans \Folder\Subfolder1, vous écririez le chemin comme ceci : \Subfolder1\file.wav. Si le fichier se trouve en dehors du dossier du script, ou si un chemin relatif ne fonctionne pas, utilisez plutôt un chemin absolu.

C'est une bonne pratique dans Studio d'utiliser des chemins absolus lorsque cela est possible, même lorsque les chemins relatifs sont également pris en charge. Ceci est particulièrement important lorsqu'on fait référence à un fichier situé dans un autre dossier. Cette bonne pratique s'applique chaque fois que vous faites référence à des fichiers dans des scripts, et pas seulement lors du travail sur les étapes du flux de travail de développement.

Gestion des chemins de fichiers dans les Scripts

Les Scripts dans Studio existent rarement de manière isolée. Ils sont généralement organisés dans plusieurs dossiers afin de faciliter leur réutilisation et leur personnalisation. D'autres fichiers utilisés avec les scripts, tels que les invites audio ou les fichiers de grammaire ASRFermé Reconnaissance vocale automatique. Permet aux contacts de répondre à des invites en parlant, en appuyant sur les touches du téléphone ou les deux., sont situés dans des dossiers séparés. Si votre entreprise utilise les étapes de flux de travail de développement Studio , vous disposez également de dossiers liés à l'étape qui permettent une promotion contrôlée. Les Scripts font fréquemment référence à d'autres Scripts situés dans différents dossiers ; la gestion des chemins d'accès est donc nécessaire au bon fonctionnement des Scripts.

Vous pouvez utiliser la substitution de variables dans les chemins de fichiers pour créer une méthode cohérente et fiable de gestion des chemins dans vos scripts. Cela permet de garantir que les références à d'autres scripts, invites audio, grammaires ASR et autres fichiers soient plus précises dans l'ensemble de votre écosystème de scripts.

La gestion des chemins permet aux scripts de trouver et d'exécuter d'autres scripts ou d'utiliser d'autres fichiers au-delà des limites des dossiers. En utilisant la substitution de variables pour les chemins de fichiers, vous n'avez plus que des chemins définis à un petit nombre d'endroits. Si des dossiers ou des fichiers changent, il vous suffit de mettre à jour le chemin d'accès à un seul endroit, au lieu de devoir rechercher chaque référence au fichier.

Substitution de variables pour les chemins de fichiers

L'utilisation de la substitution de variables pour les chemins de fichiers vous permet de définir :

  • Le chemin absolu vers les dossiers contenant les scripts ou les fichiers auxquels vous faites référence dans les scripts. Lorsque vous faites référence à des scripts ou à des fichiers situés dans d'autres dossiers, vous devez utiliser un chemin absolu.

  • Chemins d'accès qui se mettent à jour automatiquement lorsqu'un script est promu. Cette option s'applique uniquement si votre entreprise utilise les étapes de flux de travail de développement Studio.

  • Chemins d'accès aux dossiers et fichiers situés à un seul emplacement, ou à un petit nombre d'emplacements. Cela facilite la mise à jour du chemin d'accès, car vous savez où les variables ont été créées.

Vous pouvez créer des variables pour stocker le chemin d'accès à chaque type de fichier auquel vous faites référence, comme les invites, les grammaires, les messages vocaux, d'autres scripts, etc. Si un script enregistre ou lit des fichiers dans un dossier, vous pouvez également utiliser des variables pour ces chemins.

Lorsque vous devez référencer un fichier, utilisez la variable à la place du chemin. Par exemple, créez une variable pour le chemin d'accès à vos fichiers d'invite et utilisez-la dans les propriétés actionFermé Accomplit un processus au sein d’un script Studio, comme la collecte de données client ou la lecture d’un morceau de musique. lorsque vous spécifiez une invite. Cela pourrait ressembler à l'exemple suivant : {promptPath}Greeting.wav.

Pour automatiser la mise à jour des variables de chemin, vous pouvez utiliser une SNIPPET action et écrire du code pour déterminer dans quel dossier de stade de développement se trouve le script, puis mettre à jour le chemin en conséquence. Le reste de cette page d’aide décrit un exemple d’extrait que vous pouvez utiliser comme modèle dans votre script.

Si votre organisation compte plusieurs développeurs de scripts, travaillez ensemble pour élaborer une stratégie d'utilisation de la substitution de variables pour les chemins de fichiers. Cela permettra de gagner du temps et de garantir que tout le monde sache quelles variables utiliser.

Exemple de substitution de variable de chemin de fichier

L'exemple de substitution de variable pour les chemins de fichiers est configuré comme un script d'entrée. Un script d'entrée est le script par défaut configuré dans un point de contactFermé Le point d'entrée qu'un contact entrant utilise pour initier une interaction, tel qu'un numéro de téléphone ou une adresse e-mail. (POC). Dans cet exemple, le script d'entrée s'exécute sur un autre script qui effectue le routage du canal. Vous pouvez également utiliser un script d'entrée comme script par défaut pour plusieurs POC et le faire exécuter vers le script de routage approprié en fonction de critères tels que ACD skillFermé Utilisées pour automatiser la livraison des interactions en fonction des compétences, des capacités et des connaissances des agents ou DNISFermé Le numéro composé sur les appels vocaux entrants ou sortants.. L’avantage d’utiliser un script d’entrée pour plusieurs POC est de réduire les risques d’erreurs en définissant vos substitutions de variables de chemin de fichier à un seul endroit.

L'exemple de script d'entrée contient une action BEGIN connectée à une action SNIPPET et une action RUNSCRIPT, comme illustré dans l'image suivante.

L'action SNIPPET contient du code qui détermine le nom et le chemin d'accès au script en cours d'exécution. Ces informations sont utilisées pour créer un chemin absolu vers les dossiers contenant les scripts, les invites, etc. Vous pouvez écrire votre propre code ou utiliser cet exemple :

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\"

Cet exemple de code utilise une SELECT instruction avec plusieurs CASEs. Chaque CASE représente l'une des variables système qui peuvent contenir le nom et le chemin du script actuel. La variable utilisée dans un script particulier dépend du type de script. L'extrait :

  1. Recherche la variable système qui contient le chemin d'accès et le nom du script actuel. Pour ce faire, il faut :

    1. Évalue chaque CASE pour voir si la valeur de la variable spécifiée a une longueur supérieure à 0.
    2. Si c'est le cas, l'extrait sélectionne cette CASE et attribue la valeur de la variable à la variable normalizedScriptName.
  2. Détermine le nom du dossier de l'étape du workflow de développement dans lequel se trouve le script. Pour ce faire, il faut :

    1. Utilise la fonction split() pour convertir la valeur de normalizedScriptName en un tableau en utilisant le caractère barre oblique inverse (\) comme délimiteur et attribue la valeur convertie à folderArray. Cela remplace toutes les barres obliques inverses dans le chemin du script par un caractère de pipe (|), qui convertit le chemin et le nom du script en un tableau. Par exemple, si la valeur de normalizedScriptName est Prod\ScriptFolder3\ScriptExample1, la valeur de folderArray devient Prod|ScriptFolder3|ScriptExample1.

    2. Crée une variable appelée env pour contenir le nom du dossier de l'étape de flux de travail de développement actuel. L'extrait remplit env avec le contenu du premier élément du tableau. En suivant l’exemple de l’étape précédente, env aurait une valeur de Prod.

  3. Crée le chemin vers le dossier du script actuel et le stocke dans une variable. La valeur du chemin n'inclut pas le nom du script. Pour ce faire, l'extrait :

    1. Utilise une boucle FOR pour ajouter la valeur de chaque élément de folderArray à une nouvelle variable, folderPath, séparée par une barre oblique inverse (\).

  4. Contient une instruction IF qui vérifie que la variable env est renseignée avec une valeur (IF env.length = 0). Si ce n'est pas le cas, il lui applique dev par défaut. Cette instruction IF agit comme une sauvegarde au cas où quelque chose se produirait pendant l'instruction IF précédente et que env n'est pas renseigné.

    Il est important que cette variable ait une valeur appropriée car elle est couramment utilisée dans les scripts Studio pour déterminer l'environnement utilisé dans diverses situations où le script interagit avec un système qui peut avoir une version sandbox ou de développement et une version de production. Par exemple, cela est courant avec les intégrations avec les CRMFermé Systèmes tiers qui gèrent des éléments tels que les contacts, les informations sur les ventes, les détails de l'assistance et les historiques de cas.. Vous pouvez modifier la valeur pour qu'elle corresponde au nom du dossier de phase de développement de votre organisation.

  5. Définit et remplit les variables pour contenir le chemin absolu vers l'emplacement des dossiers suivants en fonction de folderPath :

    • Les dossiers qui contiennent les scripts lancés par l'action RUNSCRIPT, valeur :

      ASSIGN scriptPath = "~{folderPath}\"

    • Le dossier qui contient les invites que le ou les scripts suivants utilisent :

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

    • Le dossier qui contient les fichiers de grammaire que le ou les scripts suivants utilisent :
      ASSIGN grammarPath = "~{folderPath}\Grammars\"

    Vous pouvez créer des variables supplémentaires pour conserver les chemins d’accès aux emplacements d’autres fichiers utilisés par votre organisation, tels que la messagerie vocale.

L'extrait précédent crée un chemin absolu. Vous pouvez utiliser cette variable dans tout script ultérieur qui nécessite un chemin de dossier dans un extrait ou une configuration de propriété d'action. Si l'action que vous utilisez prend en charge les chemins relatifs, vous pouvez choisir de ne pas utiliser la variable folderPath. Cependant, la meilleure pratique dans Studio est d'utiliser des chemins absolus lorsque cela est possible, même lorsque les chemins relatifs sont également pris en charge.

Personnaliser l'extrait de script d'entrée

Pour permettre à l'extrait de script d'entrée d'exemple de fonctionner avec vos scripts, vous devez personnaliser certaines des variables :

  • scriptPath : modifiez la valeur pour inclure tous les noms de sous-dossiers non déjà inclus dans la variable scriptPath, le cas échéant.

  • promptPath : Dans la valeur attribuée, remplacez \Prompts\ par le nom du dossier dans lequel vos fichiers audio d'invite préenregistrés sont enregistrés. Incluez tous les noms de sous-dossiers, le cas échéant.

  • grammarPath : Si vous utilisez ASRFermé Reconnaissance vocale automatique. Permet aux contacts de répondre à des invites en parlant, en appuyant sur les touches du téléphone ou les deux., remplacez \Grammars\ dans la valeur attribuée par le nom du dossier dans lequel vos fichiers de grammaire sont enregistrés, incluez tous les noms de sous-dossiers, le cas échéant. Si vous n'utilisez pas ASR, vous pouvez supprimer cette variable.

Vous pouvez modifier ces noms de variables si vous le souhaitez. Cependant, si vous modifiez les noms de variables qui ont déjà été utilisées dans d’autres scripts, vous devez modifier chaque instance de l’ancien nom dans vos scripts. Ne changez pas le nom de env.

Les personnalisations supplémentaires que vous pouvez effectuer incluent :

  • Si vous avez d’autres dossiers auxquels vous faites référence dans vos scripts, ajoutez des variables et configurez leurs valeurs de manière appropriée, en suivant l’exemple des variables existantes.

  • Dans l'instruction IF suivante, modifiez la valeur par défaut attribuée à env pour qu'elle corresponde au dossier de niveau supérieur de votre étape de développement :

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

Configurer un script d'entrée pour lancer plusieurs scripts

Vous pouvez configurer un script d'entrée pour choisir le script que l'action RUNSCRIPT lance. Ceci est utile si vous souhaitez utiliser le même script d'entrée pour plusieurs scripts principaux.

Pour configurer cela, ajoutez une logique de script au SNIPPET dans le script d'entrée qui définit comment le script approprié est sélectionné. L'exemple suivant utilise une instruction SWITCH avec DNISFermé Le numéro composé sur les appels vocaux entrants ou sortants. comme critère de prise de décision. Vous pouvez utiliser n’importe quelle logique de script et n’importe quel critère pris en charge pour répondre aux besoins de votre organisation. Pour personnaliser ce code, assurez-vous que la valeur de chaque variable nextScript définit le script approprié pour ses critères. Incluez des commentaires avec des doubles barres obliques (//) pour fournir des explications sur chaque script.

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" 
  }

Utiliser des variables de chemin dans les scripts

Après avoir configuré votre script d'entrée, vous devez utiliser les variables définies dans celui-ci dans vos autres scripts.

Ne modifiez pas les scripts de production. Travaillez toujours avec la version de développement d'un script lorsque cela est possible. Testez toutes les modifications avant de remettre le script en production. Apporter des modifications directement aux scripts de production peut entraîner le non-acheminement des contacts vers le point de contact concerné.

  1. Dans Studio, parcourez vos scripts et recherchez les instances dans lesquelles les chemins de fichiers sont utilisés. Les chemins peuvent apparaître dans les configurations de propriétés, les légendes, les valeurs de variables et les extraits de code. En particulier, examinez les actions telles que RUBSUB, RUNSCRIPT, SPAWN, MUSIC, PLAY, WHISPER et toutes les actions ASR ou liées aux fichiers. Vous pouvez rechercher des scripts qui contiennent certaines actions ou qui ont des noms de dossiers dans leurs légendes.

  2. Remplacez la partie appropriée du chemin du fichier par la variable correspondante telle que définie dans votre script d'entrée. Par exemple, si une action MENU a une propriété Sequence configurée pour lire 01MainGreetingMenu.wav, vous la modifierez en "{promptPath}01MainGreetingMenu.wav". L'image suivante montre plusieurs exemples de cela dans un script.