Blog de Amazon Web Services (AWS)
Agregue correo electrónico a su centro de contacto usando Amazon Connect Tasks
Por Victor J. Palomo, Arquitecto de Soluciones de AWS
El correo electrónico mantiene su prevalencia entre los principales canales de comunicación de organizaciones con clientes, por lo que no es posible hablar de omnicanalidad sin integrarlo como un medio de contacto. Integrarlo como un canal de comunicación efectivo, requiere poder aplicar las mismas reglas de negocio que las utilizadas por llamadas u otros medios digitales. Amazon Connect Tasks es una funcionalidad de Amazon Connect que permite gestionar tareas asignables a agentes aprovechando los mismos flujos de atención utilizados por otros canales de comunicación al tiempo que se presentan en una vista unificada a los agentes.
Visión general de la solución
En este post se describe una solución ejemplo para integrar correos electrónicos recibidos vía Amazon Simple Email Service como un canal adicional al centro de contactos, aprovechando Amazon Connect Tasks para transformarlos en tareas asignables a agentes. Las tareas reciben el mismo tratamiento que otros medios de contacto en Amazon Connect, por lo que reciben las mismas reglas de negocio definidas por la organización.
Procedimiento
La solución se basa en un template de CloudFormation que construye una Aplicación Lambda para agrupar los recursos necesarios. AWS Serverless Aplication Model se utiliza para construir los artefactos requeridos para la implementación. Los pasos de implementación consisten en:
- Despliegue de la solución.
- Creación de contact flows en Amazon Connect.
- Configuración de parámetros de Amazon Connect en funciones Lambda.
- Configuración de reglas de entrada de correo electrónico.
Link to GitHub repo:
Amazon Connect Twitter Integration
Prerequisitos
Para este procedimiento se requerirá:
- Una cuenta de AWS
- Credenciales de administrador para la cuenta.
- Dominio verificado en Amazon SES, como se explica [aquí]( https://docs.thinkwithwp.com/es_es/ses/latest/DeveloperGuide/receiving-email-getting-started.html).
- AWS CLI y AWS SAM CLI instalados y configurados con las credenciales de administrador. Los siguientes tutoriales son de utilidad para configurarlos:
- Una instancia de Amazon Connect configurada y con agentes creados.
Despliegue de la solución.
- Desde la terminal de comandos en un equipo con AWS CLI y AWS SAM instalados y configurados, clone el repositorio de la solución:
git clone https://github.com/aws-samples/amazon-connect-email-tasks
- Cambie su directorio de trabajo a la carpeta clonada.
cd amazon-connect-email-tasks
- Genere los artefactos requeridos para el despliegue usando AWS SAM:
sam build -u
- Despliegue la solución usando AWS SAM:
sam deploy -g
- AWS SAM realizará las siguientes preguntas para el despliegue:
- Stack Name: Especifique un nombre para esta aplicación: connect-email-tasks.
- AWS Region: Especifique la region donde la instancia de Amazon Connect se encuentra.
- Confirm changes before deploy: N
- Allow SAM CLI IAM role creation: Y
- Save arguments to configuration file: Y
- SAM configuration file: Acepte el nombre por default presionando Enter.
- SAM configuration environment: Acepte el nombre por default presionando Enter.
- AWS SAM iniciará el despliegue de la aplicación y tomará algunos minutos para completar. Permita que finalice antes de continuar.
- Ingrese a la [consola AWS Lambda](https://console.thinkwithwp.com/lambda/).
- Seleccione Applications en el menu de la izquierda y presione en el nombre de la aplicación que desplegó, connect-email-tasks.
- Se listarán los recursos asociados a esta solución. Desde aquí puede navegar a cada uno de los recursos.
Configuración Amazon Connect
Adición función Lambda.
Para el procesamiento de tareas en Amazon Connect, es posible utilizar una cola y un contact flow de entrada específico a la categoría de las tareas.
- Desde la consola de Amazon Connect navegue a la sección Contact Flows -> AWS Lambda.
- En el recuadro Lambda Functions, seleccione la función Lambda cuyo nombre empieza con connect-email-tasks-connectEmailReply y presione el botón + Add Lambda Function.
Creación de la cola para redes.
- Navegue a la consola de administración de la instancia de Amazon Connect. El nombre viene listado como Acccess URL en la sección Overview de la instancia. Ingrese con las credenciales de administrador.
- Navegue al menú Routing >Queue y presione el botón Add New Queue.
- Asigne el nombre Mail y elija para Hours of operation la opción Basic Hours.
- Presione el botón Add new Queue para guardar los cambios.
Configuración contact flows y quick connects.
- Navegue al menú Routing >Contact flows y presione el botón Create contact flow para abrir el Contact Flow Designer.
- Defina como nombre MailTaskFlow.
- Agregue los bloques Set logging behaviour y Set working queue de la sección Set; y los bloques Transfer to queue y Disconnect de la sección Terminate/Transfer.
- Seleccione el bloque Set Working queue para configurar los detalles. Escoja en la sección Outputs: By Queue y en Select a Queue: elija Mail. Guarde los cambios en esa configuración.
- Interconecte los bloques como se ilustra a continuación.
- Guarde y publique utilizando los botones Save y Publish.
- Desde el panel izquierdo, expanda los detalles de configuración haciendo click en el link Show additional flow information.
- Tome nota del ARN, en particular los caracteres subsecuentes a instance/ (instance ID) y contact-flow/ (contact flow ID):
arn:aws:connect:us-east-1:NNNNNNNNNN:instance/III-III-IIII-IIII-IIII-IIII/contact-flow/CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCC
- Navegue nuevamente a la opción Routing->ContactFlows y ahora presione en el botón con un triángulo invertido a un costado del botón Create contact flow y seleccione la opción Create transfer to queue flow.
- Defina el nombre MailReply.
- Agregue los bloques Set logging behaviour (de la sección Set), Invoke AWS Lambda function (de la sección Integrate) y Disconnect (de la sección Terminate/Transfer).
- Interconecte los bloques de la siguiente forma
- Haga click en el bloque Invoke AWS Lambda function y seleccione la opción Select a function, ahí seleccione la función cuyo nombre inicia con connect-email-tasks-connectEmailReply y presione
- Guarde y publique el contact flow utilizando los botones Save y Publish.
- Navegue al menú Routing->Quick connects.
- Presione el botón Add new.
- Defina los siguientes parámetros:
- Name: ReplyToMail
- Type: Queue
- Destination: Mail
- Contact flow:MailReply
- Guarde los cambios.
- Navegue al menú Routing >Queue y haga click en el nombre del queue
- En la parte inferior, ingrese en la sección Quick Connects el nombre ReplyToMail y presione el botón Save.
- Navegue al menú Users->Routing profiles.
- Seleccione el perfil Basic Routing Profile (o el perfil asignado a los agentes) y confirme que en la sección Set channels and concurrency se encuentra habilitada la opción Tasks con al menos 1 de manera concurrente.
- En la sección Routing profile queues presione el botón Add queue y agregue Mail con la opción Task Guarde los cambios.
Configuración recepción de correo.
Ahora, utilizará Amazon SES para recepción y envío de correos electrónicos.
- Navegue a la consola Amazon SES.
- En el menú lateral izquierdo, seleccione Verified identities bajo Configuration. Presione el botón Create Identity.
- Seleccione Domain como Identity Type e ingrese el nombre del dominio a utilizar. Presione el botón Create Identity.
- En la parte inferior de la pantalla, aparecerán los registros DNS que deberá agregar a su servicio de DNS para validar la propiedad de este dominio.
- Agregue los registros MX necesario como se describe en la documentación de Amazon SES
- Una vez confirmada la propiedad, navegue al menú Email receiving dentro de Configuration en el panel izquierdo de la consola de Amazon SES.
- Presione el botón Create rule set. Ingrese por nombre default. Presione Create rule set. A través de rule set es posible definir una lista de acciones que pueden llevarse a cabo ante la recepción de mensajes en el dominio especificado.
- Se abrirán los detalles en una ventana nueva. Presione el botón Create rule.
- Ingrese como nombre AmazonConnectEmail y mantenga la selección Enabled. Presione Next.
- En la pantalla Add recipient conditions presione el botón Add new recipient condition e ingrese el correo al que estarían destinados los correos a integrar a Amazon Connect, tal como contacto@midominio.com. Presione Next.
- En la pantalla Add Actions, presione el botón Add new action y seleccione la opción Publish to Amazon SNS topic. Elija el tópico de SNS llamado connect-email-tasks-emailReceptionTopic-XXXXXX.
- Amazon Connect: instance ID y contact flow ID.
- Correo electrónico que será utilizado como remitente en el envio de correos (aprobado como entidad en Amazon SES).Mantenga la selección de Base64 y presione Next y luego Create Rule.
Configuración funciones
Es necesario proveer los parámetros para la configuración de la actividad:
Configuración funciones AWS Lambda.
- Navegue a la consola AWS Lambda.
- Seleccione Applications en el menú de la izquierda y seleccione la aplicación connect-email-tasks.
- Presione en el nombre connectEmailReply. Seleccione Configuration -> Environment variables.
- Presione el botón Edit para modificar el valor de la variable SOURCE_EMAIL. Ingrese un correo electrónico válido como entidad aprobada en el Amazon SES y presione Save.
- Seleccione en el menú al lado izquierdo Applications y navegue nuevamente a connect-email-tasks. Presione el nombre connectEmailTask.
- Seleccione Configuration -> Environment variables. Presione el botón Edit e ingrese los parámetros correspondientes para INSTANCE_ID y CONTACT_FLOW_ID. Guarde los cambios con el botón Save.
Recepción correos electrónicos.
Al enviar un correo electrónico al especificado como condición en la regla de recepción correos de Amazon SES, este se traducirá en una tarea dentro de Amazon Connect y será asignada a un agente disponible con el perfil de ruteo elegido. El agente podrá aceptar la tarea para recibir el correo electrónico en cuestión.
Respuesta a correos electrónicos.
Para responder a solicitudes bastará con que el agente con la tarea activa, presione el botón de creación de una nueva tarea y utilice el quick connect MailReply para responder. El campo Task name ayudará a identificar la respuesta mientras que el campo Description contendrá la respuesta enviada al usuario.
Limpieza
Para eliminar la aplicación siga los siguientes pasos:
- Navegue a la consola de Amazon SES. Seleccione dentro de la opción email receiving el rule set default y elimínelo.
- Elimine el Quick Connect de la configuración en Basic Queue, el quick connect MailReply y los contact flows MailTask y
- Elimine la función Lambda de la configuración de Amazon Connect.
- Navegue a la consola CloudFormation. Seleccione las líneas horizontales en el panel izquierdo para expandirlo y seleccione Stacks.
- Seleccione el stack asociado a la aplicación desplegada, presione el botón Delete y finalmente presione Delete stack para confirmar. Los recursos asociados se eliminarán.
Conclusión
Esta solución provee la base para crear tareas accionables a partir de correos electrónicos, agregando un pilar adicional a estrategias de omnicanalidad en los centros de contacto.
Sobre los autores
Víctor Palomo es Arquitecto de Soluciones en AWS en la vertical de telecomunicaciones.
Sobre los revisores
Armando Barrales es Arquitecto de Soluciones en AWS.
Leonardo Solano es Arquitecto de Soluciones para Partners en AWS.
Omner Barajas es Arquitecto de Soluciones Especialista en Seguridad en AWS México.