...

Mensaje de WhatsApp con webhook personalizado

Flows 2.0

Este flujo realiza el envío de un mensaje de WhatsApp desde la línea y space configurados en tu marca de Keybe, partiendo de la ejecución de un webhook (URL generada por Flows 2) que puedes invocar desde una plataforma externa de tu elección.

El uso de este flujo responde a la necesidad de enviar mensajes a usuarios de listas preestablecidas en plataformas externas a Keybe.

Requisitos

Para utilizar este flujo, necesitas:

  1. Una línea de WhatsApp configurada en tu marca.
  2. Plantillas aprobadas por WhatsApp para su envío.

Módulos Utilizados

  1. Webhook Personalizado: Este es el disparador que recibirá todas las peticiones externas dirigidas a Keybe.
  2. Nodo de Envío de Mensajes de WhatsApp: Este nodo se encargará de enviar el mensaje a través de WhatsApp.
  3. Nodo de Respuesta del Webhook: Genera una respuesta para el origen de la petición en el webhook personalizado.

Instrucciones Paso a Paso

Crear el módulo webhook personalizado

  1. Declara el nombre de la conexión.
  2. Aquí aparece la raíz del webhook que vas a crear (https://botflows.keybeapi.com/webhook/integrations/) el final que se entiende como el endpoint se creará al final.
  3. Dale al botón guardar del módulo para que se almacene el nombre que elegiste del módulo.
  4. Guarda el flujo completo para que quede guardado lo que hayas configurado y se genere el endpoint que falta de nuestro webhook.

⚠️ ️Recuerda siempre seleccionar guardar una vez configurado cualquier módulo. 

Para saber con qué información vamos a trabajar en el flujo vamos a correr una prueba desde la plataforma donde vayas a invocar el webhook que generamos en el paso anterior.

Al reabrir el módulo de webhook personalizado veraz que se generó la url completa del webhook y solo debes copiarla.

En el módulo webhook personalizado hay 2 botones: uno permite acceder a la configuración del módulo y el otro muestra la información de la última ejecución que realizó el flujo. Esta sección se llama “Data source” (fuente de datos).

Cuando lo abran por primera vez, se encontrará vacío, y solo cuando envíen una primera petición con datos al webhook y refresquen la página, aparecerán los datos que enviaron.

En nuestro caso, utilizaremos Postman para nuestro primer envío de prueba, así que llevaremos el webhook allí.

En este caso, creamos unos datos básicos que utilizaremos en nuestro flujo. Al enviar la petición desde Postman, nos retorna una información básica de la ejecución de nuestro flujo en Flows 2.

Aquí ya podemos refrescar la página donde estamos construyendo el flujo y, al revisar la sección del “Data source”, veremos la información que acabamos de enviar.

Configuración del Nodo de Envío de Mensajes de WhatsApp

Este módulo se encarga del envío del template y hay varios formatos según el mensaje que deseas enviar a tus usuarios.

Cuando abres el panel de configuración del módulo, notarás:

  1. Una lista desplegable en cada opción que te permite seleccionar el “Data source” que quieres utilizar como campo dinámico para este campo. Esta lista tendrá todos los módulos que hayas conectado hacia el “Nodo de Envío de Mensajes de WhatsApp” y solo se usa cuando necesitas referenciar un dato que llegó de otro módulo conectado a este.
  2. Espacio donde puedes escribir el dato que requieres sobre el campo o el campo referenciado que elegiste usar. Los campos referenciados aparecen entre los símbolos {{campo}}.
  3. Activa la visualización de los campos referenciados disponibles, según el módulo que seleccionaste de la lista desplegable del punto 1. Si sale vacío, es que no has seleccionado ninguno o te falta correr el módulo para conocer los campos que va a utilizar.
  4. Ubica y haz clic sobre el campo que quieres dejar referenciado. Aparecerá con la simbología {{campo}} en el espacio del punto 2.

Campos del módulo

Para este ejemplo, enviaremos un mensaje normal con dos campos dinámicos.

UserGuest

Campo obligatorio.

Corresponde al número WhatsApp, destino al que será enviado el mensaje y debe tener un formato, por ejemplo, +573100000000, que se compone del (+)(Código país)(Número WhatsApp).

Normalmente, es un campo referencial para que envíe cada mensaje al usuario indicado.

UserHost

Campo obligatorio.

Corresponde al número WhatsApp origen desde donde será enviado el mensaje y debe tener un formato, por ejemplo, +573100000000, que se compone del (+)(Código país)(Número WhatsApp).

TemplateId

Campo obligatorio.

Es el código generado por META cuando aprueba la plantilla del mensaje de WhatsApp. Corresponde a un código numérico.

TemplateMessage

Campo obligatorio.

Es el cuerpo del mensaje que será enviado. En las posiciones de campos dinámicos van representados por números (información que será reemplazada por datos que tengamos disponibles de cada usuario).

AppUUID

Campo obligatorio.

Se adiciona automáticamente a la configuración.

TemplateParams

Campo opcional dependiente del tipo de plantilla de WhatsApp a utilizar.

Como el mensaje que se enviará “¡Hola 1! Mi nombre es 2. ¿Cómo estás?”, consta de 2 campos dinámicos, usaremos en lugar del 1 un campo referencial que nos llegará al webhook que construimos {{cod.name}}, el cual va a contener el nombre del usuario, y en lugar del 2 enviamos siempre el mismo dato que corresponde al nombre de nuestra asesora “Biky Montes”.

MediaParams

Campo opcional dependiente del tipo de plantilla de WhatsApp a utilizar.

Se usa para el envío de imágenes, videos o documentos. Siempre que usen formato jpg y mp4 sin superar el límite de tamaño de WhatsApp, que se encuentra en 16 MB.

Para este caso, no vamos a enviar imagen, así que permanece vacío.

ButtonsParams

Campo opcional dependiente del tipo de plantilla de WhatsApp a utilizar.

Se usa para el envío de botones para respuestas rápidas junto al mensaje de WhatsApp.

Para este caso, no vamos a enviar el mensaje con botones, así que permanece vacío.

HeaderParams

Campo opcional dependiente del tipo de plantilla de WhatsApp a utilizar.

Se usa si el mensaje va a contar con un encabezado.

Para este caso, no vamos a enviar encabezado, así que permanece vacío.

Evento

Campo opcional.

Con los mensajes de WhatsApp se puede mandar información adicional para detectar la respuesta de usuarios a diferentes plantillas o vincular información importante para el usuario que recibirá el mensaje.

Este campo aún no está funcional, pero cuando se encuentre operacional, dependerá de que la línea de la marca tenga un bot que detecte los casos de respuesta.

Para este caso, no vamos a enviarlo.

EventId

Campo opcional.

Al igual que el caso de “Evento”, se usa para adicionar información importante al mensaje del usuario para ser procesado luego por un bot que se encuentre activo en la línea donde se responde.

Este campo aún no está funcional, pero cuando se encuentre operacional, dependerá de que la línea de la marca tenga un bot que detecte los casos de respuesta.

Para este caso, no vamos a enviarlo.

Inbox

También conocido como spaces, aquí se declara el space donde quedará la conversación en Keybe. Se puede requerir al equipo de Keybe el nombre exacto del space, ya que es un formato diferente al que se puede visualizar en la sección de spaces de Keybe (el valor que corresponde en este espacio es el key de ese space).

En la mayoría de los casos, un space “Venta” tendrá el nombre exacto de “venta”, mientras que un space “Servicio al cliente” aparecerá como “servicio_al_cliente”.

Para nuestro caso, queremos que la conversación quede en el space de “Venta”, así que dejaremos “venta” escrito en el campo.

⚠️ ️Recuerda siempre seleccionar guardar una vez configurado cualquier módulo. 

Configurar Respuesta del Webhook

Este módulo es opcional y depende de si requieres configurar una respuesta específica que retorne a la plataforma donde invocaste el webhook personalizado que creamos al inicio. Sería obligatorio el uso del módulo “webhook personalizado” para poder usar este.

Cuenta básicamente con:

StatusCode

Campo opcional.

Como queremos representar una ejecución exitosa, ponemos código 200. Simplemente, va a ser informativo, no va a tener ningún efecto sobre el flujo que construimos.

Body

Campo opcional.

Añadimos un JSON con los datos que deseemos retornar.

En este caso, retornamos “payload” cuyo valor podría ser un mensaje constante o, como se ve en la imagen, un campo referencial.

CustomeHeaders

Campo opcional.

No hacen falta y para este caso no los usaremos.

⚠️ ️Recuerda siempre seleccionar guardar una vez configurado cualquier módulo. 

Una vez tengamos el flujo tal cual lo queremos, seleccionamos la opción Guardar ubicada en la parte superior derecha de la pantalla. 

El resultado de convocar el webhook con los datos de un usuario siguiendo este ejemplo

{

 “name”: “Harry Potter”,

 “phone”: “573100000000”,

 “countryCode”: “57”,

 “email”: “[email protected]”,

 “description”: “ipsum lorem…..”

}

Será el envío de mensaje de WhatsApp al número enviado en phone. 

Mensaje con botones de respuesta rápida

Al Nodo de Envío de Mensajes de WhatsApp se configura adicionalmente el buttonsParams. Teniendo en cuenta que la plantilla aprobada con WhatsApp debió incluir el uso de botones y se deben usar los mismos con los que se aprobó la plantilla que se enviará.

Mensaje con botones de redireccionamiento.

Funciona igual que la de botones de respuesta rápida. Al aprobar la plantilla con WhatsApp se especifica la url que utiliza el botón respectivo y en Flows 2 solo se debe especificar la opción en buttonParams.

Mensaje con imagen o video

Teniendo aprobada una plantilla de WhatsApp con una imagen o video especifico, se debe adicionar la url en el campo mediaParams el cual debe dirigir a la ruta web donde se encuentra la imagen jpg o video mp4 sin superar el límite establecido de WhatsApp de 16 MB.

¡¡Felicidades!!! 

¿Tienes alguna duda o inconveniente con el proceso? Contáctanos https://wa.me/message/JLO63Y4EMUKTC1

¡Las novedades de Keybe para Diciembre ya están acá! 🚀

Contrata a Biky Contrátame
Cerrar
Contrátame
Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.