Las actividades permiten controlar el funcionamiento del bot.
Todas las actividades poseen un campo ‘description’ que sirve para indicar un breve comentario sobre el comportamiento de la actividad.
Este campo es opcional.
Actividades
SendMessage
Con esta actividad interactuamos con el cliente, permite enviar un mensaje luego de cada vez que escribe el cliente.
Este campo puede funcionar de 2 formas:
Enviar un mensaje simple
message
Escribimos el mensaje que se desea enviar, cuando se ejecute la actividad enviará el texto de este campo.
Mensajes con variables
En los mensajes también es posible incluir variables mediante ${variable}
Esto hará que en el mensaje se reemplace la variable con el valor que adquiera previamente.
Enviar opciones
message
Para enviar un menú de opciones, en este campo cada línea debe comenzar con número y guion.(Ej: 1- o 1 -)
En Webchat, al cliente le llega un menú en el cual puede seleccionar las opciones con un clic.
En los demás canales, se ve como un mensaje normal.
IsOnTime
Esta acción permite evaluar una respuesta y activar un recorrido u otro dependiendo el horario que le sea introducido.
schedule
El formato del horario debe ser:
mon,tue,wed,thu,fri,sat,sun;09:00-18:00
Puede concatenar varios horarios utilizando &
mon,tue,wed,thu,fri;09:00-18:00&sat,sun;09:00-13:00
Ejemplo:
El cliente escribe al bot y selecciona para hablar con un agente.
Tras leer la respuesta, puede decidir enviarlo a una campaña u otra dependiendo del horario en que se encuentre.
Evaluate
Permite evaluar una respuesta, y basándose en ella, decidir por un camino u otro, los evaluate pueden encadenarse uno tras otro en caso de que tengamos múltiples opciones y por cada una se realicen acciones diferentes.
Área en blanco
Aquí es donde introduce código Js para evaluar opciones.
Si la variable se cumple irá por el camino verde que sale del evaluate, si la variable no se cumple, irá por el rojo.
ReadMessage
Con esta opción el bot lee la respuesta enviada por el cliente para guardarla en una variable, y así, utilizarla en otras actividades.
variable
Nombre de la variable que posee la respuesta.timeout
Tiempo de espera en minutos para continuar el flujo, si se excede este tiempo el contenido de la variable es:
““.
ReadFileMessage
Esta opción es similar a la anterior solo que se utiliza para guardar una imagen luego de solicitarla y así llegará con éxito al agente.
variable
Nombre de la variable que poseerá el archivo.timeout
Tiempo de espera en minutos para continuar el flujo, si se excede este tiempo el contenido de la variable es:
““.
Procedure
Esta actividad permite ejecutar código JavaScript.
Área en blanco
Aquí es donde introduce código Js.
Útil, por ejemplo, si se desea parsear la respuesta de un web service o aumentarle el valor a una variable para utilizar de contador.
ExecWebService
Permite ejecutar un web service.
variable
Nombre que posee la variable que contiene la respuesta del WS.method
Método que utiliza el WS, estos pueden ser: Get, Post, Put y Delete.url
Dirección en la cual se encuentra el WS.body
Contenido del body del WS.headers
Todos los headers que lleva el WS, estos se indican header:contenido.content-type
El tipo de contenido que se envia en el WS.
En esta activity se pueden utilizar tanto web services externos como los propios de uContact para, por ejemplo, realizar llamadas o enviar correos.
ExecQueryJSON
Aquí podremos realizar consultas a la base de datos. Ejecuta la consulta ingresada y devuelve, en la variable, la respuesta en forma de JSON.
variable
Nombre que poseerá la variable que contenga el resultado de la consulta.área en blanco
Aquí se redacta la consulta SQL.
Es importante recordar que en la consulta se debe ingresar la BD desde la cual se tomarán los datos.
Disposition
Permite realizar una tipificación a la interacción con el bot, de esta manera se le puede dar seguimiento a los flujos recorridos por el cliente.
level1
Nivel 1 de la tipificación.level2
Nivel 2 de la tipificación.level3
Nivel 3 de la tipificación.comment
Comentarios de la tipificación.extra
Contenido extra para la tipificación.
Las tipificaciones se insertan directamente en la BD, por ende, no necesariamente necesitan ser creadas en el sistema. Por mas que estén creadas en uContact, no ejecutarán acciones como schedule o respool, ya que pertenecen a otro canal.
TransferBot
Con esta opción podremos transferir la interacción desde un bot a una campaña del mismo canal en que se encuentra el bot.
destination
Debemos indicar el nombre exacto de la campaña a la que se desea transferir.Agent
Nombre del agente al cual se quiere transferir la interacción. Si agent está vacio, transfiere directo a la cola de la campaña.
AgentTimeout:
Tiempo en segundos que va a sonar la interacción en el agente. Si agentTimeout se encuentra en 0, la interacción esperará por el agente, si es mayor a cero y se cumple el agentTimeout, la interacción irá directo a la cola de la campaña.
Cuando se transfiere desde un bot a un agente en particular, la interacción sonará en el agente hasta que se llegue al tiempo indicado en AgentTimeout.
Si el agente no atiende la interacción, la misma pasa a la cola de la campaña y será distribuida entre el resto de los agentes según la estrategia de la campaña.
Antes de realizar la transferencia a un agente, se toma en cuenta la estrategia de la campaña para ver si está ocupado, si tiene límite de interacciones, y demás criterios del agente.
Cuando la interacción llegue a un agente, este podrá ver la conversación entre el cliente y el bot.
Si utiliza esta función se recomienda NO utilizar el mismo bot para campañas de distintos canales, ya que el bot no podrá transferir a otro canal.
En caso de que se quisiera usar un mismo bot para varios canales, se puede utilizar la variable global CHANNEL en un condicional y definir las transferencias según el canal.
LogOp
Permite imprimir el contenido de una variable en el IntegraServer.
log
Se ingresa la variable que quiere imprimir con el formato ${variable}
Esta actividad se utiliza normalmente para el desarrollo del bot.
FinishInteraction
Esta acción debe encontrarse al final de cada flujo ya que la misma le indica al bot que terminó su recorrido y cierra la interacción con el cliente.
Esta actividad no posee campos de configuración ya que su única función es terminar la interacción.
Luego de un FinishInteraction, el cliente de Webchat verá un mensaje para abandonar el chat o permanecer en él y ver la conversación, pero se le inhabilitan las llamadas y el área de texto.
SetClientName
Esta actividad toma el contenido de una variable y lo asigna al nombre del cliente de la interacción, y a su vez, lo asigna a la variable global CLIENT_NAME del bot.
name
Nombre de la variable que se utilizará como CLIENT_NAME
Ejemplo:
En un mensaje se solicita al cliente que ingrese su nombre, seguido un ReadMessage que permita tomar su respuesta dentro de una variable, esa variable se ingresa en SetClientName, luego en el flujo, si mandamos un mensaje con la variable global CLIENT_NAME, se utiliza el valor de la variable en SetClientName.
Cuando la interacción llega a un agente, será visible el nombre del cliente con el valor de la variable ingresada en SetClientName.
SendAttachment
A través de esta actividad se permite enviar archivos al cliente.
url
Los archivos se suben en la carpeta etc/IntegraServer/web/attachments y se indica de que tipo son:image
audio
video
application/pdf
Ejemplo de uso: application/pdf|20200504/filename.pdf para enviar un archivo que se encuentra en etc/IntegraServer/web/attachments/20200504/filename.pdf
SendEmail
Permite enviar emails.
template
Nombre del template de email que se desea utilizar.variables
Dentro del template podremos tener variables a reemplazar ${ejemplo}, en este campo debemos indicar todas las variables del template a reemplazar y el valor que poseerán con el siguiente formato:
ejemplo:valor
Las variables del template pueden ser reemplazadas por otras variables que poseamos en el bot incluso por variables globales.
GoToFunction
Esta actividad permite anidar tanto bots como bots functions.
Suponga que se cuenta con un bot denominado B y un bot function denominado BF y B tiene la actividad GoToFunction y en el campo name tiene asignado name= “BF”.
Al momento de ejecutar la actividad GoToFunction se detiene la ejecución del bot B y se comienza a ejecutar BF. Luego de que termine de ejecutar BF, se retornará a B para seguir ejecutando las actividades siguientes.
Es de esta forma que se logra anidar varios bots o bots functions a un bot inicial.
name
Campo que contiene el nombre del bot o del bot function al cual se pasará el control una vez que se ejecute esta actividad.
FuzzySearch
En el primer parámetro queda guardada la respuesta, la segunda variable es un string, y la tercera variable es un arreglo de palabras. En la respuesta se devuelve un JSON que se ordena por mayor coincidencia de palabras, y por cada coincidencia se devuelve un score que indica el porcentaje de coincidencia.
WaitBot
Deja pausado un bot hasta que se ejecuta la actividad Resume desde un Webhook o channel provider.
La actividad WaitBot puede ser usada, unicamente, desde un bot o un bot function.
ExecCommand
Ejecuta el comando ingresado y deja el resultado en la variable.
SetData
SetData recibe el GUID de una interacción, y le setea esa data de la interacción y a la variable global VARIABLES del bot, lo que está guardado en el campo “data”.
El campo ‘data’ debe ser un JSON.
El GUID debe ser uno existente.
ExecQuery
Aquí podremos realizar consultas a la base de datos.
variable
Nombre que poseerá la variable que contenga el resultado de la consulta.área en blanco
Aquí es donde se redacta la consulta SQL.
Es importante recordar que en la consulta se debe ingresar la BD desde la cual se tomarán los datos.
MessageResult
Para informarle al sistema que el SMS fue enviado bien o con error se debe usar la aplicación MessageResult, la misma requiere dos parámetros:
result
Resultado del envío (puede ser cualquier valor).id
ID único del mensaje en caso de que corresponda (este ID es normalmente devuelto en la llamada a la API del proveedor).
ReceiveNewMessage
El webhook se puede ejecutar para ejecutar muchas aplicaciones diferentes, desde la ejecución de una consulta, una llamada a un webservice, hasta la inyección al sistema de un SMS/WhatsApp entrante.
Para esto último se utiliza la aplicación ReceiveNewMessage.
message
Mensaje, si corresponde.attachment
URL del attachment.from
Número que envía el mensaje.did
Número al que se envía el mensaje, tiene que coincidir con el DID de la campaña para que entre a la campaña.id
ID único del mensaje.direction
Dirección en la que enviara el mensaje. Si no se ingresa ningún dato en dicho campo se recibirá el mensaje como entrante. Las opciones validas son O (para mensaje saliente) e I (para mensaje entrante).
MessageStatus
Esta actividad permite actualizar los estados de los mensajes de WhatsApp, se le deben enviar dos parámetros:
id
ID único del mensaje (este ID es el mismo que se envía en MessageResult).status
Los estados a actualizar pueden ser:sent
,delivered
,read
,error
,invalid_session
einvalid_number
.
BlacklistResult
Actividad que responde con la acción a ejecutar.
Las posibles respuestas son: Call, Do not call, Respool Alternative.
Resume
Actividad que recibe un GUID de una interacción y despausa el bot de esa interacción, la cual previamente ejecutó el Wait.
ParseXMLJSON
Recibe como parámetro un XML y deja, en la variable definida del campo “variable”, el XML que se pasó como parámetro parseado a JSON.
SetWebhookResponse
Permite configurar la respuesta del webhook permitiendo asignarle el status, el body y headers.
Headers: Headers que se agregaran a la respuesta del webhook. Los headers se escriben separados por salto de linea.
Body: Body que responderá el webhook, si no se utiliza esta actividad el webhook responde con body vacío.
Status: Status code que responderá el webhook, si no se utiliza esta actividad el webhook responde con status 200.