Al iniciar el Workflow Designer podemos ver las Start Activity
Estas son la actividad inicial de cualquier flujo, al arrastrar una hacia la mesa de trabajo, se define qué tipo de flujo será.
Start Activity - Para flujos de Telefonía.
Bot Start Activity - Para flujos de Bots.
BotFunction Start Activity - Para crear extensiones de bots.
Webhook Start Activity - Para recibir información desde un tercero.
ChannelProvider Start Activity - Para enviar información hacia un tercero.
Una vez que se coloque la start activity deseada, se desplegarán las actividades relacionadas a su canal y necesarias para la creación del flujo. |
name
Va a ser el nombre del proveedor, el mismo va a aparecer en las campañas de sms/whatsapp y en los discadores del mismo canal.
Si el nombre del proveedor contiene la palabra "whatsapp" en la unified inbox va a aparecer con iconos de whatsapp y el agente va a tener la posibilidad de enviar attachments |
AGENT
nombre del agente si hay interaccion
MESSAGE
mensaje
TO
numero destinatario
ATTACHMENTS
array de objetos, cada uno conteniendo un attachment
[ { "extension":"png", "path":"20210226/8b5eb91a-2799-4c30-a712-9cfbbd333f49.1584030188436.png", "url":"https://example.ucontactcloud.com/attachments/20210226/8b5eb91a-2799-4c30-a712-9cfbbd333f49.1584030188436.png", "type":"image/png" } ] |
CAMPAIGN
campaña de la interaccion
GUID
guid de la interaccion
SMS_GUID
guid unico del mensaje
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 envio (puede ser cualquier valor)
id
Id unico del mensaje en caso que corresponda (este id es normalmente devuelto en la llamada a la API del proveedor)
Para crear un proveedor personalizado, lo más común es que se use la aplicación ExecWebService. |
name
Es el nombre del webhook que al mismo tiempo se va a corresponder con la ruta de POST para poder ejecutar el flujo
POST https://instance.ucontactcloud.com/IntegraChannels/resources/webhook/{name}
BODY
type: Obj
example:
{ "name": "Daniel" } |
HEADERS
type: Obj
example:
{ "Accept"🙁 "/" ], "Cache-Control"🙁 "no-cache" ], "Connection"🙁 "close" ], "User-Agent"🙁 "PostmanRuntime/7.26.8" ] } |
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 ultimo se utiliza la aplicación ReceiveNewMessage |
message
Mensaje, si corresponde
attachment
Url de attachment
from
Numero que envia el mensaje
did
Numero al que se envia el mensaje, tiene que coincidir con el did de la campaña para que entre a la campaña
id
Id unico del mensaje
Esta actividad le permitirá 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
y invalid_number
.
Se utiliza log4j2 como libreria para el log de flows, y el archivo donde se puede ver todo lo relacionado a los bots se encuenta en var/log/IntegraFlows.log
Este archivo no solo loguea los errores, sino que de manera similar a lo que se hace en el https://integra-scm.atlassian.net/l/c/nY4voq0m , loguea todas las actividades que se van recorriendo a medida que se recorre el flow.
El formato en que se imprime la información en IntegraFlows.log es el siguiente:
AAAA-MM-DD HH:mm:ss - [Número de thread] - [Nombre del flow - guid del flow] [Número de paso de la actividad]
Primero se va a loguear la ejecución de la actividad y luego se loguean los parámetros de la actividad que se ejecuto.
Cuando el flow finaliza se imprime el mensaje FINISH.
Ejemplo: