AWS Contact Center

Web application for managing Amazon Connect contact center custom prompts

Introduction

Amazon Connect contact center allows you to create dynamic voice prompt playback using Amazon Simple Storage Service (S3). All the custom prompts are stored as audio files on Amazon S3. As the number of files increase, it becomes challenging to manage these files and audit changes. Business users would need access to AWS Management Console and Amazon S3 to manage the prompts, which introduce an extra layer of friction.

In this blog, you will learn how to deploy a web-based application that lets your users manage and view audit history for the custom voice prompts for Amazon Connect.

OverviewArchitecture diagram showing AWS services (AWS Amplify, Amazon CloudFront, Amazon S3, Amazon API Getaway, AWS Lambda, Amazon Cognito, Amazon Dynamo DB) used in the solution.

Fig 1–High level architecture diagram

In the preceding architecture, you deploy a web application to Amazon S3 and make it publicly accessible using Amazon CloudFront. Amazon Cognito manages users’ authentication and authorization for logging into the web application. You add additional users in the Amazon Cognito user pool to access this web application. The web application uses AWS Amplify libraries for interacting with other AWS services like authentication using Amazon Cognito. The solution implements REST APIs using Amazon API Gateway to orchestrate API calls to AWS Lambda and Amazon S3 APIs. These REST APIs allow the web application to upload, download, and delete voice prompts. Calls to these REST APIs are tracked in Amazon DynamoDB and reported in the audit section of the web application.

Pre-requisites

To follow along with the solution presented in this blog post, you must understand the following AWS services and features:

Walkthrough

  1. Sign in to the AWS Management Console.
  2. Use the following Launch Stack button to deploy this solution in your preferred Region
  3. Enter the parameters in the CloudFormation template and acknowledge the access capabilities.CloudFormation template screenshot showing parameter.
    1. AdminUserEmail: Admin email that a temporary password will be sent for the first login.
    2. S3PromptBucket: Globally unique name for your S3 bucket where you will upload the audio prompts.
      Note: To use your existing audio prompt bucket, post deployment of the stack, follow below steps

      1. Update the Lambda BucketName environment variable for all the Lambdas deployed with intended S3 bucket name.
      2. Under the CloudFormation stack Resources, for Logical ID LambdaRole and Physical ID ending in <StackName>-<random number>-lambda-role, update the policy to point to the intended S3 bucket
  4. Select all the “I acknowledge …” statements check box at the last step, and then select “Create stack.”
  5. Once the deployment is complete, download the UI code from this location and unzip in your local machine.
  6. Upload the content from the unzipped files connect-s3-frontend/build/ to the newly created S3 bucket <StackName>-<random number>-s3prompts-webui.

Security Disclaimer

Please note that this solution is meant to serve as an example for how you can get started building a solution. We recommend performing additional code review, functional testing, and IT validation before releasing this solution in a production environment. Always make sure to thoroughly test your solution and follow AWS Security Best Practices.

Validation

  1. Once all the steps in the walkthrough section are complete, open the Amazon CloudFront distribution under the AWS CloudFormation template “Outputs” tab.screenshot of the web tool access URL
  2. Enter the username and the temporary password that you received in the email. This will open the S3 prompt manager tool landing page.S3 prompt management tool screenshot

Note: You can manage users (e.g., add additional users, reset credentials) to access this S3 prompt manager tool in the Amazon Cognito user pool.

S3 prompt manager tool operations

Depending on your requirements, you can create logical folder structures (e.g., language specific) in your audio prompt source S3 bucket as you are uploading new files by adding the folder name.

This web application allows you to upload, delete, download, and view audit logs for your audio files.

  • Use “Download Prompt, Delete, upload a prompt” button on the tool to manage your audio files.S3 prompt management tool screenshot
  • You can navigate the S3 folder structure by selecting the radio button besides the folder and select “Open folder.” Navigate to previous folder by selecting “Back.”S3 prompt management tool screenshot
  • “Audit Log” section tracks file timestamps for upload and delete operations as well as the user who performed the action. You can search audit logs by prompt name, operations, or user.S3 prompt management tool screenshot showing audit logs i.e. the actions performed.

Clean up

To remove the resources created by the stack, perform the following:

  1. Delete the CloudFormation template.
  2. Delete the objects and the S3 buckets created from the CloudFormation template.

Conclusion

In this blog, you learned how users interact with a web application to manage the Amazon Connect voice recordings in Amazon S3 and view its audit history without logging into an AWS account. You also learned how a web application is deployed in the Amazon S3, made public using Amazon CloudFront and protected by Amazon Cognito for managing your users’ authentication and authorization. To learn more Amazon Connect dynamic voice prompt playback from Amazon S3, view this blog.

Author Bio

David Kocen (he/they) is a Builder Solutions Architect at Amazon Web Services (AWS) based in Seattle, Washington. He helps accelerate customer’s cloud journey through the creation of open-source starter projects and sample code.
Ritesh Choudhary is a Specialist Solutions Architect at AWS. Ritesh works with our customers to deliver exceptional customer service to their clients using Amazon Connect.
Ankur Taunk is a Senior Specialist Solutions Architect at AWS. He helps customer achieve desired Contact Center business outcomes with Amazon Connect.

Join us for AWS Contact Center Day, a free virtual event where you’ll learn about the future of customer service, how machine learning can optimize customer and agent experiences—and more. Register now »