¿Cómo puedo saber al instante cuando uno de mis pedidos fue entregado a mi cliente? ¿Cómo hago para que mi cliente reciba un email al instante cuando su pedido ha salido a reparto?
La misión del día de hoy es aprender otro concepto de tecnología web, sus aplicaciones y ventajas, con el fin de abrir nuestra mente e imaginar el sinfín de soluciones que se pueden construir a partir de nuestros nuevos amigos: los webhooks. Al igual que el artículo anterior, trataremos este tema con la menor cantidad de tecnicismos posibles y utilizando como ejemplos casos típicos de logística e e-commerce.
Aquí vamos…
¿Qué es un webhook?
En palabras simples, un webhook es un mecanismo de un sistema mediante el cual este es capaz de notificar instantáneamente la ocurrencia de determinados eventos.
Y en palabras aún más simples, un webhook es una notificación que un sistema emite cuando ha pasado algo dentro de él.
Para configurar un webhook, necesitamos básicamente 2 elementos: un evento y una URL.
Un evento es algo que puede ocurrir dentro del sistema y que queremos identificar cada vez que pase, por ejemplo, cuando se realiza una venta, cuando se registra un nuevo usuario, cuando falla el pago de un cliente, etc.
La URL es una dirección (ej: otro-sistema) hacia la cual se van a enviar datos cuando ocurra el evento que definimos que debía ser monitoreado. Esta dirección debe ser de OTRO sistema, ya que el objetivo de los webhooks, al igual que de las API, es conectar sistemas y agilizar la transferencia de datos entre unos y otros.
Ok, pero… para qué sirven los webhooks?
Te lo explicaré con un ejemplo clásico de Envíame.
Pablo es jefe del canal e-commerce de una tienda de accesorios para mascotas. Él cree que una manera de mejorar la experiencia de compra en su página es notificar mediante email a sus clientes cada vez que sus pedidos vayan cambiando de estado. “Tu pedido está siendo preparado”, “Tu pedido ya está en camino”, “Tu pedido ya fue entregado”, son ejemplos de las distintas etapas por las que pasa el envío de un producto.
¿Cómo se puede implementar el envío de estas notificaciones al cliente? Si pensaste que haciendo uso de webhooks, estás totalmente en lo cierto.
En este caso, podemos identificar que el evento a monitorear es el cambio de estado de un envío. Envíame cuenta con un sistema propio de envío de emails, por lo que la URL hacia donde se disparan los datos del envío cada vez que este cambia de estado, es una URL interna de Envíame. Este segundo sistema toma la información, la procesa, arma el email y lo envía al cliente final.
Este es un claro ejemplo donde se ve la instantaneidad del envío de datos de un sistema a otro luego de ocurrido un determinado evento. Webhooks en todo su esplendor.
Un segundo ejemplo
Carolina es analista de logística de una importante cadena de retail. Todos los días ella debe calcular un indicador de Órdenes en reparto vs Órdenes efectivamente entregadas mediante un sistema de gestión propio desarrollado en su empresa. La cantidad de órdenes que han salido a reparto desde sus bodegas es un número fácil de saber, pero… ¿cómo puede ella saber al instante cuando una orden es entregada, para llegar al final del día con el número exacto de órdenes que se entregaron durante la jornada y así calcular sus indicadores? Aquí un webhook vuelve a ser protagonista.
Para que el indicador de Carolina se calcule con total certeza, es necesario que su sistema de gestión reciba al instante la información de cada envío cuando es entregado. Para esto se requiere configurar un webhook en Envíame, que en cada cambio de estado de sus envíos se disparen los datos de estos al sistema de Carolina. Para esto, su equipo TI debe generar una URL hacia donde Envíame tiene que lanzar los datos de los envíos cuando hayan cambios de estado.
Observaciones finales
Los ejemplos expuestos son casos que ocurren día a día en Envíame, sin embargo, el objetivo de este artículo es que te familiarices con el concepto “webhook” a tal punto que en cualquier caso donde se necesite enviar datos de un sistema a otro de forma instantánea una vez ocurrido un determinado evento, digas “¡pero si eso se puede solucionar con un webhook!”, seas del rubro de la logística o no.
Como se indicó en el artículo sobre API REST, sobre los webhooks es importante entender cómo funcionan y cuándo se pueden/deben utilizar, pero su implementación debe ser realizada y/o monitoreada por algún profesional de TI según la complejidad del caso.