Automatizaciones en AWS con chatbot serverless

Recientemente, los chatbots han ganador mucha fuerza. Los asistentes conversacionales son sistemas informáticos que pueden interactuar con nuestros clientes o pueden automatizar tareas manuales mediante el uso de Inteligencia Artificial. Sin embargo, para su implementación a nivel corporativo, es importante hacerse algunas preguntas que nos revelarán si, verdaderamente, necesitamos un chatbot:

¿Qué tipo de chatbot necesitaré?

Aquí es donde deberíamos examinar el tipo de chatbots que tenemos:

· Informativo: Atienden solicitudes recurrentes de los clientes, por ejemplo, información sobre un estado de cuenta, estado del producto, la meteorología, las novedades…

· Aplicaciones: Pueden integrarse en aplicaciones móviles para mejorar la experiencia del usuario y facilitar la interacción con ella.

· Enterprise: Suelen estar integrados con plataformas corporativas como ERP o CRM.

· Contact Center: Sirven para interactuar con el usuario por voz, pueden ser por ejemplo para la resolución de problemas, para revisar una guía de envío o incluso realizar pagos con tarjeta de crédito.

¿Qué tipo de canales de comunicación tengo con mis clientes?

Aquí es importante saber dónde están los canales de comunicación que tengo actualmente con mi cliente, por ejemplo:

· Líneas directas gratuitas — 01800

· Líneas de servicio DID.

· A través de las redes sociales.

· WhatsApp.

· SMS.

Dependiendo del tipo de canal de comunicación con el cliente, debemos validar la viabilidad de su implementación y seleccionar la mejor tecnología para ello. Ahora te voy a contar el proceso de implementación de un chatbot que hicimos hace un tiempo para automatizar algunas tareas y ahorrar tiempo.

Escenario

Estaba con mi amigo Felipe Mejia en un proyecto muy grande para una aplicación que tenía un componente de datos fuerte y en tiempo real, dentro de este proyecto se utilizaban muchos servicios de AWS como Fargate, Kinesis, Glue, Athena, Quicksight entre muchos otros. Cuando el proyecto comenzó a crecer exponencialmente, los desafíos aumentaron y la complejidad también, ahí es donde nuestro enfoque estaba en encontrar formas de automatizar nuestro trabajo.

· Proyecto: Datos y Analítica.

· Procesamiento: 80.000.000 eventos por día en tiempo real.

· Costo mensual: USD 25,000

· Pasamos el 20% del tiempo probando nuevos servicios y ejecutando PoC, en muchos casos varios servicios estaban activos generando costos adicionales (Dev Endpoints de Glue).

Solución

Creamos un ChatBot con Amazon LEX llamado Perkins para controlar los servicios de AWS:

· Cree y elimine servicios de AWS.

· Notificación diaria sobre servicios activados.

· Automatización de tareas administrativas.

· Comunicación en lenguaje natural con el Bot.

Arquitectura del chatbot

A continuación describo la funcionalidad de los componentes:

· Validation Lambda: Se verifican las entradas recibidas de Slack, una vez que se valida el flujo pasa a la fase 2.

· Lambda de cumplimiento: realiza las acciones con las acciones que provienen de la lambda de validación. En este caso, es el encargado de ejecutar las acciones sobre los servicios de AWS.

· DynamoDB: Almacena toda la información sobre los servicios para interactuar y los inputs para validar la Validation Lambda.

Arquitectura de chatbot con Amazon Connect

· Amazon Connect: centro de contacto en AWS, podríamos crear un complex flow contact y redirigir a una lista de espera con agentes para que estos puedan atenderle.

· Amazon Polly: es el servicio que convierte texto en voz con diferentes voces e idiomas.

Seguridad en Chatbot Serverless

Dentro de la arquitectura implementada, la seguridad se manejó de la siguiente manera:

· Rol Lambda: Tiene los permisos específicos para interactuar con los servicios de AWS que vamos a automatizar.

· Slack: teníamos un canal privado al que solo puede acceder el personal autorizado que puede usar Perkins para tareas de automatización.

· Cifrado: teníamos la tabla Dynamo totalmente cifrada con KMS, así como las variables de entorno utilizadas en las funciones lambda.

Interacción entre Perkins y Slack

Esta es la forma de interactuar directamente con Perkins, nuestro chatbot serverless.

Recursos

· Repositorio de Github : https://github.com/czam01/chatbot-serverles-lex

· Documentación de Amazon Lex .

· Documentación de AWS Lambda .

· Documentación de Amazon Connect .

AWS x10, Tech Director en Globant con más de 7 años de experiencia en AWS.

AWS x10, Tech Director en Globant con más de 7 años de experiencia en AWS.