¿Cómo crear un Flujo con Webhook?

¿Qué es un webhook y para qué sirve?

Un webhook, o API inversa, es un sistema de comunicación automático que funciona a través de solicitudes HTTP y que permite el intercambio de datos entre aplicaciones web, o entre éstas y sitios web, en tiempo real. El nombre webhook es tan solo la combinación entre la palabra web, en referencia a su comunicación basada en el protocolo HTTP, y la función de programación de enlaces (hooking) que permite a las aplicaciones interceptar llamadas u otros eventos que podrían ser útiles. Los webhooks enlazan el evento que se produce en la aplicación del servidor y le solicitan que envíe la carga útil al cliente a través de la web.

Los webhooks actúan como “anzuelos” de los programas informáticos que están presentes en la web. ¿Qué hacen estos “anzuelos”? Activar alertas o notificaciones cuando un determinado evento ocurre en otros sistemas a los que están vinculados. 

Paso a paso para generar un flujo con webhooks

Recuerde que para crear un flujo en ATOM debe:

  • Ingresar en el módulo de Campañas.
  • Haga clic en el submódulo de Flujos.
  • Haga clic en el botón “Crear Flujo”.

  • Puede elegir entre crear un flujo personalizado desde cero o emplear algún flujo predefinido que AtomChat ofrece.

Paso 1 - Crear flujo  con disparador de webhook

Para crear un flujo que contenga el soporte para webhooks, seguir los siguientes pasos:

   1.   Diríjase al editor de flujos de Atom y escoja como disparador del mismo: Webhook.

   2.   A continuación conectar el componente webhook con uno de plantilla.

       3.   Luego de escoger una plantilla, puede seguir agregando los componentes que considere para completar el flujo.
       4.   Una vez completado su flujo de trabajo, proceda a copiar los parámetros de entrada del Webhook. Puede hacerlo de dos formas distintas:
      • Antes de publicar el flujo de trabajo, haga clic en el componente webhook y luego en “Mostrar petición POST” en el panel izquierdo. En el detalle de la petición POST encontrará entre símbolos {} los parámetros (tenga en cuenta que deberá reemplazar los valores “Datos a enviar” por el que corresponda”. Ejemplo:

        • Otra opción que tiene para copiar los parámetros de entrada una vez que el flujo haya sido publicado y se encuentre con estado ‘Activo’:
        • Seleccione el flujo con webhook en la pantalla de ‘Webhooks’ dentro del módulo de Campañas y ejecute la acción ‘Ver flujo’:

        • En el visor de flujos de trabajo, realice clic en el botón ‘Copiar campos de información’ que se encuentra dentro del componente webhook:

      • Los campos se copiaran con el siguiente formato, listo para pegarlos en su herramienta de prueba de APIs o en la configuración de su CRM que se conectará al webhook de ATOM:

    Ejemplo:
    {

    "phone": "",

    "company_name": "",

    "fecha_cita": "",

    "monto": "",

    "name": ""

    }

       5.   Luego de finalizar la creación del flujo de trabajo con webhook, proceda a guardarlo y luego publicarlo para que el mismo se active de manera tal que pueda emplearlo.

    El componente webhook cuenta con dos botones para agilizar su posterior operación:

    El botón 1 le permite copiar la URL del webhook mientras que el botón 2 puede emplearlo para copiar los campos de información en formato JSON.

    Tenga en cuenta la siguiente información acerca de los parámetros de un webhook ATOM.

    Todo webhook ATOM tiene, por defecto, como parámetro de entrada obligatorio el número de teléfono (phone) de destino de los mensajes del flujo.

    El número de teléfono (“phone“) deberá ingresarlo anteponiendo el signo “+“ y el código de área de su país, sin utilizar guiones o espacios.

    Sin embargo, si en el flujo se insertan plantillas con sus propios campos personalizados, todos ellos pasarán a ser parámetros de entradas obligatorios del webhook.

    Por otra parte, Atom le permite incluir otros parámetros en el webhook a través de los campos personalizados, tal y como se muestra a continuación:



    Para visualizar los campos requeridos de un webhook:

    1. Diríjase al editor de flujos en el módulo de Campañas.
    2. Haga clic en el componente Webhook.
    3. A la derecha de la pantalla se desplegará un panel en donde podrá visualizar los campos requeridos.

    Paso 2: Realiza pruebas de tu  flujo

    Una vez que se tiene un flujo con webhook creado y publicado, se puede simular y evaluar su ejecución. Para ello se hará uso de la herramienta de pruebas de APIs denominada Postman.

    A continuación se indicará el paso para simular un flujo con webhooks en Postman:

    1. Diríjase al módulo de Campañas.
    2. Haga clic en el submódulo de webhooks.

     3.  Diríjase al flujo con webhook que desee probar y haga clic el ícono URL para copiar la misma y usarla en Postman.
     4.  A continuación complete los siguientes parámetros en Postman:

    Headers

    • Content-Type: application/json
    • Authorization: Bearer xxxxx, siendo xxxxx el token API que debe obtenerlo en el submódulo Mi Empresa → Configuración de seguridad

    Importante: al emplear un webhook es obligatoria la autenticación a través del token API. Por otra parte tenga en cuenta que si ya posee uno generado y usted decide generar uno nuevo, tendrá que reemplazar el nuevo en todos aquellos webhooks y APIs de Atom que tenga en uso.

    Body

    • Formato: raw
    • Escribir los parámetros en formato JSON, ej: 

    {

        "phone": "5795755112756",

        "client_name": "Martin Lopez"

    }

    Todos los parámetros deben insertarse en formato string, es decir entre comillas dobles ( “”).

    Al momento de utilizar los webhooks ATOM puede encontrarse con los siguientes códigos

    Escenario

    Código de Respuesta

    Cuerpo de la Respuesta

    Envío satisfactorio

    200 - Ok

    {"message":"Webhook ejecutado satisfactoriamente"}

    Token inexistente

    401 - Unauthorized

    No authorization token found.

    Token incorrecto

    404 - Not Found

    Cannot find a company with uuidToken = xxxxxxx

    Parámetro requerido

    500 - Internal Server Error

    {

    "message": "El parametro xxxx es requerido",

    "hasErrors": true

    }

    Intentar simular un flujo activo

    500 - Internal Server Error

    {

    "message":"El contacto se encuentra simulando un flujo.",

    "hasErrors":true

    }

    Paso 3: Defina los disparadores de su CRM o ERP que ejecutarán el flujo con webhook creado. Es importante que configure en ellos tanto la URL como los parámetros del webhook de ATOM.


    Paso 4: Una vez que haya evaluado y aprobado la interacción entre su CRM o ERP y el webhook ATOM, saque a producción su flujo.

     

    Empleo del componente http para devolver los datos de un flujo

    Alternativamente cuenta con la posibilidad de devolver los datos empleados en un flujo a través del método POST de petición HTTP.

    Para ello se hará uso del componente “Petición HTTP” en el diseño del flujo de trabajo. A continuación se detalla la configuración del mismo:

    1. En el editor de flujos de trabajo de ATOM, inserte el componente “Petición HTTP”.
    2. Como método debe escoger: “POST”.
    3. Inserte la URL a la que se le enviarán los datos de los campos personalizados empleados en el flujo.
    4. Active el campo para insertar los campos en el Cuerpo de la petición, deslizando el botón Cuerpo.

       5.  Los campos de información deben insertarse en formato JSON. Tenga en cuenta que tanto el identificador del campo como su valor (el campo de información) deben ir entre comillas dobles (“).

    • Para escoger el campo de información que captura el dato, presione la tecla / (barra) la cual desplegará un listado con todos los campos de información disponibles para insertar.

      6.   Proceda a simular la ejecución del flujo para evaluar el envío de los datos. 

    A continuación presentamos un ejemplo de una simulación de un flujo que contiene un componente “Petición HTTP”:

    1. Generamos un flujo con una petición HTTP con los siguientes parámetros:

    El campo “name” es un parámetro de entrada del flujo mientras que el campo “identificacion” captura la respuesta del cliente en whatsapp

    1. Iniciamos la simulación del flujo a través de la herramienta POSTMAN:
    2. El cliente recibe y contesta los siguientes en WhatsApp:
    3. Podemos observar como la ultima respuesta del cliente se almacena en el campo “Identificacion”: