Integraciones de script
You can create your own script actions in Bot Builder. This allows you to customize how your bot responds in conversations. Script actions are custom bot actions you can use in dialogues
Historias, reglas y flujos en Bot Builder. to define the bot's responses during conversations.
Las acciones de script se crean en las integraciones de script en Bot Builder. Las integraciones de script admiten JavaScript. Cada integración de script puede tener más de una acción. Cuando está habilitada una acción, está disponible en el menú de acciones del bot cuando agrega una respuesta de bot a una historia
Se usa para entrenar a un bot para el manejo de interacciones según la intención y el contexto., regla
Se usa para definir la respuesta de un bot a mensajes que no cambian según el contexto. o alternativa
texto sin formato alternativo que se envía cuando el destino no admite contenido multimedia enriquecido..
La siguiente lista ofrece ejemplos de algunas formas en las que puede utilizar acciones de script:
- Escribir código para diseñar una acción de bot que satisfaga las necesidades únicas de su organización.
- Llame a su propia API externa como una acción del script.
- Agregue Scripts a las habilidades de bot y publíquelas en la Skill Store.
Los scripts de Bot Builder operan en el servidor, por lo que hay algunas Limitaciones que se deben considerar al crear sus scripts.
| Concepto | Definición | Ejemplo | Qué hace el bot |
|---|---|---|---|
|
Enunciado |
Todo lo que un contacto |
"Perdí MI contraseña." "¿Cuál es MI saldo?" "¿Eres un bot?" |
El bot utiliza la Comprensión del Lenguaje Natural (NLU) para analizar cada enunciado de contacto y determinar su significado o intención. |
|
Intención |
Lo que el contacto quiere comunicar o lograr. Cada mensaje que envía el contacto tiene una intención. |
"Perdí MI contraseña" tiene la intención de "restablecer la contraseña". "Hola" tiene la intención de "saludar". |
El bot analiza el mensaje de un contacto utilizando NLU |
|
Entidad |
Información definida en el mensaje de un contacto. | Nombre de la persona o del producto, número de teléfono, número de cuenta, ubicación, etcétera. | El bot utiliza NLU para identificar entidades en el mensaje de un contacto. Las Entidades ayudan al bot a comprender qué significa el mensaje del contacto. |
|
Espacio |
Una entidad extraída del mensaje de un contacto y almacenada para su uso en las respuestas del bot. Similar a una variable. | La creación de un espacio para el nombre del contacto le permite al bot usar ese nombre en las respuestas durante una interacción, haciéndola más personal. | Cuando se configura para esto, el bot extrae una entidad de un mensaje de contacto y la guarda en un espacio. Usted puede hacer que su bot utilice esta información más adelante en la conversación. |
|
Regla |
Define las respuestas del bot a los mensajes que no cambian de significado con el contexto. |
|
Las reglas son una de las dos formas en que puede configurar la manera en que su bot responde a una intención. Las Reglas son útiles para ciertos tipos de intenciones, pero no para todas. |
|
Historia |
Entrena a un bot para manejar una interacción según la intención del mensaje y el contexto conversacional. | En una interacción sobre una contraseña olvidada, el bot respondería a "¿Cómo hago eso?" de una manera. Si la interacción se tratara de crear una nueva cuenta, la respuesta sería bastante diferente, aun cuando en ambos casos el contacto esté usando las mismas palabras con la misma intención: obtener más información. | Las historias son la segunda de dos formas en que puede configurar cómo responde su bot a una intención. Las historias enseñan al bot cómo usar el contexto de la conversación para responder adecuadamente. |
|
Acción del Bot |
Todo lo que un bot dice o hace mientras maneja una interacción. |
En una interacción sobre una contraseña olvidada, el bot responde enviando el enlace a las preguntas frecuentes para restablecer contraseñas en el sitio web. Cuando un contacto expresa frustración, como por ejemplo: "¡No entiendo!¡¡¡No está funcionando!!!" El bot responde con "Lo siento. ¿Quiere que le transfiera a un agente humano?" Cuando el contacto dice sí, el bot inicia la transferencia. |
Las acciones del bot son las opciones que tiene al definir cómo desea que su bot responda a cada intención. Le brindan la flexibilidad de configurar cada respuesta para lograr el resultado que satisfaga las necesidades del contacto. |
Editor de scripts
Una integración de script puede tener más de una acción. Cada de acción tiene su propio script. Puede acceder al editor de script desde las propiedades de cada acción.
En el editor, puede ingresar código en el lado izquierdo y luego hacer clic en el triángulo de ejecución
para ver los resultados en el panel Console.
Use AI para Crear o Editar un script
El contenido de esta sección corresponde a un producto o función que forma parte de un programa de vista previa pública. Si usted no forma parte de la vista previa y desea obtener más información, comuníquese con su representante de cuenta.
Utilice la pestaña Script editor para mostrar el Agente Copilot, donde puede interactuar utilizando lenguaje natural para crear, comprender y modificar scripts de manera más eficiente. Con el Agente Copilot en el Script editor, puede:
-
Generar nuevos Scripts usando avisos de lenguaje natural.
-
Edite los Scripts existentes solicitándole al Agente Copilot que agregue validaciones, condiciones o lógica.
-
Compare las sugerencias de código, visualice comparaciones en paralelo de su código original y el código generado por Agent Copilot.
-
Aceptar o Rechazar las sugerencias de Copilot con un solo clic.
-
Cuando el Agente Copilot genera scripts que hacen referencia a nuevas variables (slots), estas se crean automáticamente y se reflejan en la sección Slots.
-
Instrucciones de varios turnos, en las que puede hacer preguntas de seguimiento o refinar su instrucción (prompt) para mejorar el script de manera iterativa.
-
Contraer el panel de Agente Copilot para una vista de edición más limpia.
Un desarrollador de bots está creando un script para validar la entrada de un usuario para un número de cuenta. En lugar de escribir manualmente la lógica de validación, el desarrollador utiliza Agente Copilot en el Script editor.
El desarrollador escribe un mensaje: "¿Puedes agregar validación para verificar si el número de cuenta tiene 10 dígitos?"
Agente Copilot genera un script con la lógica de validación adecuada.
El desarrollador revisa los cambios {15}sugeridos, los compara con el código original y hace clic en aceptar{18} para aplicar la actualización.
El agente Copilot también detecta que se hace referencia a una nueva ranura accountNumber y la agrega automáticamente a la sección Slots.
El desarrollador continúa refinando el script al hacer preguntas de seguimiento como:
“Agregue un mensaje de error si la entrada no es válida.”
Variables de script
Puede crear variables para usarlas en Bot Builder Scripts. Las variables pueden almacenar un valor para usar en otra parte del script. solo se pueden utilizar en la integrar de scripts donde los crea, pero puede utilizarlos en cualquiera de los scripts de esa integrar.
Los valores de Variable no se pueden cambiar en el script. solo se pueden modificar en la página de integrar del script o cuando se usa una acción que hace referencia a la variable en una respuesta de bot en una historia
Se usa para entrenar a un bot para el manejo de interacciones según la intención y el contexto. , regla
Se usa para definir la respuesta de un bot a mensajes que no cambian según el contexto., o alternativa
texto sin formato alternativo que se envía cuando el destino no admite contenido multimedia enriquecido..
Para usar una variable en una acción:
- El script de la acción debe hacer referencia a la variable.
- Se debe hacer editable en esa acción, si quiere ser capaz de cambiar el valor.
Los Scripts de Bot Builder admiten cuatro tipos de variables:
- Texto: Las variables de texto contienen valores simples de cadena. Una variable de texto editable se convierte en un campo en la UI de la acción del script, donde puede ingresar texto en el campo para asignar un valor a la variable.
- Number: Las variables Number contienen valores numéricos. Una variable de número editable se convierte en un campo en la UI de la acción del script, donde puede ingresar un número en el campo para asignar un valor a la variable.
- Seleccionar: Use variables de selección cuando desee definir múltiples valores posibles para la variable. Una variable de selección se convierte en una lista desplegable en la UI de la acción del script. Las opciones de la lista desplegable se definen en el campo Valores de la definición de la variable, en la pestaña Scripts.
- Secreto: Use variables de secreto para contener datos privados, como tokens o credenciales API. Después de ingresar el valor, Bot Builder enmascara con asteriscos ( * ) todos los caracteres excepto los cinco primeros. El valor es de solo lectura y no puede sobrescribirse ni cambiarse mediante el script ni mediante la acción del script. Si necesita cambiarlo, debe actualizar el valor en la página Variable en el script. Las variables de Secreto no se pueden hacer editables.
Puede definir un valor predeterminado para variables de tipo texto, número y selección. Cuando la Variable es editable, el valor predeterminado se puede sobrescribir seleccionando o ingresando un valor diferente al agregar la acción a una respuesta del bot. Cuando la Variable no se puede editar pero se hace referencia a ella en el script de una acción, se utiliza el valor predeterminado, si tiene uno. Si no hay un valor predeterminado asignado, la variable no tiene valor en el script.
Las variables que usted crea se agregan al objeto Variables en el integrar de script.
Objetos y Funciones estándar
Además de las funcionalidades estándar de JavaScript, Bot Builder posee el siguiente marco específico para bots:
- El objeto Bot ofrece un método alternativo para diseñar las respuestas de su bot durante las conversaciones.
- El objeto Almacén le permite mantener la información de contexto para una ejecución de script.
- El objeto variables contiene todas las variables que agregue a la integrar de script.
- La función fetch es una implementación del estándar JavaScript fetch.
- La consola permite efectuar la depuración.
Debido a que los scripts de Bot Builder operan en el servidor, hay algunas Limitaciones que se deben tener en cuenta al momento de crear sus scripts.
Objeto Bot
El objeto Bot contiene métodos que activan acciones de script. Al escribir un script, el editor web le muestra todos los métodos disponibles, incluidos sus argumentos y tipos. Los siguientes métodos están disponibles cuando se usa el objeto Bot:
- sendMessage
- sendAdaptiveCard
- sendButtons
- sendQuickReplies
- sendCards
- sendMultimedia
- sendRichLink
- sendListPicker
- Transferencia
- addTags
- waitForResponse
- fillSlot
- tragamonedas
- sendAsCustomer
Muchos métodos en el objeto Bot pueden personalizarse opcionalmente con un parámetro options. Options puede ser fallbackText (alternativa) o typing (Smart Typing). Los valores posibles para typing son 1, 2 o 3.
Options = {
"fallbackText": "this is the fallback text",
"typing": 2,
}
sendMessage
Escriba un mensaje de texto sin formato para que el bot lo envíe. Utilice el formato .sendMessage(text: string, options: Options): void. El
Bot.sendMessage('This is message written by bot')
sendAdaptiveCard
Introduzca la carga útil para el Adaptive Cardque desee enviar. Utilice el formato .sendAdaptiveCard(adaptiveCard: AdaptiveCardPayload, options: Options): void. El
Puede encontrar la carga útil de su tarjeta adaptable en el diseñador de Adaptive Card. En Bot Builder, vaya a Preferencias > Adaptive Cards, luego copie el contenido del panel editor de Carga útil de tarjeta. Puede obtener más información sobre cómo trabajar conAdaptive Cards en Bot Builder.
Bot.sendAdaptiveCard(<Valid_Adaptive Card_JSON_Payload>)
sendButtons
Configure y envíe hasta tres botones. Todas las configuraciones de los botones se pueden organizar mediante atributos de configuración. Utilice el ejemplo a continuación para comparar la configuración de los botones en el diálogo con los atributos en el script. Utilice el formato .sendButtons(text: string, buttons: ButtonPayload[], options: Options): void. El
Bot.sendButtons('This is message written by bot', [
{
title: 'Button 1',
intent: {
name: 'mood'
}
}
])
También puede activar
Combinar estos atributos puede generar un error o un comportamiento inesperado.
// triggers intent
{
title: 'Title',
intent: 'mood'
}
// triggers intent with entity value
{
title: 'Title',
intent: {
name: 'mood',
entity: 'myEntity',
value: 'entity value'
}
}
// url
{
title: 'Title',
url: 'https://www.nice.com'
}
// text
{
title: 'Title',
text: 'This is a text'
}
sendQuickReplies
Configure y envíe hasta tres respuestas rápidas. Todas las configuraciones de respuesta rápida se pueden organizar mediante atributos de configuración. Las opciones para las respuestas rápidas son las mismas opciones que para los botones. Utilice el formato .sendQuickReplies(text: string, quickReplies: QuickReplyPayload[], options: Options): void. El
Bot.sendQuickReplies('This is message written by bot', [
{
title: 'Quick reply 1',
intent: {
name: 'mood'
}
}
])
También puede activar el valor de la entidad
Combinar estos atributos puede generar un error o un comportamiento inesperado.
// triggers intent
{
title: 'Title',
intent: 'mood'
}
// triggers intent with entity value
{
title: 'Title',
intent: {
name: 'mood',
entity: 'myEntity',
value: 'entity value'
}
}
// url
{
title: 'Title',
url: 'https://www.nice.com'
}
// text
{
title: 'Title',
text: 'This is a text'
}
sendCards
Configure y envíe hasta 10 tarjetas. Utilice el formato .sendCards(cards: CardPayload[], options: Options): void. El
Bot.sendCards([{
title: 'Card title',
description: 'Card description',
image: 'https://picsum.photos/200/300',
mimetype: 'image/jpeg',
button: {
title: 'Button title',
url: 'https://www.nice.com/'
}
}])
sendMultimedia
Bot Builder no valida el contenido multimedia, pero puede validarse en otras integraciones. El contenido en la URL debe estar disponible todo el tiempo en que se use el script. Asimismo, debe ser accesible públicamente, ya que se descargará repetidamente cuando se ejecute script. El tipo de soporte de medios y las restricciones de tamaño son los mismos que cuando usted usa un acción de bot multimedia. Utilice el formato .sendMultimedia(url: string, mimetype: string, options: Options): void. El
Bot.sendMultimedia('https://picsum.photos/200/300', 'image/jpeg')
sendRichLink
Configure y envíe un enlace enriquecido. Utilice el formato .sendRichLink(richlink: RichLinkPayload): void.
Bot.sendRichLink({
title: 'Title',
url: 'https://www.nice.com',
image: 'https://picsum.photos/200/300',
mimetype: 'image/jpeg'
})
sendListPicker
Configure y envíe hasta 12 opciones del selector de lista. Todas las opciones del selector de lista se pueden organizar mediante la configuración de atributos. Las opciones para el selector de lista son las mismas que las opciones para botones. Utilice el formato .sendListPicker(message: string, description: string, actions: ListPickerPayload[], options: Options): void. El
Bot.sendListPicker('Message', 'Description', [{
title: 'Title',
description: 'Description',
image: {
url: 'https://picsum.photos/200/300',
mimetype: 'image/jpeg'
}
intent: {
name: 'mood'
}
}])
handover
Configure dónde se dirige el handover
La transferencia de un contacto desde un agente virtual a un agente en vivo. mediante un
Para ubicar un queueId:
-
En NiCE CXone, haga clic en el selector de aplicaciones
y seleccione ACD. -
Vaya a Digital Experience (DX) > Routing Colas.
-
Localice la cola para la que necesita la ID y haga clic en Editar.
-
En la página de edición de la cola, observe la URL en su navegador. El número después de /edit/ es el queueId. Debe tener el aspecto de cinco conjuntos de números y letras separados por guiones. Por ejemplo, 67bf5865-4556-40db-ba44-6c0cc3f88ffa.
Bot.handover(null)
// or
Bot.handover('queueId')
addTags
Configure qué etiquetas se deben aplicar. Las etiquetas que se usen en el script ya deben existir en Bot Builder. Si en el script se llama a una etiqueta, pero esta no existe, la acción se ignora. Utilice el formato .addTags(tags: string[]): void.
Bot.addTags(['Tag 1', 'Tag 2'])
waitForResponse
En algunos casos, debe esperar una respuesta del cliente y continuar con la ejecución de su script. Como la comunicación con el cliente es asincrónica, la espera de una respuesta también lo es. El método Bot.waitForResponse toma un parámetro: el nombre de la función que se ejecutará tras recibir una respuesta. Utilice el formato .waitForResponse(functionName: string): void.
Esta función tiene un comportamiento postergado. Esto implica que el resultado no tiene efecto inmediato al ejecutarse. En su lugar, primero debe finalizar la ejecución del script actual. Si desea que el script finalice con una función de comportamiento posponer, debe detener explícitamente la ejecución del script mediante una declaración de retorno o condiciones.
function main() {
console.log('Testing wait for response')
Bot.waitForResponse('response') //The script continues to run and the next line executes while listening for a customer response
console.log('This is still going to be executed')
}
function response() {
console.log('Customer responded', Bot.slots['last customer message'].value)
}
fillSlot
Configure qué extracto
Entidad extraída del mensaje del contacto y guardada para su uso en las respuestas del bot. Similar a una variable. se debe aplicar. Cualquier espacios utilizados en el script deben existir ya en Bot Builder. Si en el script se llama a un extracto pero este no existe, la acción se ignora.
Si solo desea almacenar el valor para la ejecución del script, utilice una variable local o utilice el objeto Store. Utilice el formato .fillSlot(name: string, value: any[]): void.
Para acceder al valor real del slot, debe acceder al atributo .value.
function main() {
Bot.fillSlot('slotName', 'slotValue');
console.log(Bot.slots.slotName.value);
}
slots
En la notación por puntos, el editor puede ofrecer los extractos
Entidad extraída del mensaje del contacto y guardada para su uso en las respuestas del bot. Similar a una variable. disponibles, pero esto solo es válido cuando los nombres de los extractos no contienen espacios ni caracteres especiales. En aquellos casos donde los nombres de los extractos tienen espacios o caracteres especiales, se debe usar la notación con corchetes.
console.log(Bot.slots)
// example
let contactId = Bot.slots['contact.id'].value
let lastCustomerMessage = Bot.slots['last customer message'].value
sendAsCustomer
Esta función le permite agregar lo que el contacto
La persona que interactúa con un agente, IVR o bot en su centro de contacto. podría decir a sus historias
Se usa para entrenar a un bot para el manejo de interacciones según la intención y el contexto. y reglas
Se usa para definir la respuesta de un bot a mensajes que no cambian según el contexto.. Utilice el formato .sendAsCustomer(text: string): void.
Esta función tiene un comportamiento postergado. Esto implica que el resultado no tiene efecto inmediato al ejecutarse. En su lugar, primero debe finalizar la ejecución del script actual. Si desea que el script finalice con una función de comportamiento posponer, debe detener explícitamente la ejecución del script mediante una declaración de retorno o condiciones.
Bot.sendAsCustomer('Hello bot')
Objeto Almacén
Store es un objeto creado para almacenar datos durante la ejecución del script. En comparación con una variable local, tiene la ventaja de que se puede usar en múltiples funciones .waitForResponse.
set , get
Store.set(name: string, value: any[]): void
Store.get(name: string): any[]
function main() {
Store.set('token', 'my-secret-token')
Bot.waitForResponse('response')
}
async function response() {
console.log(Store.get('token')) // my-secret-token is logged
}
Objeto variables
El objeto Variables contiene las variables que usted crea en la integración del script. Cada variable es una propiedad de Variables. Cada variable tiene un conjunto de subpropiedades que contiene información sobre ella.En el ejemplo a continuación, se observa una variable de selección llamada colorChoice:
"colorChoice": {
"defaultValue": "red",
"options": [
"red",
"green",
"blue"
],
"type": "select",
"value": "red",
"name": "colorChoice"
}
En el ejemplo, la lista de valores asignados al Variable está Contenida en la propiedad options.
Las propiedades defaultValue y value contienen el mismo valor, inicialmente. Si no especifica un valor predeterminado para un Variable de selección, el valor predeterminado es null. Los valores de Variable no se pueden cambiar en el script, pero se pueden hacer editables, luego cambiados cuando la acción se usa en una historia o regla.
Hacer referencia a variables de un script
Hacer referencia a un valor de variable usando notación por puntos: Variables.varName.value
Hacer referencia a la lista de opciones en una variable de selección: Variables.varName.options
Ver las variables existentes en una Integrar de script
Puede ver una lista de las variables existentes y sus propiedades en el script agregando la siguiente línea a su código y, después, ejecutando el script. La lista aparece en la consola. El código es: console.log(Variables). De manera similar, puede ver el contenido de una sola Variable agregando console.log(Variables.varName.value) o console.log(Variables.varName.options)a su script.
fetch Funciones
fetch(url: string, ?options), donde las posibles opciones son:
- método: 'GET', 'POST', 'PUT', 'DELETE'
- Encabezados
- form_params
- json
- Cuerpo
Use fetch para comunicarse con las API. Estas pueden ser cualquiera de las API de NiCE CXone o las suyas propias.
const URL = 'https://nice.com'
async function main() {
// 1. using async/await
try {
const response1 = await fetch(URL, { 'method': 'GET' })
console.log(
'response 1',
response1.ok,
response1.status,
response1.statusText,
response1.url,
response1.headers
)
console.log('response 1', await response1.text())
} catch (exception) {
console.log('Error occured', exception)
}
// 2. using Promises
fetch(URL, { 'method': 'GET' })
.then(response => {
console.log(
'response 2',
response.ok,
response.status,
response.statusText,
response.url,
response.headers
)
return response.text()
})
.then(response => {
console.log('response 2', response)
})
.catch(exception => {
console.log('Error occured', exception)
})
// 3. using fetchSync
try {
const response3 = fetchSync(URL, { 'method': 'GET' })
console.log('response 3', response3)
} catch (exception) {
console.log('Error occured', exception)
}
}
fetchSync
La función fetch es una implementación estándar de fetch de JavaScript, que devuelve la Promesa y, además, implementa las funciones .json() o .text() en la respuesta.
También existe una variante sincrónica fetchSync, que devuelve la respuesta directamente, no la Promesa. Si desea mantener la coherencia con el mundo asincrónico de JavaScript, use una función fetch estándar.
console Función
La persona que interactúa con un agente, IVR o bot en su centro de contacto..
log
Utilice el formato console.log(…output: any[]): void.
console.log('my log', 123, {pi: 3.14})
warn
Utilice el formato console.warn(…output: any[]): void.
console.warn('my warn', 123, {pi: 3.14})
info
Utilice el formato console.info(…output: any[]): void.
console.info('my info output', 123, {pi: 3.14})
debug
Utilice el formato console.debug(…output: any[]): void.
console.debug('my debug output', 123, {pi: 3.14})
error
Utilice el formato console.error(…output: any[]): void.
console.error('my error output', 123, {pi: 3.14})
Gestión de Error
onError
Puede gestionar los errores de excepciones imprevistas definiendo su función onError.
let onError = (e) => console.log('my handler', e.message)
function main() {
Bot.nonExistentMethod()
}
Hashing Funciones
You puede usar la biblioteca CryptoJS en sus scripts en Bot Builder. Por ejemplo:
const cryptojs = require('crypto-js');x
var hash = CryptoJS.SHA256("TOKEN");
Puede obtener más información sobre cómo trabajar con esta biblioteca en el sitio web de la documentación de CryptoJS
.