Webhooks, clave para la interacción entre apps

Tabla de Contenidos

Esta popular herramienta representa la forma más sencilla y eficiente de transmitir y recibir un evento o aviso importante en tiempo real. Además, permite actualizar sistemas, así como ahorrar tiempo y recursos valiosos.

Uno de los principales requisitos que hoy se exige a toda App, en especial si funciona en el entorno web, es su capacidad de conectarse y comunicarse con otras. En los últimos años se han desarrollado diversas soluciones que facilitan ese proceso, como los SOAP (Simple Object Access Protocol), las API Web REST (Application Programming Interface), las OData o las GraphQL, entre otras. Sin embargo, la opción más efectiva y utilizada en la actualidad son los populares webhooks.

¿Qué son los Webhooks?

Básicamente, un webhook es una retrollamada HTTP. Es decir, una solicitud HTTP POST que interviene cuando se registra un evento específico en una aplicación o sistema, y que en forma simultánea la notifica a otra app o sistema.

Su nombre se debe, precisamente, a que funciona como “gancho” o unión entre dos o más programas que operan en Internet. Esta característica explica su creciente popularidad, pues representa la manera más sencilla de transmitir y recibir un aviso importante en tiempo real, que además permite actualizar todo un sistema.

En términos simples, equivale a retirar efectivo desde un cajero automático. En ese momento, la máquina revisa el saldo, comprueba si hay dinero en la cuenta para concretar la operación, y entrega el monto solicitado. Al terminar la operación, se actualiza el saldo del cliente, y dicho cambio activa otra acción: el envío de un SMS o correo electrónico (según corresponda) con el detalle del retiro.

Los webhooks funcionan precisamente de ese modo. Una acción, en este caso el retiro de dinero, desencadena otras acciones, que son la actualización de los sistemas del banco, y el envío simultáneo del mensaje al cliente.  De esta forma, al integrar múltiples aplicaciones, se le puede decir a otra plataforma, mediante un webhook, que ejecute una o más acciones específicas, como informar el retiro, avisar de eventuales operaciones fraudulentas, u ofrecer créditos de consumo.

Si trasladamos esta lógica operativa a las empresas, es posible generar un amplio flujo de tareas a otras plataformas a partir de un evento particular. Por ejemplo, el llenado de un formulario de mantenimiento. De este modo, cada vez que un supervisor ingrese información crítica nueva a su formulario electrónico online de inspección de máquinas, puede generar en tiempo real la respectiva acción de mantenimiento correctivo o preventivo (según sea el caso).

Ventajas y Beneficios

Este esquema operativo ofrece múltiples ventajas para todas las aplicaciones que dialogan durante la prestación del servicio. Entre estas destacan las siguientes:

Ahorro de recursos y tiempo

Las API convencionales suelen emplear muchos recursos para hacer y responder numerosas llamadas sin utilidad alguna (generalmente para intercambiar información redundante) antes de concretar la cadena acción-reacción. Un webhook, en cambio, omite este paso pues no realiza ninguna llamada previa, y envía los datos en cuanto están disponibles.

Optimizar la eficiencia

Mediante un webhook la aplicación usuaria recibirá una llamada en el momento exacto en que la necesita, y no habrá retrasos innecesarios.

Incrementar la velocidad de respuesta

La llamada que se hace a un webhook es muy rápida, pues solo se envía la información específica del evento. De hecho, muchas veces ni siquiera se espera por el resultado, pues sólo se trata de notificar el suceso y nada más.

¿Son lo mismo que una API?

Diversos especialistas suelen homologar a los webhooks dentro de la familia de las API. Incluso, se les suele denominar “API inversas”, ya que funcionan de manera similar a un contrato entre dos partes, salvo que las llamadas se hacen en sentido contrario. Sin embargo, a diferencia de las API, los webhooks suelen estar presentes en ambos lados de la cadena.

Además, en la mayoría de las API, existe una solicitud seguida de una respuesta. En cambio, un webhook no requiere ninguna solicitud, pues envía la data en cuanto está disponible.

¿Dónde se encuentran?

Hoy en día, los webhook son parte integral del desarrollo de toda aplicación. Por ende, están presentes en prácticamente todas las soluciones más populares del mercado.

Algunos de los ejemplos más conocidos son los siguientes:

Github ofrece webhooks para notificar a otras aplicaciones la ocurrencia de ciertos eventos como, por ejemplo, un comando “push” aplicado a un master o a una rama.

Mailchimp, uno de los más populares servicios de email marketing web, ofrece webhooks para notificar a otras aplicaciones cuando se producen nuevas altas o bajas de un servicio de boletín, o cuando un suscriptor cambia su dirección de email.

Shopify, uno de los productos de tienda online más utilizados del mundo, ofrece webhooks para notificar el momento en que un usuario procesa una compra, solicita un reembolso, o agrega un producto a su carrito.

Twilio, líder mundial en productos de telefonía y mensajería para desarrolladores, ofrece múltiples webhooks para notificar la recepción de una llamada y, además, para que la propia aplicación pueda informar también eventos importantes a sus usuarios.

Sendgrid, otro popular servicio backend para envío de email, ofrece webhooks para notificar situaciones tales como, recepción de un mensaje, o un correo que rebota, entre otras múltiples opciones.

Integrador de múltiples aplicaciones

Otra ventaja fundamental y relevante de webhook es que permite delegar la coordinación de tareas a servicios externos, reduciendo dificultades operativas y ahorrando gran cantidad de tiempo de desarrollo propio.

Por ejemplo, en lugar de que la app de inspección sea responsable de recibir el webhook del proveedor de mantenimiento, de llamar a otros servicios para enviar la alerta respectiva, y de generar la respectiva orden de reparación, se puede recurrir a un servicio externo que conjugue todas estas tareas.

Este servicio puede ser gratuito o pagado (según las opciones que ofrece el mercado), y gracias al uso de múltiples webhooks brinda un punto central que coordina todas las aplicaciones del usuario, incluyendo las propias.

Además, permite crear reglas complejas en función de los eventos ocurridos y los datos recibidos, lo cual asegura continuidad de servicio, sin incurrir en mayores gastos por mantención de servidores.

Los servicios de coordinación de tareas más conocidos son:

Zapier

Es, sin lugar a dudas, la herramienta más popular de este grupo, pues integra más de 2.000 aplicaciones de variado tipo, y permite crear múltiples flujos de contacto entre ellas. Como muchos de los servicios actualmente presentes en el mercado, tiene funciones básicas gratuitas y otras pagadas (https://datascope.io/es/blog/como-usar-zapier-para-optimizar-tu-negocio/).

Integromat

Si bien ofrece menos servicios que Zapier, su aplicabilidad es igual de amplia. Además, es muy fácil integrar cualquier servicio externo mediante conectores HTTP y JSON (webhooks). Incluso es compatible con antiguos conectores XML y SOAP. Sus opciones gratuitas también son generosas.

IFTT

Es una de las pioneras del mercado, aunque su principal orientación son los productos del hogar digital. Es totalmente gratuita e integra interesantes apps que no están presentes en otros servicios (como Telegram, por ejemplo). Sin embargo, su interfaz sigue siendo compleja y poco amigable. Además, los conectores para webhooks son algo limitados en cuanto a los parámetros que se pueden enviar y recibir, porque están más pensados para IoT y no tanto para grandes integraciones.

Microsoft Power Automate

Nació hace algunos años como Microsoft Flow, dirigido a usuarios finales y con una óptima versión gratuita. Ahora, en cambio, forma parte de la familia Power Platform, se orienta completamente a empresas, y no tiene servicios gratuitos. Es ideal para ambientes Office 365 o Azure.

Automate.io

Es una de las opciones más nuevas del mercado. Permite integrar aplicaciones sin codificación mediante una interfaz muy simple, que funciona sobre la base de arrastrar y soltar. Los usuarios se conectan a cualquier servicio que deseen integrar utilizando sus credenciales, y luego seleccionan qué aplicación utilizar para activar el flujo de trabajo. Los eventos desencadenantes se pueden seleccionar de una lista desplegable. También permite agregar acciones, seleccionando la aplicación deseada y la acción correspondiente, a partir de una lista desplegable.

También podría interesarte

Sobre el autor

Francisco Gonzalez

Comparte en

Suscribete a nuestro Newsletter