Creación de proveedores de SMS y Whatsapp personalizados

uContact permite la creación de proveedores personalizados que no están incluidos dentro de los que ya posee uContact en todas sus instalaciones. Lista de proveedores de SMS, Lista de proveedores de Whatsapp.

Es posible integrar un proveedor en todas sus funcionalidades o parcialmente, dependiendo de las capacidades del proveedor o del uso que necesitemos en uContact. Por ejemplo, para un discador es posible que solo haga falta implementar el envío, pero para dar atención a clientes sería necesario el envío, la recepción y la actualización de estados (enviado, recibido, visto etc).

Envio de mensajes

Primero es necesario, utilizando el https://integra-scm.atlassian.net/wiki/spaces/UVE/pages/2403631114 crear un flujo con la actividad ChannelProviderStartActivity. El nombre que asignemos como parámetro de la actividad será el nombre del proveedor y tendrá que ser único.

Luego utilizando las variables disponibles debemos ejecutar la llamada al servicio del proveedor con la actividad ExecWebService.

Cuando tengamos el resultado de la ejecución es necesario con la actividad MessageResult informarle al sistema el resultado de ese envío y el id único de mensaje con el que el servicio respondió. (Esto va a ser útil para actualizar mas adelante el estado del mensaje).

Una vez el flujo sea guardado, va a estar listo para usarse como provedor de campañas de SMS/Whatsapp o como provedor de discadores de SMS/Whatspp para automatizar el envío.

Variables disponibles

 

AGENT
Nombre del agente si hay interacción.

  • type: String

 

MESSAGE
Mensaje.

  • type: String

 

TO
Número destinatario.

  • type: String

 

ATTACHMENTS
Array de objetos, cada uno conteniendo un attachment.

  • type: Array

[ { "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 interacción.

  • type: String

 

GUID
GUID de la interacción.

  • type: String

 

SMS_GUID
GUID único del mensaje.

  • type: String

Recepción y actualización de estado

Para recibir mensajes en uContact es necesaria la creación de un flujo de webhook tal como se explica en la siguiente guía. https://integra-scm.atlassian.net/wiki/spaces/UVE/pages/1399062544. En este webhook hay que utlizar la actividad ReceiveNewMessage para indicarle al sistema la recepción de un nuevo mensaje. Algo importante a aclarar es que aquí se indica a que número fue envíado el mensaje con el campo ”did”. Para que el mensaje vaya a una campaña en específico es necesario que la campaña posea el mismo “did”.

La actualización de estado de mensajes envíados solo es posible si se proporcionó el id del mensaje saliente devuelto por el proveedor al momento del envío, descrito en el paso anterior. Para indicar el estado del mensaje utilizar la actividad MessageStatus.

Notificación de cierre de interacción

Es posible y opcional ejecutar un evento al momento que una interacción de uContact finalicen en caso de que estas estén asociadas a un proveedor personalizado. Para poder lograr este comportamiento, es necesario crear un flujo como se menciona en el paso de envío de mensajes, con el mismo nombre del proveedor seguido de “-h“. Ejemplo, si mi flujo de proveedor personalizado se llama “provider“, al momento de finalizar una interacción asociada a dicho proveedor uContact ejecutará en caso de que exista el flujo “provider-h“. Normalmente esté flujo será simplemente una ejecución a un servicio externo. Luego, no es necesario agregar nada mas al mismo.

Creación de proveedores de Whatsapp

Las interacciones que utilicen proveedores personalizados se mostrarán en la Unified Inbox del agente con el ícono de SMS. Para que se muestren con el ícono de Whatsapp y junto a este con las opciones para enviar adjuntos, es necesario agregar al nombre la palabra “whatsapp“. De este modo, simplemente con tener un proveedor con el nombre “provider-whatsapp“ ya sería suficiente.

Ejemplos de uso

A continuación se proporcionan dos flujos de ejemplo de una implementación ficticia que es posible realizar en uContact. En el diseñador de flujos es posible utilizar javascript para analizar el contenido del body y realizar acciones complejas en caso de ser necesario. De todas formas se recomienda en caso de ser posible diseñar una api sencilla para reducir la complejidad de los flujos y simplificar el mantenimiento.

Descargar los archivos y abrirlos con el diseñador de flujos de uContact.