Scripting con archivos y carpetas

Puede trabajar con archivos en scripts de Studio. Los archivos deben existir en su sistema CXone Mpower. Puede ver los archivos en CXone Mpower en la página de exploración de ACD Archivos. Puede cargar y descargar archivos desde esta página. También puedes cargar y descargar archivos usando Desktop Studio.

Hay acciones que le permiten explorar archivos en su CXone Mpowersistema:

Hay acciones que le permiten enviar archivos por correo electrónico o FTP/SFTP:

  • EMAILEMAIL: Envía un correo electrónico con un archivo adjunto.
  • EMAILEMAIL (Scripts digitales): Envía un correo electrónico con un archivo adjunto.
  • AttachAttach: Adjunta archivos a los correos electrónicos generados.
  • SendfileSendfile: Envía archivos a través de FTP o SFTP.

Hay acciones que te permiten usar archivos de audio pregrabados o indicaciones en tus interacciones:

  • MENU : reproduce un mensaje o un archivo de audio pregrabado para el contacto y crea un menú de opciones para que elija entre.
  • Play : Reproduce archivos de audio WAV personalizados o indicaciones de texto a voz (TTSCerrado Permite a los usuarios ingresar indicaciones grabadas como texto y usar una voz generada por computadora para decir el contenido.). Si se utiliza un archivo, se reproduce el archivo completo. Solo el contacto puede escuchar el audio.
  • Playlog : Reproduce archivos WAV de audio personalizados que solo el contacto puede escuchar. Le permite seleccionar un punto específico de inicio y parada. No es posible reproducir archivos de música que estén integrados en otras acciones, como Music.
  • Reqagent: Reproduce archivos WAV de audio personalizados o mensajes de texto a voz que solo el agente escucha. El aviso se reproduce antes de que el agente y el contacto se vinculen, por lo que no genera un silencio al contacto.
  • Whisper : Reproduce archivos WAV personalizados o indicaciones de texto a voz. Puede configurarlo para que lo escuche solo el contacto, solo el agente o ambos. El aviso se reproduce después de que el agente y el contacto se vinculan, por lo que si la acción se reproduce solo para el agente o el contacto, la otra parte escucha un silencio que dura lo mismo que el aviso.

Una acción final es la acción CONCATWAV , que le permite concatenar dos archivos WAV.

Rutas de archivos

Cuando debe mencionar rutas de archivos en sus scripts, consulte la página de ayuda de la acción que está usando. Algunas acciones utilizan rutas absolutas. Otras necesitan usar una ruta relativa. Si la página de ayuda no lo especifica y un tipo de ruta no funciona en su script, intente con el otro. La diferencia entre una ruta absoluta y una relativa es la siguiente:

  • Ruta absoluta: siempre comienza en la carpeta raíz. No importa dónde se encuentre el archivo de script en relación con el archivo o script al que hace referencia. Utilice una tilde y una barra invertida (~\) para indicar la carpeta raíz. Por ejemplo, ~\Carpeta\archivo.wav.
  • Ruta relativa: describe la ubicación del archivo al que haces referencia en relación con el archivo de script, comenzando en la ubicación del archivo de script. Si el archivo está ubicado en una subcarpeta dentro de la misma carpeta que el script, trate la ubicación del script como la raíz e incluya los nombres de las subcarpetas en su ruta. Por ejemplo, si el script está en \Carpeta y archivo.wav está en \Carpeta\Subcarpeta1, deberá escribir la ruta de esta manera: \Subcarpeta1\archivo.wav. Si el archivo está fuera de la carpeta del script, o si una ruta relativa no funciona, utilice una ruta absoluta en su lugar.

Es una mejor práctica en Studio utilizar rutas absolutas siempre que sea posible, incluso cuando también se admiten rutas relativas. Esto es especialmente importante cuando se hace referencia a un archivo que se encuentra en otra carpeta. Esta práctica recomendada se aplica siempre que se hace referencia a archivos en scripts, no solo cuando se trabaja con etapas del flujo de trabajo de desarrollo.

Gestión de rutas de archivos en scripts

Los scripts en Studio rara vez existen de forma aislada. Normalmente se organizan en varias carpetas para permitir la reutilización y la personalización. Otros archivos utilizados con scripts, como indicaciones de audio o archivos de gramática ASRCerrado Reconocimiento automático de voz. Permite a los contactos responder a las indicaciones hablando, presionando las teclas del teléfono o ambos., se encuentran en carpetas separadas. Si su empresa utiliza las Studio etapas del flujo de trabajo de desarrollo, también tiene carpetas relacionadas con las etapas que permiten una promoción controlada. Los scripts frecuentemente hacen referencia a otros scripts ubicados en carpetas diferentes, la administración de rutas es necesaria para una ejecución exitosa de scripts.

Puede utilizar la sustitución de variables en las rutas de archivos para crear una forma consistente y confiable de administrar rutas en sus scripts. Esto ayuda a garantizar que las referencias a otros scripts, indicaciones de audio, gramáticas ASR y otros archivos sean más precisas en todo el ecosistema de scripts.

La gestión de rutas permite que los scripts encuentren y ejecuten otros scripts o utilicen otros archivos a través de los límites de carpetas. Al utilizar la sustitución de variables para las rutas de archivos, tendrá rutas definidas en una pequeña cantidad de lugares. Si las carpetas o los archivos cambian, solo necesita actualizar la ruta en un lugar, en lugar de tener que buscar cada referencia al archivo.

Sustitución de variables para rutas de archivos

El uso de sustitución de variables para rutas de archivos le permite definir:

  • La ruta absoluta a las carpetas que contienen scripts o archivos a los que hace referencia en los scripts. Cuando haga referencia a scripts o archivos ubicados en otras carpetas, debe utilizar una ruta absoluta.

  • Rutas que se actualizan automáticamente cuando se promueve un script. Esta opción solo se aplica si su empresa utiliza Studio etapas del flujo de trabajo de desarrollo.

  • Rutas a carpetas y archivos en una sola ubicación o en una pequeña cantidad de ubicaciones. Esto hace que sea más fácil cuando necesitas actualizar la ruta, porque sabes dónde se crearon las variables.

Puede crear variables para contener la ruta a cada tipo de archivo al que haga referencia, como indicaciones, gramáticas, mensajes de voz, otros scripts, etc. Si un script guarda archivos o lee archivos de una carpeta, también puedes usar variables para esas rutas.

Cuando necesite hacer referencia a un archivo, utilice la variable en lugar de la ruta. Por ejemplo, cree una variable para la ruta a sus archivos de solicitud y úsela en las propiedades acciónCerrado Realiza un proceso dentro de un script de Studio como recopilar datos de clientes, o reproducir música. cuando especifique una solicitud. Podría parecerse al siguiente ejemplo: {promptPath}Greeting.wav.

Para automatizar la actualización de las variables de ruta, puede utilizar una SNIPPET acción y escribir código para determinar en qué carpeta de etapa de desarrollo se encuentra el script y luego actualizar la ruta en consecuencia. El resto de esta página de ayuda describe un ejemplo de un fragmento que puede utilizar como modelo en sus secuencias de comandos.

Si su organización tiene varios desarrolladores de scripts, trabajen juntos para desarrollar una estrategia para usar la sustitución de variables para rutas de archivos. Esto ahorrará tiempo y garantizará que todos sepan qué variables utilizar.

Ejemplo de sustitución de variable de ruta de archivo

El ejemplo de sustitución de variables para rutas de archivos se configura como un script de entrada. Un script de entrada es el script predeterminado configurado en un punto de contactoCerrado El punto de entrada que utiliza un contacto entrante para iniciar una interacción, como un número de teléfono o una dirección de correo electrónico. (POC). En el ejemplo, el script de entrada se ejecuta en otro script que realiza el enrutamiento del canal. También puede utilizar un script de entrada como script predeterminado para más de un POC y hacer que se ejecute en el script de enrutamiento adecuado según criterios como ACD habilidadCerrado Se utiliza para automatizar la entrega de interacciones basadas en las habilidades, capacidades y conocimientos de los agentes. o DNISCerrado El número marcado en las llamadas de voz entrantes o salientes.. El beneficio de usar un script de entrada para múltiples POC es reducir las posibilidades de errores al tener las sustituciones de variables de ruta de archivo definidas en un solo lugar.

El script de entrada de ejemplo contiene una acción BEGIN conectada a una acción SNIPPET y una RUNSCRIPT, como se muestra en la siguiente imagen.

La acción SNIPPET contiene código que determina el nombre y la ruta del script que se está ejecutando. Esta información se utiliza para crear una ruta absoluta a las carpetas que contienen los scripts, las indicaciones, etc. Puedes escribir tu propio código o usar este ejemplo:

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

Este código de ejemplo utiliza una instrucción SELECT con varias CASEs. Cada CASE representa una de las variables del sistema que pueden contener el nombre y la ruta del script actual. La variable utilizada en un script particular depende del tipo de script. El fragmento:

  1. Encuentra la variable del sistema que contiene la ruta y el nombre del script actual. Para ello:

    1. Evalúa cada CASE para ver si el valor de la variable especificada tiene una longitud mayor que 0.
    2. Si es así, el fragmento selecciona CASE y asigna el valor de la variable a la variable normalizedScriptName.
  2. Determina el nombre de la carpeta de la etapa del flujo de trabajo de desarrollo donde se encuentra el script. Para ello:

    1. Utiliza la función split() para convertir el valor de normalizedScriptName en una matriz usando el carácter de barra invertida (\) como delimitador y asigna el valor convertido a folderArray. Esto reemplaza todas las barras invertidas en la ruta del script con un carácter de barra vertical (|), que convierte la ruta y el nombre del script en una matriz. Por ejemplo, si el valor de normalizedScriptName es Prod\ScriptFolder3\ScriptExample1, el valor de folderArray se convierte en Prod|ScriptFolder3|ScriptExample1.

    2. Crea una variable llamada env para contener el nombre de la carpeta de la etapa del flujo de trabajo de desarrollo actual. El fragmento rellena env con el contenido del primer elemento de la matriz. Siguiendo el ejemplo del paso anterior, env tendría un valor de Prod.

  3. Construye la ruta a la carpeta del script actual y la almacena en una variable. El valor de la ruta no incluye el nombre del script. Para ello, el fragmento:

    1. Utiliza un bucle FOR para agregar el valor de cada elemento en folderArray a una nueva variable, folderPath, separada por una barra invertida (\).

  4. Contiene una declaración IF que verifica que la variable env esté rellena con un valor (IF env.length = 0). Si no es así, le aplica dev como predeterminado. Esta declaración IF actúa como respaldo en caso de que algo suceda durante la declaración IF anterior y env no se complete.

    Es importante que esta variable tenga un valor apropiado porque se usa comúnmente en scripts Studio para determinar el entorno que se utiliza en una variedad de situaciones en las que el script interactúa con un sistema que puede tener una versión sandbox o de desarrollo y una versión de producción. Por ejemplo, esto es común con las integraciones con CRMCerrado Sistemas de terceros que administran cosas como contactos, información de ventas, detalles de soporte e historiales de casos.. Puede modificar el valor para que coincida con el nombre de la carpeta de la etapa de desarrollo de su organización.

  5. Define y rellena variables para contener la ruta absoluta a la ubicación de las siguientes carpetas según folderPath:

    • Las carpetas que contienen los scripts que inicia la acción RUNSCRIPT, valor:

      ASSIGN scriptPath = "~{folderPath}\"

    • La carpeta que contiene las indicaciones que utilizan el script o los scripts posteriores:

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

    • La carpeta que contiene los archivos de gramática que utilizan los scripts subsiguientes:
      ASSIGN grammarPath = "~{folderPath}\Grammars\"

    Puede crear variables adicionales para contener rutas a las ubicaciones de otros archivos que utiliza su organización, como el correo de voz.

El fragmento anterior crea una ruta absoluta. Puede utilizar esta variable en cualquier script posterior que requiera una ruta de carpeta en un fragmento o una configuración de propiedad de acción. Si la acción que estás utilizando admite rutas relativas, puedes elegir no utilizar la variable folderPath. Sin embargo, la mejor práctica en Studio es utilizar rutas absolutas cuando sea posible, incluso cuando también se admiten rutas relativas.

Personalizar Snippet de script de entrada

Para permitir que el fragmento de script de entrada de ejemplo funcione con sus scripts, debe personalizar algunas de las variables:

Puede modificar estos nombres de variables si lo desea. Sin embargo, si cambia los nombres de variables que ya se han utilizado en otros scripts, deberá cambiar cada instancia del nombre antiguo en sus scripts. No cambie el nombre de env.

Las personalizaciones adicionales que puedes realizar incluyen:

  • Si tiene otras carpetas a las que hace referencia en sus scripts, agregue variables y configure sus valores adecuadamente, siguiendo el ejemplo de las variables existentes.

  • En la siguiente declaración IF, modifique el valor predeterminado asignado a env para que coincida con la carpeta de nivel superior para su etapa de desarrollo:

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

Configurar un script de entrada para iniciar varios scripts

Puede configurar un script de entrada para elegir qué script inicia la acción RUNSCRIPT. Esto es útil si desea utilizar el mismo script de entrada para varios scripts principales.

Para configurar esto, agregue lógica de script al SNIPPET en el script de entrada que define cómo se selecciona el script apropiado. El siguiente ejemplo utiliza una declaración SWITCH con DNISCerrado El número marcado en las llamadas de voz entrantes o salientes. como criterio de toma de decisiones. Puede utilizar cualquier lógica y criterios de scripting compatibles para satisfacer las necesidades de su organización. Para personalizar este código, asegúrese de que el valor de cada variable nextScript defina el script apropiado para sus criterios. Incluya comentarios con barras diagonales dobles (//) para proporcionar explicaciones de cada 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" 
  }

Usar variables de ruta en scripts

Después de configurar su script de entrada, deberá utilizar las variables definidas en él en sus otros scripts.

No modifique los scripts de producción. Trabaje siempre con la versión de desarrollo de un script cuando sea posible. Pruebe todos los cambios antes de promover el script nuevamente a producción. Realizar cambios directamente en los scripts de producción puede provocar que los contactos no se dirijan al punto de contactoCerrado El punto de entrada que utiliza un contacto entrante para iniciar una interacción, como un número de teléfono o una dirección de correo electrónico. afectado.

  1. En Studio, revise sus scripts y busque instancias donde se utilizan rutas de archivos. Las rutas pueden aparecer en configuraciones de propiedades, títulos, valores de variables y fragmentos de código. En particular, observe acciones como RUBSUB, RUNSCRIPT, SPAWN, MUSIC, PLAY, WHISPER y cualquiera de las ASR o acciones relacionadas con archivos. Puede buscar scripts que contengan determinadas acciones o que tengan nombres de carpetas en sus títulos.

  2. Reemplace la parte apropiada de la ruta del archivo con la variable correspondiente según lo definido en su script de entrada. Por ejemplo, si una acción MENU tiene una propiedad Sequence configurada para reproducir 01MainGreetingMenu.wav, deberá cambiarla a "{promptPath}01MainGreetingMenu.wav". La siguiente imagen muestra varios ejemplos de esto en un script.