Imagina que siempre has querido abrir una pequeña librería en tu ciudad natal, donde solo los miembros o suscriptores pueden pedir libros prestados. No solo eso: imagina que ya está lista para empezar a funcionar.
PERO (ah… siempre hay un «pero») eres una persona ocupada y no puedes estar presente físicamente en la librería 24/7, así que decides contratar a un asistente que te informe de manera regular de todo lo que va pasando…
Se presentan dos personas a la entrevista; dos personas muy diferentes.
- El Sr. Aarón Puerta Iñárritu (alias API), un asistente muy eficiente, que te da las respuestas que necesitas cuando le llamas. Así, si le preguntas «¡Oye! ¿Se ha suscrito alguien hoy? ¡Gracias!», te dirá al instante los números que quieres saber.
- El Sr. Webster Hooksington (alias Webhooks), que hace las cosas de otra manera. Tan pronto como alguien se suscribe como miembro de la librería, automáticamente te envía un mensaje diciendo: «¡Oye! Luis González de Granada se ha suscrito al plan Platino. ¡Aquí tienes más información sobre él! ¡De nada!». Sin que se lo pidas.
Pregunta: ¿A quién contratarías?
La respuesta es bastante obvia. En Marketic nos gustan los webhooks, y en este correo vas a descubrir por qué. Vas a conocer la importancia de esta funcionalidad cuando se necesitan notificaciones en tiempo real o la sincronización de todos los datos de una BBDD.
¿Cómo funcionan los webhooks?
Imagina que la puerta de la librería estuviera conectada a una bombilla que tienes en tu casa, en tu sala de estar. Cada vez que alguien entra por la puerta, la bombilla se enciende. Cuando ves encenderse la bombilla, sabes que alguien ha entrado en la librería, lo que significa que se envía una señal desde la puerta hasta la bombilla.
Los webhooks funcionan de la misma forma. La puerta sería una aplicación/sitio de terceros (proveedor de webhooks) que envía una señal cuando ocurre un evento específico. Y la bombilla en la sala de estar sería lo que en el mundo del software se conoce como «listener». El listener es la URL que recibe los webhooks y realiza una acción predefinida en respuesta a ellos.
Los webhooks son, básicamente, llamadas HTTP definidas por el usuario y desencadenadas por eventos específicos. Siempre que ese evento desencadenante ocurra en el sitio web de origen, el webhook lo percibe, recopila los datos y los envía a la URL que hayas especificado en forma de llamada HTTP. Puedes incluso configurar un evento en un sitio web para desencadenar una acción en otro sitio web.
Como ya habrás comprendido a estas alturas, la diferencia fundamental entre las llamadas API y los webhooks es que, mientras la primera funciona en mecanismos de salida basados en solicitudes, la última funciona en mecanismos de salida basados en eventos.
Volviendo a tu librería:
Esta vez imagina que tienes una librería online. Supongamos que solo los suscriptores que pagan pueden ver tus publicaciones, pero todos los suscriptores pueden conseguir una prueba gratuita de un mes. Supongamos que tienes cinco webhooks individuales configurados para cinco eventos diferentes:
- suscripcion_nueva: se envía cuando se crea una nueva suscripción.
- suscripcion_fin_prueba: se envía cuando el período de prueba de un cliente está a punto de expirar.
- tarjeta_agregada: se envía cuando un cliente añade una tarjeta.
- pago_realizado: se envía cuando un pago ha sido recibido correctamente.
- suscripcion_activada: se envía cuando un suscriptor pasa de estar en período de prueba al estado activo.
Veamos cómo funcionan en los siguientes escenarios:
Día 1: Un visitante X se suscribe para una prueba gratuita. Con la ayuda del webhook configurado para el evento «suscripcion_nueva», el sitio web de origen enviará una solicitud HTTP POST a la URL que hayas elegido, con los detalles del suscriptor, y la base de datos de tus clientes se actualizará automáticamente.
Día 24: Queda una semana para que la prueba gratuita de X termine. Con el webhook «suscripción_fin_prueba», recibirás una notificación al respecto. Con un poco de codificación y configuración, podrás mostrar un banner o alerta en el perfil de X, informándole de que su período de prueba está llegando a su fin, y también puedes darle un enlace para actualizar su plan y los detalles de su tarjeta, los que necesitarás para cobrarle al final del período de prueba.
Imagina que a X le encanta tu servicio y no quiere dejar de usarlo. Inmediatamente introduce los detalles de la tarjeta. Esto disparará el webhook «tarjeta-agregada» y los detalles correspondientes se actualizarán en la base de datos del cliente.
Día 32: El período de prueba ha expirado y cargas el coste en la tarjeta. ¡Voilà! La transacción es un éxito. Ahora le toca activarse al webhook «pago_realizado», que a su vez cambia la suscripción del estado de prueba al estado activo. Esto desencadena el webhook «suscripcion_activada», que luego envía un correo electrónico a X indicándole que el pago ha sido realizado correctamente. Mientras esto ocurre, tu base de datos de clientes se actualiza también de acuerdo a lo sucedido.
Todo esto seguirá sucediendo, con poca o ninguna intervención por tu parte, siempre que automatices el proceso con la ayuda de un conjunto de webhooks y códigos.
En resumen, puedes usar webhooks:
- Para saber simplemente que un evento ha tenido lugar.
- Para asegurarte de que los datos estén sincronizados en múltiples aplicaciones web.
- Para personalizar o modificar las aplicaciones y sus funcionalidades según tus necesidades.
- Para conectar dos o más aplicaciones de forma que un evento en una aplicación desencadene un evento en otra, y así sucesivamente.
Caso real de uso de webhooks
Mautic permite configurar webhooks para diversas funciones: podemos convertir en Contactos de Mautic los leads que nos envían correos a Gmail, así como los que nos contactan por Facebook Ads, Eventbrite, Slack o LinkedIn.
También podemos generar tarjetas de Trello a partir de los resultados de los Formularios de Mautic, o guardar estos resultados en Google Hojas de cálculo (o a la inversa: actualizar nuestra base de datos a medida que aparecen nuevos leads en nuestra hoja de Google).
Las posibilidades son muy variadas, y es por eso que en Marketic somos firmes defensores de los webhooks.
En el caso de las tiendas online, podemos configurar para ellas webhooks que nos informen cuando se actualice un producto, un carrito de la compra, se inicie un pago, se pague un pedido, se inicie un reembolso, y así sucesivamente.
De la misma forma, desde Mautic podríamos enviar un correo electrónico al cliente cuando deja un carrito abandonado, o después de la compra para sugerirle productos relacionados compatibles con su compra. Los webhooks hacen posible que no tengamos que preocuparnos por perder un pedido o por no enviar los productos a tiempo, y, además, nos ayudan con las tareas de cross-selling.
Para la mayoría de los aspectos de la vida, cuanto más, mejor, y el caso de los webhooks no es una excepción. La gran cantidad de aplicaciones que permiten augura un futuro de lo más automatizado.
Los beneficios de los webhooks
En pocas palabras, los webhooks son notificaciones en tiempo real. Trasladan a otras aplicaciones la información pre-solicitada cuando ocurre un evento, al contrario de lo que sucede con una API típica, en la que tienes que «sondear» manualmente los nuevos datos en intervalos de tiempo regulares.
Esto nos lleva, finalmente, al gran beneficio inherente a los webhooks: una mayor eficiencia, es decir, menos dolores de cabeza.
Se acerca el momento en que los webhooks serán omnipresentes, y cambiarán Internet de manera radical. Son el siguiente paso lógico en la evolución de la comunicación en Internet.
Y en esa evolución Mautic tiene un papel esencial. ¿Te apuntas?
El negocio va bien, muy bien, viento en popa.
Aumentamos en número de clientes, facturación y el Churn Rate (la tasa de bajas) se mantiene en ratios ridículamente bajos, signo de que algo estamos haciendo bien.
No te voy a abrumar ahora, querido lector, con una interminable retahíla de KPI’s, eso lo dejo para los inversores que, hasta ahora, han brillado por su ausencia.
(Como la esperanza es lo último que se pierde, aquí dejo un link para eventuales interesados, nunca se sabe)