Blog de Amazon Web Services (AWS)

Transforme menciones en Twitter en tareas usando Amazon Connect Tasks

Por Victor J. Palomo, Arquitecto de Soluciones en AWS

 

Las redes sociales se han convertido en el principal mecanismo portavoz de consumidores por lo que las organizaciones que buscan mantener canales abiertos de comunicación y escucha necesitan adaptarse a estos métodos de interacción.

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.

En este post se describe un ejemplo de escucha social en Twitter, aprovechando Amazon Connect Tasks para transformar menciones en tareas accionables para agentes e identificando el sentimiento utilizando Amazon Comprehend. Este ejemplo puede ser expandido para incorporar casos de uso y mejores prácticas para adecuarse a políticas de cada organización.

 

Visión general de la solución

Este ejemplo provee un mecanismo de escucha en Twitter para generar acciones en Amazon Connect. Un script de Python ejecutado en una instancia Amazon Elastic Compute Cloud provee el mecanismo de interconexión al API de Twitter, en tanto que un data stream de Amazon Kinesis mapeado a una función AWS Lambda proveen el mecanismo para creación de tareas en Amazon Connect Tasks.

 

 

Procedimiento

Esta arquitectura 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 utilizando un secreto de AWS Secrets Manager.
  • Activación de escucha con el tópico especificado.

Link to GitHub repo:
Amazon Connect Twitter Integration

Prerequisitos

Para este procedimiento se requerirá:

  • Una cuenta de AWS.
  • Credenciales de administrador para la cuenta.
  • Aplicación creada en Twitter con credenciales de integración hacia el API, específicamente: Access Token, Access Token Secret, Consumer Key and Consumer Secret. Se pueden obtener siguiendo la documentación de Twitter.
  • KeyPair creado para instancias EC2.
  • AWS CLI y AWS SAM CLI instalados y configurados con las credenciales de administrador. SAM deberá tener instalada la opción para usar Docker. Los siguientes tutoriales son de utilidad para configurarlos:
  • Una instancia de Amazon Connect configurada y con agentes creados.

Despliegue de la solución.

  1. Navegue a la consola de EC2 -> Key Pairs en la región donde realice el despliegue.
  2. Presione el botón Create key Pair. Ingrese el nombre TwitterListenerKeyPair, mantenga los parámetros por default y presione el botón Create key pair. Guarde el archivo de forma segura, este será utilizado cuando necesite hacer ajustes a la instancia EC2 o diagnóstico de problemas.
  3. 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-twitter-listener

  1. Cambie su directorio de trabajo a la carpeta clonada.

cd amazon-connect-twitter-listener

  1. Genere los artefactos requeridos para el despliegue usando AWS SAM:

sam build -u

  1. Despliegue la solución usando AWS SAM:

sam deploy -g

  1. AWS SAM realizará las siguientes preguntas para el despliegue:
    • Stack Name: Especifique un nombre para esta aplicación: twitter-listener.
    • AWS Region: Especifique la region donde la instancia de Amazon Connect se encuentra.
    • Parameter InstanceType [t3.medium]: Acepte el valor por default. Este es el tipo de instancia a utilizar como escucha hacia Twitter.
    • Parameter LatestAmiId [/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2]: Acepte el valor por default. Este parámetro corresponde a la AMI utilizada.
    • Parameter KeyName []: Ingrese el nombre del key pair creado previamente: TwitterListenerKeyPair .
    • 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.
  2. AWS SAM iniciará el despliegue de la aplicación y tomará algunos minutos para completar. Permita que finalice antes de continuar.
  3. Ingrese a la consola AWS Lambda.
  4. Seleccione Applications en el menu de la izquierda y presione en el nombre de la aplicación que desplegó, twitter-listener

  5. Se listarán los recursos asociados a esta solución. Tome nota del secreto

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 para facilitar el monitoreo.

  1. Desde la consola de Amazon Connect navegue a la sección Contact Flows -> AWS Lambda. 

  2. En el recuadro Lambda Functions, seleccione la función Lambda cuyo nombre empieza con twitter-listener-TwitterReplier y presione el botón + Add Lambda Function.

Creación de la cola para redes sociales.

  1. 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.
  2. Navegue al menú Routing >Queue y presione el botón Add New Queue

  3. Asigne el nombre Social y elija para Hours of operation la opción Basic Hours. 

  4. Presione el botón Add new Queue para guardar los cambios.

Configuración contact flows y quick connects.

  1. Navegue al menú Routing >Contact flows y presione el botón Create contact flow para abrir el Contact Flow Designer

  2. Presione el triangulo a un costado del botón Save para expandir el menú. Seleccione la opción Import flow(beta)

  3. Seleccione el archivo TwitterTaskFlow de la carpeta sample-contactflows clonada previamente. También puede descargar el archivo directamente de aquí.
  4. Defina como nombre TwitterTaskFlow.
  5. Seleccione el bloque Set Working queue para configurar los detalles. Seleccione en la sección Outputs: By Queue y en Select a Queue: elija Social. Guarde los cambios en esa configuración.
  6. El flujo deberá lucir de la siguiente manera. 

  7. Guarde y publique utilizando los botones Save y Publish.
  8. Desde el panel izquiero, expanda los detalles de configuración haciendo click en el link Show additional flow information.
  9. 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

  1. Navegue nuevamente a la opción Routing->ContactFlows y ahore 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

  2. Presione el triangulo a un costado del botón Save para expandir el menú. Seleccione la opción Import flow(beta)

  3. Seleccione el archivo TwitterReply de la carpeta sample-contactflows clonada previamente.
  4. Defina el nombre TwitterReply.
  5. Haga click en el bloque Invoke AWS Lambda function y en la configuración seleccione la función Lambda twitter-listener-TwitterReplier. Guarde los cambios.
  6. El flujo deberá lucir de la siguiente manera: 

  7. Guarde y publique el contact flow.
  8. Navegue al menú Routing->Quick connects

  9. Presione el botón Add new.
  10. Defina los siguientes parámetros:
    • Name: ReplyToTweet
    • Type: Queue
    • Destination: Social
    • Contact flow:TwitterReply 

  11. Guarde los cambios.
  12. Navegue al menú Routing >Queue y haga click en el nombre del queue
  13. En la parte inferior, ingrese en la sección Quick Connects el nombre ReplyToTweet y presione el botón Save.
  14. Navegue al menú Users->Routing profiles

  15. 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.
  16. En la sección Routing profile queues presione el botón Add queue y agregue Social con la opción Task Guarde los cambios.

 

Configuración de parámetros

Es necesario proveer los parámetros para la configuración de la actividad:

  • Amazon Connect: instance ID y contact flow ID.
  • Twitter: Access Token, Access Token Secret, Consumer Key y Consumer Secret.
  • Tópico de interés.

Configuración del secreto en Secrets Manager.

  1. Navegue a la consola AWS Secrets Manager.
  2. En el listado de secretos 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.
    • CONTACT_FLOW_ID: ContactFlow ID del contact flow TwitterTaskFlow.
    • TWITTER_ACCESS_TOKEN: Access Token generado como parte de la aplicación en la cuenta de desarrollo de Twitter.
    • TWITTER_ACCESS_TOKEN_SECRET: Access Token Secret generado como parte de la aplicación en la cuenta de desarrollo de Twitter.
    • TWITTER_CONSUMER_KEY: Consumer Key generado como parte de la aplicación en la cuenta de desarrollo de Twitter.
    • TWITTER_CONSUMER_SECRET: Consumer Secret generado como parte de la aplicación en la cuenta de desarrollo de Twitter.
    • KINESIS_STREAM: Configurado al momento del despliegue de la solución. No deberá ser modificado.
    • TWITTER_TOPIC: Expresión de interés para filtrar los eventos de Twitter, tal cómo #AWSRules. Esta expresión será utilizada por el script en la instancia EC2 para escuchar publicaciones.

Activación script.

La instancia EC2 cuenta con un script definido como servicio para activarse al momento del arranque. Este script tomará la información configurada en Secrets Manager para conectar al API de Twitter e iniciar la escucha. Para activar el script, bastará con reiniciar la instancia EC2.

  1. Ingrese a la consola AWS Lambda.
  2. Seleccione Applications en el menu de la izquierda y presione en el nombre de la aplicación que desplegó, twitter-listener.
  3. Haga click en el link TwitterListener, una ventana nueva se abrirá listando la instancia. Seleccione la casilla al lado del nombre de la instancia y seleccione en el menú superior Instance State la opción Reboot instance.

Recepción publicaciones.

Las publicaciones con el tópico de interés serán enviadas a agentes firmados a Amazon Connect. Puede obtener información adicional de la publicación presionando el botón Show all task information. Se mostrarán detalles como el lenguaje predominante y el sentimiento.

Respuesta a publicaciones.

Para responder a publicaciones presione el botón de creación de una nueva tarea.

 

 

Con la ventana de creación de nueva tarea, complete los campos Task name y Description; este último campo será utilizado como la respuesta a la publicación. Seleccione en la opción Assign to: ReplyToTweet y Presione Create para enviar la respuesta.

 

 

Pausar escucha.

La instancia EC2 regula la ingesta de mensajes publicados. Para pausar la escucha, bastará con detener la instancia EC2.

  1. Ingrese a la consola AWS Lambda.
  2. Seleccione Applications en el menu de la izquierda y presione en el nombre de la aplicación que desplegó, twitter-listener.
  3. Haga click en el link TwitterListener, una ventana nueva se abrirá listando la instancia. Seleccione la casilla al lado del nombre de la instancia y seleccione en el menú superior Instance State la opción Stop instance.

 

Limpieza

Para eliminar la aplicación siga los siguientes pasos:

  1. Elimine el Quick Connect de la configuración en Basic Queue, el quick connect ReplyToTweet y los contact flows TwitterTaskFlow y
  2. Elimine la función Lambda de la configuración de Amazon Connect.
  3. 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 y presione el botón Delete, presione Delete stack para confirmar.

 

Conclusión

Este proyecto ejemplo provee la base para crear tareas accionables a partir de escucha en redes sociales como Twitter, extrayendo información acerca de la publicación e inyectándola como atributos que pueden ser aprovechados en contact flows de Amazon Connect para toma de decisiones. Puede expandir estas capacidades generando modelos utilizando Amazon Comprehend para identificar frases o categorías relevantes a su caso de uso.

 


Sobre el autor

Víctor Palomo es Arquitecto de Soluciones en Amazon Web Services con amplia experiencia en Contact Centers.

 

 

 

 

 

Sobre los revisores

Enrique Rodríguez es Arquitecto de Soluciones en AWS.

 

 

 

 

 

 

Fernando Fouillioux es Arquitecto de Soluciones especialista en Amazon Connect en AWS.

 

 

 

 

 

 

Omner Barajas es Arquitecto de Soluciones Especialista en Seguridad en AWS México.