Casi todos los sistemas informáticos necesitan integrarse con otros: desde integraciones triviales como enviar un mail frente a ciertos eventos hasta integraciones más complejas como sincronizar datos con un CRM, un ERP o simplemente rellenar listas de correo en MailChimp, el caso es que normalmente nuestros sistemas son parte de un engranaje e intervienen en múltiples procesos y flujos de negocio.
El caso de sistemas SaaS es todavía más complejo: no solo son sistemas que cumplen un cometido muy específico, sino que lo hacen para muchos clientes simultáneamente. Esto complica mucho las integraciones, ya que cada empresa usuaria de nuestro sistema puede necesitar puntos de integración distintos y recurrir a tecnologías, proveedores y plataformas de servicios completamente heterogéneos.
Para solucionar esta problemática surgieron plataformas de integración de servicios (iPaaS) que se encargan de realizar la orquestación entre distintas aplicaciones, realizando tanto la conexión como el mapeo de los datos, de forma que cada una de las partes solo tenga que comunicarse con la plataforma de integración.
El caso de YOIN
Para ilustrar este caso vamos a tratar el caso de Yoin, una plataforma de gestión de eventos, que desarrollamos junto con Scholarum: los organizadores de eventos se apoyan en nosotros para realizar el proceso completo: la captación de datos de los asistentes, el desarrollo del mismo y el análisis de los resultados del evento. Para ello, desarrollamos una web completamente personalizada que adaptamos a las necesidades concretas del evento y sus asistentes, una solución a medida pero con una base común de servicios comunes: inscripción, webinars, agenda, networking.
Al ser eventos organizados por diferentes empresas y de muy poca duración, muchas veces el cliente final no tiene la capacidad, bien sea técnica o económica, para habilitar puntos de conexión a los que podamos “conectar” los distintos "eventos de aplicación" que se producen: Alguien se inscribe al evento, asiste a un webinar, realiza una pregunta, muestra interés en un expositor, etc.
Estos eventos de aplicación ("triggers" en el lenguaje de Zapier) desencadenan un amplio abanico de acciones que dependen de cada evento y cliente: mandar un mail al organizador, guardarlo en una base de datos para exportarlo posteriormente o incluso hacer una integración en tiempo real (y a medida) con el sistema del cliente: anotarlo en su CRM, en Google, una lista de SharePoint o de Mailchimp hay tantas posibilidades como clientes.
Además de los triggers, en los que nuestra aplicación "avisa" a Zapier de que cosas que pasan, tambien existen las Actions: llamadas que Zapier hace a nuestra aplicación para desencadenar un proceso o consultar datos.
A fin de crear una solución sencilla, escalable y reutilizable decidimos integrar Yoin con Zapier: lo que permite automatizar flujos de trabajo conectando diferentes aplicaciones y servicios de forma visual y sin necesidad de programación.
La estructura a alto nivel de la solución es la siguiente:
- Yoin expone una serie de eventos de negocio que proporcionarían datos a las aplicaciones “cliente” (los triggers): nuevo registro, inscripción a un webinar, rellenar un formulario de contacto, etc.
- El cliente conecta de manera visual esos triggers con sus sistemas (Zapier soporta varios miles de integraciones), mapeando los datos que Yoin expone con los datos que necesita la aplicación cliente y definiendo una serie de acciones a realizar cuando sucede cada evento.
- Una vez configurado, la actividad de los usuarios en Yoin genera en tiempo real eventos que se trasladarían a los sistemas del cliente.
- Algunos clientes captan registros mediante formularios de Facebook y landing externas, por lo que habilitamos un action en el que (usando una estructura de datos que definimos), mapeamos los campos del formulario con nuestros campos, por lo que en el momento de hacer el registro en el formulario, Zapier nos avisa y creamos un usuario en la plataforma.
- Por ultimo, Zapier tiene una funcionalidad de polling en la que puede cada X minutos consultar un webapi nuestro para obtener los datos e invocar workflows de su lado, para casos en los que no se requiera una integración en tiempo real (o el plan de Zapier no lo soporte).
Al configurar visualmente (y desde el lado del cliente) aislamos la implementación de nuestro sistema del flujo de acciones que se desencadenan para cada cliente, permitiendo que por un lado nosotros no introduzcamos complejidad en nuestros sistemas y que el cliente pueda cambiar y extender los flujos de acciones sin depender de nosotros para ello.
Ponemos un par de ejemplos de integraciones:
- En el momento en que una persona se inscribe en el evento sus datos se escriben en Zoho CRM en unos eventos y mientras que en otros se decide ir llenando una hoja de Google Sheets.
- Cuando se inscribe una persona a la lista de correo, se inserta automática el contacto en una lista de MailChimp en unos eventos, de MailJet en otros o simplemente en un Excel en otros.
Pasos de la integración
Los pasos que realizamos para esa integración fueron los siguientes:
- Definimos los eventos de aplicación que queremos exponer a los clientes (triggers), Este trabajo se realiza junto con el product owner y se piensan los eventos "de plataforma" que tiene sentido que desencadenen acciones: en nuestro caso podrían ser cosas como la inscripción a un evento, inscripción a un webinar, solicitud de contacto, uso de la funcionalidad de favoritos.
Al crear el trigger en Zapier proporcionamos los datos básicos, instrucciones de uso y la visibilidad para hacerlo público o privado. - Para cada evento definimos los datos que queremos exponer. Cuando el trigger salta, nuestra aplicación rellena esos datos y se los proporciona a Zapier, que los distribuye en base a la configuración que realice el cliente. Para ello primero pasamos el json que generamos y automáticamente se genera un esquema de datos que podemos personalizar muy fácilmente.
- El cliente configura desde Zapier la respuesta al evento en base a sus necesidades tecnológicas y de negocio personalizadas.
- Se hacen las pruebas de integración de la implantación del cliente, sin involucrar a nuestro equipo técnico, tener que manejar claves de los sistemas del cliente y para que la integración se pueda evolucionar sin contar con nosotros.
- En nuestro caso, y como estamos desarrollando una solución SaaS que dará servicio a múltiples clientes, a cada cliente se le crea una clave de API que será lo que identifique su instancia de cara a generar los eventos adecuados y evitar que los eventos de un cliente se filtren a otro.
Creación de trigger en zapier, proporcionamos los datos básicos
Al igual que Zapier hay otras plataformas de integración de servicios (iPaaS), como IFTTT, Integromat o Microsoft Power Automate, no son excluyentes entre sí y se podría integrar con más de una, en general todas presentan un esquema de funcionamiento similar.
Respecto a los costes, cada ejecución de una integración (un Zap) acarrea cierto coste (normalmente de 1-2 céntimos por ejecución), por lo que hay que evaluar si para algunos casos con gran volumen puede justificarse económicamente una integración “tradicional”. Asimismo hay que evaluar adecuadamente las necesidades de nuestro sistema para adaptarse al plan de uso que mas nos convenga, ya que algunas características no están presentes en todos los planes.
Beneficios de la integración con un iPaaS
En conclusión, el poder integrar nuestros desarrollos con Zapier (o con cualquier otro iPaaS) nos aporta múltiples ventajas:
- Abre nuestra plataforma a miles de aplicaciones de terceros con las que podemos integrarnos.
- Cambia el foco de las integraciones al evento de aplicación, no a la aplicación de destino de una integración concreta.
- Simplifica enormemente las integraciones: Nuestro sistema no tiene que “hablar” el idioma de un ERP concreto, simplemente “habla Zapier” y es éste el que traduce a los "dialectos" de cada consumidor de datos. Desacoplando completamente el productor de los datos (nosotros) del consumidor de los mismos (los sistemas de nuestros clientes).
- Permite a nuestros clientes extender sus procesos sin contar con nosotros, pudiendo añadir pasos, sistemas, etc. Es más, toda esa inversión en integración puede ser reutilizada si en un futuro cambian de proveedor.