Blog de Amazon Web Services (AWS)
Agregue chat basado en WhatsApp a su centro de contacto
Por Victor J. Palomo, Solutions Architect
Las conversaciones digitales o chat han cambiado la forma en que interactuamos en diversos ámbitos: de conversaciones personales a temas laborales, el chat se ha posicionado entre los canales de preferencia para interactuar. Amazon Connect permite incorporar este medio a la operación de centros de contacto.
Visión general de la solución
Este post describe un proyecto ejemplo que permite integrar whatsapp como canal adicional de chat para intercambio de mensajes en Amazon Connect. Los mensajes de chat reciben el mismo tratamiento que las llamadas telefónicas acorde a las reglas de negocio, lo cual permite integrar una experiencia unificada omnicanal. La integración hacia el API de WhatsApp se realiza a través del bróker de mensajes Twilio.
Procedimiento
La solución se basa en un template de AWS CloudFormation que construye una Aplicación AWS 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 utilizando un secreto de AWS Secrets Manager.
- Configuración de sandbox de Twilio.
Link to GitHub repo: Amazon Connect Twitter Integration
Prerrequisitos
Para este procedimiento se requerirá:
- Una cuenta de AWS .
- Una cuenta de Twilio.
- Credenciales de administrador para la cuenta.
- 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-whatsapp-chat
- Cambie su directorio de trabajo a la carpeta clonada.
cd amazon-connect-whatsapp-chat
- 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-whatsapp.
- 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.
- Seleccione Applications en el menu de la izquierda y presione en el nombre de la aplicación que desplegó, connect- whatsapp. Se listarán los recursos asociados a esta solución. Desde aquí puede navegar a cada uno de los recursos.
Configuración Amazon Connect
Creación de la cola para chat.
- 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.
3. Asigne el nombre Chat y elija para Hours of operation la opción Basic Hours.
- Presione el botón Add new Queue para guardar los cambios.
- Presione en el nombre de la cola Chat para abrir los detalles asociados. Presione en la opción Show additonal queue information para expandir y visualizar el ARN de la cola. Tome nota del ARN, en particular los caracteres subsecuentes a queue/ (queue ID):
arn:aws:connect:us-east-1:NNNNNNNNNN:instance/III-III-IIII-IIII-IIII-IIII/queue/QQQQQQQQ-QQQQ-QQQQ-QQQQ-QQQQQQQQQQQQ
6. Navegue a la sección Users-> Routing Profiles.
7. Seleccione Basic Routing Profile para abrir los detalles de ese perfil.
8. En la sección Queues presione el botón Add Queue, agregue la cola Chat que creo previamente al perfil, deseleccione el canal Voice y agregue el canal Chat. Ingrese en Priority 1 y Delay
Creación del contact flow.
En esta sección se genera un Contact Flow nuevo, con el objetivo de separar las interacciones de chat, sin embargo, es posible reutilizar Contact Flows utilizados para llamadas de voz.
- Navegue al menú Routing >Contact flows y presione el botón Create contact flow para abrir el Contact Flow Designer.
10. Defina como nombre Chat.
11. 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.
12. Seleccione el bloque Set Working queue para configurar los detalles. Escoja en la sección Outputs: By Queue y en Select a Queue: elija Chat. Guarde los cambios en esa configuración.
13. Interconecte los bloques como se ilustra a continuación.
14. Guarde y publique utilizando los botones Save y Publish.
15. Desde el panel izquierdo, expanda los detalles de configuración haciendo click en el link Show additional flow information.
16. Tome nota del ARN, en particular los caracteres subsecuentes a instance/ (ID de la instancia) y contact-flow/ (ID de contact flow):
arn:aws:connect:us-east-1:NNNNNNNNNN:instance/III-III-IIII-IIII-IIII-IIII/contact-flow/CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCC
Configuración webhook Twilio.
Twilio será utilizado como bróker de mensajes entre la aplicación desplegada y WhatsApp. Para esta configuración será necesario obtener el Account SID y Auth Token y configurar el webhook de la consola de Twilio.
- Navegue a la consola AWS Lambda y seleccione Applications del panel izquierdo. Seleccione la aplicación que fue desplegada como parte de los primeros pasos, connect-whatsapp.
- Copie el URL del API Endpoint (ubicado alrededor de la mitad de la pantalla).
3. Desde la consola de Twilio, navegue a la sección Account Info en la pantalla principal.
4. Tome nota de los campos Account SID y Auth Token.
17. Navegue a la sección Develop ->Messaging -> Settings -> WhatsApp sandbox settings. Ingrese en la sección Sandbox Configuration el Endpoint URL obtenido en el paso 1 de esta sección, agregando los sufijos /twilio y /twilio/callback según se indica:
WHEN A MESSAGE COMES IN: <EndpointURL>/twilio
STATUS CALLBACK URL: <EndpointURL>/twilio/callback
18. Tome nota del número telefónico y de la frase clave utilizada para tener acceso al sandbox en la sección Sandbox Participants. Esta palabra será utilizada para conectar su teléfono móvil con el ambiente de prueba de Twilio.
Configuración en Secrets Manager
1. Navegue a la consola AWS Secrets Manager.
2. En el listado Secrets seleccione ConnectTwitterConfig.
3. Dentro de la configuración del secreto presione el botón Retrieve secret value de la sección Secret Value.
4. Complete los siguientes parámetros:
- CONNECT_INSTANCE_ID: ID de la instancia de Amazon Connect.
- CONNECT_QUEUE_ID: ID de la cola Chat.
- CONTACT_FLOW_ID: ID del contactflow Chat.
- TWILIO_SID: Account SID de la cuenta Twilio.
- TWILIO_AUTH_TOKEN: Auth token de la cuenta Twilio.
- TWILIO_FROM_NUMBER: Número telefónico asociado a mensajería en Twilio, anteponiendo el prefijo «whatsapp:+«. Por ejemplo: whatsapp:+555-0100
Envío de mensajes
Para iniciar el intercambio de mensajes vía WhatsApp, bastará con enviar un mensaje desde un dispositivo móvil vía la aplicación móvil al número telefónico de Twilio con la frase de acceso al sandbox.
Tras recibir confirmación del acceso al sandbox, los mensajes subsecuentes generarán una conversación en Amazon Connect y será entregada a un agente con el perfil asignado.
Limpieza
Para eliminar la aplicación siga los siguientes pasos:
- Navegue a la consola CloudFormation. Seleccione las líneas horizontales en el panel izquierdo para expandirlo y seleccione Stacks.
2. Seleccione el stack asociado a la aplicación desplegada y presione el botón Delete, presione Delete stack para confirmar.
Conclusión
Esta publicación ilustra cómo agregar Whatsapp como un canal digital a Amazon Connect, ofreciendo un mecanismo para adaptarse a las preferencias de comunicación de sus usuarios a través de experiencias consistentes.
Acerda del autor
Victor Palomo es Arquitecto de Soluciones en Amazon Web Services con amplia experiencia en Contact Centers.
Acerca de los revisores
Lesly Reyes es Arquitecta de Soluciones en Amazon Web Services para la vertical de Telecomunicaciones.
Luis Arbesu es Arquitecto de Soluciones en Amazon Web Services para la vertical de Telecomunicaciones.