Javascript
Aquí tienes la posibilidad de manipular la información en el contexto de la conversación y su base de datos utilizando JavaScript. Es ideal para definir reglas más avanzadas que no serían posibles utilizar el paso "Filtro".
Mencionamos mucho aquí sobre bases de datos, objetos personalizados y registros. Así que si quieres entender mejor, ve a la sección Datos.
Vamos a mencionar debajo de los recursos disponibles cuando se utiliza código:
Variables de contexto de la conversación
Durante el flujo de conversación, la información sobre el contexto de conversación se puede guardar en cualquiera de estos pasos o acciones:
Mensaje de texto o tarjeta:
Cuando "guarda respuesta", la información puede ser un campo del objeto de usuario o algún otro objeto personalizado. Si es del usuario, la información se guardará directamente en la base de datos, de lo contrario, se almacenará temporalmente como la variable de contexto de la conversación, que se puede acceder a través del nombre del objeto seguido del nombre del campo, como ejemplo: direccion.codigopostal
Intenciones:
En el caso de la PNL, teniendo alguna intención coincidente, las entidades de esta intención se almacenarán temporalmente como variables del contexto de conversación. Se puede accederlas agregando 'context.obejcts' antes del nombre de la variable de las intenciones, por ejemplo: context.objects.comida
Registros de consulta y actualización de objetos
Tu tienes la opción aquí de hacer las consultas de registros de objetos personalizados para que estén disponibles durante la ejecución del código. El resultado se devolverá como tipo de matriz. Para acceder al resultado de una consulta basta añadir '__s' en el lado derecho del nombre del objeto, por ejemplo: pedido__s
Por ahora, las opciones de ejecución de la consulta son:
Límite de registros: Responsable de limitar la cantidad de registros devueltos por la consulta.
Condición de tiempo: Si el número de registros de consulta es mayor que el límite, establece un orden de devolución de los registros: por más reciente o más antiguo.
Además de los campos personalizados, cada registro de consulta tendrá los siguientes campos de sistema disponibles:
id: ID de registro
obj_id: ID del objeto del registro
parents: objeto controlador del objeto actual (O padre del objeto actual)
parents.id: ID del objeto controlador
parents.name: Nombre del objeto controlador
grandparents: objeto controlador del objeto controlador del objeto actual (o abuelo del objeto actual)
grandparents.id: ID del objeto controlador
grandparents.name: Nombre del objeto controlador
createdAt: horario (en milissegundos) desde el momento en que se creó el registro.
updatedAt: horario (en milissegundos) de cuándo se actualizó el registro.
A continuación, se muestra un ejemplo de cómo controlar la devolución de la consulta:
Por estándar, el registro del objeto User, que se refiere al usuario actual, y las variables de Contexto de la Conversación estarán siempre disponibles. Por lo tanto, no es necesario consultar el objeto User. Para acceder el campo del sistema ID del usuário actual, basta usar: user.id. y para acceder, por ejemplo, a una variable de contexto denominada producto_atual basta usar: context.objetcs.produto_atual
Cualquier cambio de valor de los campos personalizados de estos objetos se reflejará en la base de datos después de que se haya ejecutado el código.
Creación de registros
También puedes crear nuevos registros de objetos personalizados. Sólo tienes que establecer estos registros como tipo de objeto JavaScript (formato JSON). Recordando rellenar los campos requeridos. Y cuando esté listo, agregarlos al objeto respectivo que puedes utilizar de la siguiente manera: Nombre del Objeto + '__c', por ejemplo: item_del_pedido__c
Aquí tenemos un ejemplo de cómo crear un registro:
Si estás creando un registro de un objeto que tiene un objeto Controlador (es decir, tiene una relación de 1 a N), debes informar el ID de este registro de controlador en su respectivo campo. De lo contrario, este registro no se creará.
Eliminación de registros
También tienes la opción de eliminar registros de objetos personalizados. Simplemente haz la query como se mencionó anteriormente, obteniendo el identificador de los registros que se deben eliminar y agregarlos al objeto respectivo que se puede utilizar de la siguiente manera: Nombre del Objeto + '__d', por ejemplo: pedido__d
A continuación, se muestra un ejemplo de cómo eliminar un registro:
Si estás eliminando un registro de un objeto que tiene debajo de él algún objeto controlado (es decir, tiene una relación de 1 a N), todos los registros controlados por él se eliminarán también.
Envío de mensajes de texto
Hay una alternativa para enviar mensajes al usuario mediante código JavaScript. Es importante para los casos, por ejemplo, donde el envío de mensajes depende de la información disponible después de que se haya realizado una query. A continuación se muestra un ejemplo de cómo enviar un mensaje:
La siguiente es la información que debe proporcionarse para crear un mensaje de texto. Cuando se utiliza en el código debe estar con el tipo de objeto de JavaScript (formato JSON).
type: Siempre pongas 'text'. Obligatorio.
text: Coloca el texto que desees enviar aquí. Obligatorio y límite de 320 caracteres.
quick_replies: Array con información de cada respuesta rápida. No es obligatorio y limita hasta 10 respuestas.
caption: Texto que aparece visible para el usuario. Obligatorio y límite de hasta 20 caracteres.
type: puede ser 'url' o 'context_variable' representando un tipo objeto de Javascript conteniendo informaciones que puede accederse durante el tiempo del contexto de conversación actual. Obligatorio.
value: depende del type de arriba, si es 'url', llenar aquí la url válida. Se es 'context_variable' llenar aquí el objeto en formato JSON. Obligatorio.
Envío de tarjetas de mensaje
Aquí tenemos la opción de enviar mensajes que contengan tarjetas.
La siguiente es la información que debe proporcionarse para crear un mensaje de tarjeta. Cuando se utiliza en el código debe estar con el tipo de objeto de JavaScript (formato JSON).
type: Siempre pongas 'cards'. Obligatorio.
cards: array Con información de cada tarjeta. Obligatorio.
title: Título de la tarjeta. Obligatorio y límite de hasta 80 caracteres.
subtitle: Subtítulo de la tarjeta. No es necesario y limita hasta 80 caracteres.
image_url: url de la imagen de la tarjeta. No es necesario y limita hasta 120 caracteres.
buttons: array con información de cada botón. No es necesario y limita hasta 3 botones.
caption: Texto que aparece visible para el usuario. Obligatorio y límite de hasta 20 caracteres
type: puede ser 'url' o 'context_variable' representando un tipo objeto de Javascript conteniendo informaciones que puede accederse durante el tiempo del contexto de conversación actual. Obligatorio.
value: depende del type de arriba, si es 'url', llenar aquí la url válida. Se es 'context_variable' llenar aquí el objeto en formato JSON. Obligatorio.
Hay un tiempo de espera de ejecución de 15 segundos del código JavaScript. Por lo tanto, si se pasa este límite, se interrumpirá la ejecución del código y se devolverá un error que se puede consultar en el historial de conversaciones.
Envío de imágenes/archivos adjuntos/vídeos
Puedes enviar media a través de JS utilizando la siguiente plantilla:
Last updated