Flujo de SMS
uContact tiene integraciones con los principales proveedores de servicios de mensajería. Sin embargo, puedes crear tu propia integración con un proveedor que no esté incluido en uContact utilizando el Diseñador de Flujos. ¡Te mostramos cómo hacerlo!
Proveedores personalizados
Estos proveedores pueden integrarse total o parcialmente según las capacidades del servicio externo o las necesidades de uso.
Por ejemplo:
- Para un marcador, puede ser suficiente implementar solo el envío de mensajes.
- Para un servicio de atención al cliente, es necesario implementar envío, recepción y actualización de estados (enviado, recibido, leído, etc.).
Configuración inicial del conector
Antes de crear los flujos, es necesario configurar el conector en uContact. A continuación te mostramos el paso a paso.
- Primero tienes que ir al Menú de Administrador y acceder al apartado de Conectores. Luego, haz clic en el botón Nuevo ubicado en la esquina superior derecha.
- En este modal, debes escribir un nombre único para el conector, seleccionar el canal SMS y el proveedor Flow.
- Luego, aparecerán dos apartados nuevos. Deberás acceder al apartado de Configuración para poder crear los flujos y realizar la integración con el proveedor.
En este paso tendrás que crear dos flujos:
- Uno para el envío de mensajes
- Otro para finalizar la interacción
Conocé como desarrollar estos flujos haciendo click acá.
Números
Lista de teléfonos: Aquí debes agregar los números que utilizará el conector para enviar y recibir los mensajes. Puedes agregarlos manualmente o masivamente utilizando una lista con los números.
¿Cómo agregar un número?
Para agregar un número, simplemente debes escribirlo en el campo Número de teléfono y luego hacer clic en el botón +.
Luego de agregarlo, lo podrás visualizar en el listado.
En cada número tendrás la posibilidad de:
- Copiar: esta opción te copia el número al portapapeles.
- Eliminar: esta opción permite eliminar el número del conector. Para eliminarlo es necesario que guardes el conector.
¿Cómo subir una lista de números?
Para subir una lista de números, tienes que hacer clic en el botón que se muestra a continuación.
Luego, se abrirá la herramienta de importación de datos.
- Paso 0: se muestran los campos necesarios.
- Paso 1: tienes que arrastrar la lista o seleccionarla desde tu computadora. Tiene que estar en formato XLSX, ODS, CSV o TXT.
- Paso 2: visualizarás en la columna izquierda los primeros 3 registros de la lista y en la columna derecha deberás asociarlo a la opción Teléfonos. Además, si en la lista incluiste un encabezado, por ejemplo, Números, tienes que seleccionar la opción Contiene encabezados.
- Paso 3: por último, en este paso simplemente tienes que hacer clic en Finalizar.
Desarrollo de los flujos
Para crear estos flujos, debes hacer clic sobre el botón con el nombre del flujo dentro de la configuración y se abrirá el Diseñador de flujos de uContact para que puedas crear el flujo correspondiente.
Puedes encontrar más información sobre el Diseñador de Flujos haciendo clic aquí.
Variables disponibles
Dentro de los flujos, existen varias variables disponibles que puedes utilizar. A continuación te mostramos cuáles son y para qué las puedes utilizar.
Agent
Almacena el nombre del agente en caso de que haya una interacción.
- Tipo: String
Message
Almacena el mensaje enviado por el agente.
- Tipo: String
To
Almacena el número del destinatario.
- Tipo: String
Attachments
Es un array de objetos, donde cada uno almacena un archivo adjunto.
- Tipo: Array
¡Aquí puedes ver un ejemplo!
[
{
"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"
}
]¿Qué significa cada propiedad?
- extension: indica la extensión del archivo.
- path: indica el nombre del archivo.
- url: indica la URL donde se encuentra el archivo.
- type: indica el tipo MIME del archivo.
Campaign
Almacena el nombre de la campaña de la interacción.
- Tipo: String
GUID
Almacena el identificador único de la interacción.
- Tipo: String
SMS_GUID
Almacena el identificador único del mensaje.
- Tipo: String
REFERENCE_ID
Almacena el ID del mensaje al que se está respondiendo. Esta función solo es compatible con WhatsApp.
- Tipo: String
Envío de mensajes
Para implementar el envío de mensajes, es necesario crear un flujo utilizando el Diseñador de Flujos con las siguientes actividades:
1. Provider
Esta actividad marca el inicio del flujo del proveedor y ya viene por defecto dentro del flujo, por lo que no tienes que agregarla.
2. ExecWebService
Utilizando las variables disponibles, debes ejecutar la llamada al servicio del proveedor externo con esta actividad. Aquí es donde se realiza la petición HTTP al API del proveedor de mensajería.
3. MessageResult
Cuando tengas el resultado de la ejecución, es necesario utilizar esta actividad para informarle al sistema:
- El resultado del envío.
- El ID único del mensaje con el que el servicio respondió.
Este ID será útil más adelante para actualizar el estado del mensaje (enviado, recibido, leído, etc.).
Para guardar los cambios, tienes que hacer click en Producción y luego cerrar el Diseñador.
Notificación de cierre de interacción
Es posible y opcional ejecutar un evento cuando una interacción de uContact finalice, en caso de que esté asociada a un proveedor personalizado.
¿Para qué se usa?
Normalmente, este flujo será simplemente una ejecución a un servicio externo para notificar el cierre de la conversación. Por ejemplo:
- Notificar al sistema del proveedor que la conversación ha terminado
- Actualizar el estado de la sesión en un CRM externo
- Ejecutar cualquier lógica de limpieza o cierre necesaria
Luego de ejecutar la llamada al servicio externo, no es necesario agregar nada más al flujo.
Webhooks necesarios
Además de los dos flujos, es posible configurar dos Webhooks para recibir mensajes y para actualizar el estado de los mensajes (esto último solo para WhatsApp).
Recepción de mensajes
Para recibir mensajes en uContact, es necesario crear un flujo de webhook entrante. Este webhook permitirá que el proveedor externo notifique a uContact cuando llegue un nuevo mensaje.
Puedes encontrar más información sobre la creación de Webhooks en la guía de Funciones.
ReceiveNewMessage
En el flujo del webhook, debes utilizar la actividad ReceiveNewMessage para indicarle al sistema la recepción de un nuevo mensaje.
Parámetro DID
Un aspecto importante es que en esta actividad se indica a qué número fue enviado el mensaje con el campo "did". Para que el mensaje se dirija a una campaña específica, es necesario que la campaña posea el mismo número "did" configurado.
Por ejemplo:
- Si el webhook recibe un mensaje enviado al número
+1234567890 - Y existe una campaña con el "did" configurado como
+1234567890 - Entonces el mensaje será enrutado automáticamente a esa campaña
Actualización de estados
La actualización de estado de mensajes enviados permite notificar a uContact cuando cambia el estado de un mensaje (enviado, entregado, leído, fallido, etc.).
MessageStatus
Para actualizar el estado de un mensaje, utiliza la actividad MessageStatus en el flujo del webhook.
Requisito importante
La actualización de estado solo es posible si se proporcionó el ID del mensaje saliente devuelto por el proveedor al momento del envío (descrito en la sección de Envío de mensajes con la actividad MessageResult).
El flujo típico es:
- uContact envía un mensaje y recibe el ID del proveedor
- El proveedor notifica cambios de estado mediante webhook
- uContact actualiza el estado del mensaje usando el ID recibido
Consideraciones importantes
- Es posible utilizar JavaScript dentro del Diseñador de Flujos para analizar el contenido del body y realizar acciones complejas.
- Se recomienda, en caso de ser posible, diseñar una API sencilla en el lado del proveedor para reducir la complejidad de los flujos y simplificar el mantenimiento.
- El campo "did" debe coincidir exactamente entre el webhook y la configuración de la campaña para el correcto enrutamiento de mensajes.
- Los IDs de mensajes proporcionados por el proveedor deben ser únicos y consistentes para permitir el seguimiento de estados.
