Gabriela Gavrailova

// Product Marketing Associate para desarrolladores

¿Te interesa saber lo que es un webhook y cómo funciona?

Simplemente piensa en la cantidad de información que extraes de los emails que envías. No nos cabe duda de que te encantan nuestras estadísticas detalladas, pero seguro que desearías que hubiera una forma de recibir solo las que necesitas y no tener que perder tiempo buscándolas. Pues estás de suerte, porque tenemos la solución.

Hoy te contamos todo sobre los webhooks, cómo configurarlos y usarlos para impulsar tu programa de emails.

 

¿En qué consisten los webhooks?

Imagina que tienes una tienda online y deseas proponer un descuento especial a cualquier usuario que abra tu email durante las primeras 24 horas. La primera opción es la manual, es decir, comprobar las estadísticas de los emails regularmente y enviar el código de descuento a quienes hayan abierto tu mensaje. No suena muy rápido, ¿verdad?

La segunda opción es automatizarlo con webhooks, que enviarán el descuento a cualquiera que abra tu email. ¿A que parece mucho más eficaz?

En pocas palabras, los webhooks son eventos que desencadenan acciones. Su nombre se debe a que funcionan como «ganchos» de los programas en Internet y casi siempre se utilizan para la comunicación entre sistemas. Son la manera más sencilla de obtener un aviso cuando algo ocurre en otro sistema.

¿Cómo funcionan los webhooks?

Tomemos el ejemplo de tu banco. Cuando sacas dinero de un cajero, la máquina comprueba tu saldo y te da el importe solicitado. Al terminar la operación, se actualiza el saldo y este cambio activa una acción: el envío de un SMS con los detalles de la retirada.

Pues así funcionan los webhooks. Una acción sirve para desencadenar otra acción. El resto es una arquitectura popular utilizada para la comunicación entre sistemas.

Un webhook es una retrollamada HTTP, una solicitud HTTP POST que interviene cuando ocurre algo (una notificación de evento a través de HTTP POST). Los webhooks se utilizan para las notificaciones en tiempo real, por lo que el sistema puede actualizarse cuando se produce el evento.

Por lo general, los webhooks son puntos de retrollamada HTTP definidos por el usuario. Permiten registrar una dirección http:// o https:// donde se almacenan los datos del evento en JSON o XML. Después, podrás hacer lo que quieras con los datos que recuperes y almacenes de un determinado evento.

La mecánica principal de los webhooks consiste en enviar una solicitud HTTP a la URL especificada por un usuario; un webhook efectúa una retrollamada HTTP a una URL que debe configurarse por el sistema que recibe la información.

Esta URL se llama extremo de webhook. Los extremos de webhook deben ser públicos y es importante que la URL pertenezca al sistema receptor. La retrollamada se activa si se produce un evento que deseas notificar a otro sistema.

En el caso de Mailjet, este webhook es una URL que añades a nuestro sistema para recibir eventos de email, como “enviado”, “abierto, “clic”, “rebote”, “bloqueo”, “spam” o “baja”. De esta manera, puedes seguir tus mensajes durante todo su recorrido, o solo consultar el estado que quieras.

Volvamos al ejemplo del cajero. Al sacar dinero, tu banco recibe el aviso, actualiza tu saldo y el sistema interpreta que debe enviarte un SMS con todos los detalles.

Los webhooks siguen el mismo principio. El cajero es una aplicación/web de terceros (proveedor webhook) que envía una señal cuando ocurre un evento específico. El sistema que te envía el SMS es lo que conocemos como un «oyente«. El oyente es la URL que recibe los webhooks y ejecuta una acción predefinida a continuación, en este caso, enviar un SMS. Los webhooks son un mecanismo de programación diseñado para recibir, en tiempo real, información que se origina en un sistema externo. En este caso, el sistema es la cuenta bancaria. ¿Lo vas pillando?

¿Qué posibilidades te ofrecen los webhooks? Entre otras cosas, puedes:

  • Sincronizar sistemas en tiempo real.
  • Enviar cualquier tipo de notificación.
  • Procesar los datos como quieras.
  • Crear informes.
  • ¡Y todo lo que puedas imaginar!

 

¿Por qué los necesitamos?

Las aplicaciones pueden comunicarse entre sí para compartir información con sondeos (polling) o webhooks. En nuestro ejemplo, polling sería ir al banco y preguntar tu saldo cada vez que sacas dinero.

En la actualidad, todos necesitamos una manera más fácil de obtener la información en tiempo real cuando queramos. Por tanto, solicitar cada minuto exportaciones colosales que tu sistema deberá analizar, pudiendo sufrir una sobrecarga o perder todos los datos si falla, no es lo más adecuado. Emplear HTTP es una solución más sencilla y fácil, ya que los webhooks son mensajes automáticos que las aplicaciones envían cuando ocurre algo.

Puedes usar los webhooks para:

  1. Recibir información sobre el evento y almacenarla.
  2. Recibir información sobre el evento y comunicarla.

Vamos a ver más de cerca estos dos escenario.

Recibir información sobre el evento y almacenarla

El método «push» es el más sencillo para usar webhooks. Como ya hemos indicado, no es necesario «sondear» tus datos cada pocos minutos en busca de nueva información. Puedes recibirla directamente con la ayuda de los webhooks. Además, podrás almacenarla hasta que te haga falta para otra cosa. En definitiva, el sistema en el que configuraste el webhook te hará llegar la información que necesites en cuanto la tenga.

Recibir información sobre el evento y comunicarla

La denominada «tubería» (pipe) se produce cuando el webhook no solo recibe la información que «oye», sino que la utiliza para hacer algo nuevo, como desencadenar acciones. Puedes crear un script, registrar su URL en tu web y enviar un email cuando un visitante crea una cuenta. O crear un script que actualice la cantidad de productos disponibles cada vez que se efectúa una nueva compra.

En realidad, con los webhooks tienes libertad para hacer lo que quieras. Y, encima, es simple y eficaz, porque no estás perdiendo tiempo solicitando una enorme cantidad de información, ¡la recibes cuando llega!

¿Cómo puedes usar webhooks con Mailjet?

Los webhooks te informan de las aperturas, clics, rebotes, bloqueos, etc. justo después de que se produzcan. Imagina que, en 15 minutos, más del 60 % de tus emails a un destino se bloquea. Gracias a los eventos que recibes en tiempo real, podrás detectar este problema y actuar de inmediato.

Siempre puedes utilizar los eventos para crear un panel de control personalizado en la aplicación interna que utilices y procesar los datos a tu manera. Solo aparecerán los eventos que necesites y podrás seguir la información más relevante. Si lo prefieres, puedes usar los eventos que recibas en tu webhook para activar el envío de un email nuevo, y crear así un flujo automático personalizado para todos tus usuarios.

Ejemplos de eventos de Mailjet

Veamos con más detalle en qué consisten los eventos que recibes en los webhooks. Este es el mensaje que verás cuando recibas un evento de apertura:

{
“event”: “open”,
“time”: 1433103519,
“MessageID”: 19421777396190490,
“email”: “api@mailjet.com”,
“mj_campaign_id”: 7173,
“mj_contact_id”: 320,
“customcampaign”: “”,
“CustomID”: “helloworld”,
“Payload”: “”,
“ip”: “127.0.0.1”,
“geo”: “US”,
“agent”: “Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0”
}

Puedes consultar qué mensaje se ha abierto, el momento exacto y otra información útil que podrás usar como te plazca.

Esto es lo que te llega cuando se produce un rebote:

{
“event”: “bounce”,
“time”: 1430812195,
“MessageID”: 13792286917004336,
“email”: “bounce@mailjet.com”,
“mj_campaign_id”: 0,
“mj_contact_id”: 0,
“customcampaign”: “”,
“CustomID”: “helloworld”,
“Payload”: “”,
“blocked”: true,
“hard_bounce”: true,
“error_related_to”: “recipient”,
“error”: “user unknown”
}

En el campo «error» puedes ver también el tipo de error. En este caso, el error de “user unknown” indica que es un usuario desconocido. Por tanto, sabes que es mejor no intentar contactar otra vez con dicho usuario. Podría ser útil para sincronizar dos sistemas y limpiar las listas de contactos inactivos o incorrectos.

En resumen, con los eventos que recibes de Mailjet puedes hacer todo lo que quieras. Úsalos en tu configuración y crea lo que necesites.

¿Cómo puedes configurar un webhook con Mailjet?

Lo primero que necesitas es la URL del sistema en el que quieres recibir los eventos. Si ya la tienes, lo demás es facilísimo. Esa URL aceptará la información y puede activar un flujo de trabajo para convertir los datos en algo útil. Puedes configurar los webhooks en Mailjet de dos maneras:

  • Con nuestra API,
  • Con nuestra interfaz.

 

Con nuestra API

Solo tendrás que hacer una solicitud para configurar la URL que vas a usar. Toma nota:

curl -s \
-X POST \
–user “$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE” \
https://api.mailjet.com/v3/REST/eventcallbackurl \
-H ‘Content-Type: application/json’ \
-d ‘{
“EventType”:”open”,
“Url”:”https://mydomain.com/event_handler”,
“Version”:2
}’

La URL recibirá todos los eventos de apertura. Cada vez que un contacto abra tu email, te llegará un evento de apertura como el anterior. Podrás almacenar los datos o desencadenar una acción, como enviar otro email.

¿Ves que fácil? Una solicitud y estará todo listo. Echa un vistazo a nuestra documentación para ir empezando.

Con nuestra interfaz

La alternativa es configurar el webhook desde nuestra interfaz. Puedes hacerlo desde la página «Mi cuenta» en la sección «Rest API». Deberás elegir la opción » Tracking de los eventos (triggers)».

API Mailjet gestión de webhooks

Podrás añadir un webhook para todos los eventos, o configurar algunos específicos para cada tipo de evento.

Tipos de evento de email para webhook

También podrás comprobar que la URL funciona correctamente. Si todo va bien, devolverá un «200 OK HTTP«. Cualquier otro código HTTP provocará que nuestro servidor vuelva a intentar la solicitud más tarde.

Nuestro sistema volverá a intentarlo siguiendo estas reglas:

  • 10 intentos en intervalos de 30 segundos;
  • Después de eso, 10 intentos en intervalos de 30 minutos;
  • Si ninguno de estos intentos funciona, la URL se desactivará.

No pierdas de vista tu webhook para cualquier otra respuesta que no sea un “200 OK”. 😉

¡Esto es todo! Tu webhook funciona de maravilla y está listo para recibir los eventos de tus emails. Aplícalo a tu configuración para contar con tus propias estadísticas o flujos de trabajo personalizados.

En resumen

Ahora ya sabes lo que es un webhook y has entendido por qué es la forma más sencilla de seguir cualquier tipo de evento en Internet. Configura tu «oyente» y define sus acciones cuando reciba los eventos.

Los eventos de Mailjet te ayudan a tener bajo control todo lo que ocurre con tus emails. Es un método excelente para limpiar tus listas o crear tu propio panel de control en la aplicación interna de tu empresa.

¿Conocías ya todas las aplicaciones de los webhooks? Cuéntanos cómo piensas utilizarlos en Twitter.