Crear o actualizar un contacto desde webhook

Flows 2.0

Este flujo crea o actualiza un usuario en los contactos que almacena Keybe en personas desde una fuente externa que pueda enviar información vía API Rest o webhook.

El uso de este flujo responde a la necesidad de sincronizar contactos de una plataforma externa con Keybe.

Requisitos

Para utilizar este flujo, necesitas:

  1. Usuarios deben tener al menos un celular con prefijo país o correo electrónico.
  2. Usuarios deben tener nombre.

Módulos Utilizados

  1. Webhook Personalizado: Este es el disparador que recibirá todas las peticiones externas dirigidas a Keybe.
  2. Filtro de integraciones: Será opcional, dependiendo de si necesitamos validar datos de los contactos y respuestas a las peticiones del webhook personalizado.
  3. Nodo de creación o actualización de usuarios: Creará un usuario nuevo en contactos o actualizará uno existente.
  4. Nodo de Respuesta del Webhook: Genera una respuesta para el origen de la petición en el webhook personalizado.

Este flujo recibirá una petición vía webhook, validará la información recibida para crear o actualizar un contacto, y luego enviará un mensaje de éxito al origen de la petición. Si no es necesario validar contactos ni enviar notificaciones, el flujo puede simplificarse usando solo “Webhook Personalizado” y “Nodo de creación o actualización de usuarios”.

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.

Al abrir el módulo de webhook personalizado verás 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. 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.

Filtro de integraciones para validar usuario

Este módulo se encargará de validar que cada contacto que llegue desde el webhook contenga los datos que necesitamos para crear el usuario, ya que hay unos datos obligatorios que necesitaremos. Si la plataforma que envía la información al webhook ya está garantizando estos datos, no sería necesario configurar este filtro, sino conectar el “Webhook Personalizado” directamente al “Nodo de creación o actualización de usuarios”.

  1. Agregar nueva: Adiciona un grupo de validaciones para pasar a un módulo objetivo en caso de que se cumpla con la condición. Al crear el filtro, estará vacío, así que siempre se debe agregar una al iniciar.
  2. Nodo fuente: Se refiere al lugar de donde será tomada la variable (punto 3) suponiendo que se requiera tomar de algún lado; si no, quedará sin seleccionar ninguna.
  3. Variable: Valor que se usará en la validación. En este ejemplo, se usa un campo referenciado de otro módulo, identificable por su formato {{campo}}.
  4. Condición: Se selecciona una condición de la lista disponible la cual aplica la regla de la comparación.
  5. Value: Funciona igual que “Variable” y será el dato contra el que se hará la comparación. En este ejemplo, usamos un dato puesto manualmente, no referencial.
  6. And o Or: Permite adicionar una condición adicional para validar datos adicionales que deben cumplir antes de pasar al nodo objetivo según si se elige And o Or.
  7. Nodo: Se selecciona el módulo objetivo de una lista de nodos objetivos que se generan con los nodos conectados al módulo filtro. Es a dónde se dirige la ejecución del flujo en caso de que cumpla las condiciones.

Para configurar el filtro lo diligencias con la siguiente información:

  1. Nodo fuente: Seleccionamos el módulo de “Webhook Personalizado”. Aparecerá con el título que le nombraste.
  2. Variable: Seleccionamos el campo referencial que aparece “phone” o si vamos a crear con el correo será el de “email”. Estos datos dependen de cómo los envíe el servicio donde tengan configurado su webhook.
  3. Condición: Exist.
  4. Nodo: Seleccionamos el “Nodo de creación o actualización de usuarios”.

Nodo de creación o actualización de usuarios

Este módulo se encargará de crear un usuario nuevo en caso que no se cuente con un contacto en la sección de personas en Keybe, que tenga el mismo número de celular, correo o número de identificación. En caso que encuentre una coincidencia con un contacto en alguno de esos datos se actualizará ese contacto.

Los campos obligatorios en este módulo son:

  • Nombre del cliente: El nombre exacto de la marca como la tienen creada en keybe.
  • Tipo de entidad: Seleccionan personas.
  • Canal de registro: Seleccionan la opción que más se ajuste al caso.
  • Número de teléfono:
    • Valor: Número celular, en nuestro caso llega del “Data source” {phone}.
    • Código país: Indicativo país, en nuestro caso llega del “Data source” {countryCode}
    • Campo “Es principal” habilitado ya que pretendemos usarlo de campo principal de este contacto. En caso de no ser el principal, el correo es el que debe quedar con este campo activo.
  • Nombre: Nombre del contacto, en nuestro caso llega del “Data source” {name}.

Todos los demás campos son opcionales y algunos son textos abiertos, listas, opciones de selección y distintos tipos de formatos como fechas.

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

Filtro de integraciones para validar usuario creado o actualizado

En caso que necesitemos diferenciar casos donde el usuario fue actualizado de los que fueron creados. De no ser necesario se puede omitir este paso y seguir con “Configurar Respuesta del Webhook”

Información de un usuario actualizado:

  1. Nodo fuente: Seleccionamos el módulo de “Nodo de creación o actualización de usuarios”.
  2. Variable: Seleccionamos el campo referencial que aparece “updatedBy.userId”.
  3. Condición: Equal to.
  4. Nodo fuente: No seleccionamos nada.
  5. Value: Ponemos “BKQX361”
  6. Nodo: Seleccionamos el “Respuesta del Webhook”.

Información de un usuario creado:

  1. Agregar nuevo: Creamos una nueva validación.
  2. Nodo fuente: Seleccionamos el módulo de “Nodo de creación o actualización de usuarios”.
  3. Variable: Seleccionamos el campo referencial que aparece “createdBy.userId”.
  4. Condición: Equal to.
  5. Nodo fuente: No seleccionamos nada.
  6. Value: Ponemos “BKQX361”
  7. Nodo: Seleccionamos el “Respuesta del Webhook”.

⚠️ ️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.

Siguiendo el flujo, vamos a tener 2 “Respuestas del Webhook”, una para notificarnos de usuarios actualizados y la otra para notificarnos de usuarios creados. En ambos casos retomamos el caso con el celular del contacto para trazabilidad. En caso de que no requieras este seguimiento, no es necesario configurar este módulo.

Retorna notificación para usuario actualizado:

  • StatusCode: Código 200. Simplemente va a ser informativo, no va a tener ningún efecto sobre el flujo que construimos.
  • Body: Añadimos un JSON con los datos que deseemos retornar. En este caso, retornamos {“payload”:”Usuario actualizado”, “phone”: {{667c9f9114cdf88fada2014e.phone}}}.
  • CustomHeaders: No hacen falta y para este caso no los usaremos.

Retorna notificación para usuario creado:

  • StatusCode: Código 200. Simplemente va a ser informativo, no va a tener ningún efecto sobre el flujo que construimos.
  • Body: Añadimos un JSON con los datos que deseemos retornar. En este caso, retornamos {“payload”:”Usuario creado”, “phone”: {{667c9f9114cdf88fada2014e.phone}}}.
  • CustomHeaders: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á la creación de un usuario en Keybe o si ya existe, la edición de los campos que hayas incluido.

¡¡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