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.