Uso de Bots para Integrar Aplicaciones

Publicado en

Si has utilizado herramientas de mensajería como Skype, Slack o Facebook, habrás notado que existen usuarios que por lo general en su nombre terminan con la palabra bot. Si has enviado mensajes a alguno de estos, te habrás dado cuenta que ellos suelen responder a tus comandos casi de inmediato. Así es, los bots son programas que imitan el comportamiento humano (normalmente en chats) o responden a comandos específicos que ayudan automatizar tareas repetitivas y costosas en tiempo o esfuerzo.

Plataformas como Facebook Messenger o Slack proveen una base sobre la cual otras personas puedan integrar bots provistos por terceros o crear los suyos propios. Esto ha permitido que existan bots que integran otras aplicaciones. Por ejemplo, Andy English Bot (andychatbot.com) te ayuda con el aprendizaje del idioma directamente en el messenger de Facebook como si hablaras con otra persona; Meekan (meekan.com/slackhelp) te ayuda a organizar tu calendario desde el mensajer slack, creando eventos, invitando a otras personas, enviando una encuesta para que los invitados voten sobre la mejor fecha que les favorece a cada uno, agregar un punto de reunión, un enlace de streaming, recordatorios, te permite avisar que llegas tarde o posponer juntas; HealthTap (www.messenger.com/t/healthtap) provee de una conexión instantánea a más de 100,000 doctores y algunos mas con especialidades, 24 horas al día para proveer respuestas adecuadas o artículos documentales para tus preguntas sobre salud. También existen otros mas comerciales como Fynd (www.messenger.com/t/gofynd) que presume de comportarse de manera diferente para cada usuario gracias a que recuerda sus preferencias, descubre tendencias y te alerta de nuevos productos que llegaron.

Sin embargo, algunos encontrarán que la integración con aplicaciones específicas no es siempre suficiente para proveer la funcionalidad completa que se desea. Los ChatBots son una buena alternativa en estos casos y cada vez son más populares en las redes sociales. Por ejemplo, Hubot (hubot.github.com) es uno de los más soportados gracias a GitHub que lo hizo Open Source y la comunidad que lo adoptó, tiene una muy buena integración con otros servicios, se puede instalar en la nube y utiliza un concepto de Adapters para usarlo desde otras plataformas como Facebook, Skype, Slack o incluso la línea de comandos. Cog (operable.io) y Yetibot (yetibot.com) son opciones que han causado revuelo porque permiten encadenar comandos con “pipes”, similar a como se hace en la consola, la salida de un comando es la entrada de otro en un proceso, así los comandos se pueden anidar a diferentes niveles como se desee.

 

Los bots han ido ganando terreno porque proveen una mejor experiencia a consumidores, reducen tiempos de respuesta y economizan procesos donde se involucran más de una persona para atender a miles o millones de clientes; los bots agilizan los procesos de compra-venta, obtienen una retroalimentación del cliente mejor enfocada, identifican tendencias de mercado y por consecuencia generan clientes más felices.

La automatización en procesos para desarrollar un producto/servicio de manera que se facilite el acceso a la información de los diferentes flujos en IT hacia todo el staff involucrado en dicho desarrollo es una de las áreas donde se han integrados los chatbots por su habilidad de integrar otras aplicaciones que ayuden a todo el equipo encargado. En estos chats se promueve la colaboración entre desarrolladores y personas del negocio, sin importar si están distribuidos en distintas ciudades, porque se dispone de un canal donde todos pueden aportar soluciones a problemas, se generan lluvia de ideas, y si nos vamos a la parte técnica de lo que comúnmente DevOps desempeña, se puedan revisar logs, recibir alertas sobre ajustes en infraestructura, reportar datos con gráficas, responder a incidentes, crear o actualizar tickets de soporte, facilitar juntas de revisión, administrar eventos en el calendario para el staff, compartir documentos, tener control de la configuración, administrar los contenedores en la nube y la infraestructura orquestada, por nombrar algunos.

Mejor conocido como ChatOps, intentan llevar los flujos que ya se usan para administrar la aplicación y su infraestructura hacia el mismo canal primario de comunicación y colaboración que ya existe entre desarrolladores, gente de operaciones, del negocio y automation, el chat. Es ahí donde frecuentemente nuevas aplicaciones pasan de una idea al MVP en semanas en lugar de meses debido a la habilidad que se tiene de rápidamente construir y desplegar aplicaciones durante todo su ciclo de vida. Un ChatOps además, ayuda a disminuir la curva de aprendizaje para nuevos miembros en el equipo y se reduce la necesidad de revisar documentación pues conocen los flujos de trabajo de primera mano. Hay que tomar en cuenta que ya existe un amplio mercado de integraciones entre aplicaciones que permiten a los equipos en ChatOps y usuarios de mensajería tener a la mano herramientas útiles con un mínimo esfuerzo. No obstante, cuando se requiere un nivel de integración más avanzado, más completo, con cierta personalización o con mayor flexibilidad es cuando se requiere un chatbot.

Otras compañías de venta al por menor también experimentan con bots integrados a sus sistema de comercio en línea. Incluso existen tiendas de bots en linea como bots.kore.com que ofrecen algunos ya creados y la posibilidad de crear nuevos bots con un mínimo o nulo (chatfuel.com) conocimiento de programación y con la posibilidad de aprovechar la infraestructura que ya tienen en la nube.

Al final, la tendencia es que los bots se integren más en las apps de uso diario con el fin de tener el control de ejecución y planeación de decenas de tareas desde un mismo punto de acceso. Para ello existen plataformas preparadas y en continuo proceso de mejora para facilitar el desarrollo de bots que integren otros servicios: Facebook Messenger, Kik, Slack, Hipchat, Skype, Telegram, por mencionar algunos. Los dos primeros son unas de las plataformas que ya tienen inclusive integrada un repositorio de bots para empezar a interactuar sin necesidad de programar nada.

No obstante muchos de los bots responden a una sintaxis específica para ejecutar comandos, al estilo línea de comando, usando banderas y variables que de indicarse en el orden incorrecto o por olvidar escribir una letra, causan error o ninguna respuesta. El reto inmediato es dotar al bot de la inteligencia necesaria para responder a malos comandos con sugerencias que ayuden al usuario a usarlo de forma correcta en un modo conversacional. Un desafío a futuro es lograr que esa conversación entre bot y usuario se dé sin la necesidad de ejecutar comandos con una sintaxis rígida, sino a través de conversaciones como entre humanos se da. Otro desafío está en la seguridad, considerando los múltiples usuarios interactuando con el bot, las diferentes integraciones y accesos a servicios/datos sensibles junto con la capacidad del bot para aprender y ejecutar soluciones sin interacción humana. Evitemos casos como el del bot Tay creado por Microsoft que se hizo famoso porque en poco aprendió a enviar mensajes racistas por Twitter.

Por último, les comparto algunos enlaces para que puedan aprender más sobre varias de las plataformas mencionadas.

Bio

Oswaldo Herrera (@wdonet) es Ingeniero de Software en Nearsoft. Ha trabajado con tecnologías Java por más de 10 años, y es apasionado de las buenas prácticas en el desarrollo de tecnología, la automatización de procesos e integración de servicios para facilitar el trabajo de otros. Frecuentemente encontrarás a Oswaldo como mentor en eventos de aprendizaje para desarrolladores.