AWS Contact Center

Drive insights of customer’s self-service IVR journey with Amazon Connect and personalized dashboards

Customers typically want access to their contact center data to drive better decisions. Amazon Connect flows are a great place to capture metrics and drive outcomes. These flows define how customers experience your contact center from start to finish. At the most basic level, flows enable you to customize your IVR (interactive voice response) system. Flows can be designed to provide self-service and interaction routing for complex use cases with great customer experience.

In this blog post, we look at how Amazon Connect helps customers in visualizing the end-to-end user journey of callers within the system so that they can design flows that would facilitate a more streamlined customer experience. This customer journey information can be used for analysis and optimization, improving overall customer experience.

Common IVR flow scenarios deployed with Amazon Connect include voice calls deflected to chat, offering call backs based on wait time, self-service applications, and contact handled by agent.

This solution will report on these types of customer journeys:

  1. How many customers have deflected to chat?
  2. How many customers have been served by IVR then routed to agents?
  3. How many customers have encountered issue with IVR, deflected to DTMF flow and then routed to agents?
  4. How many customers have opted for callback?

Overview of solution

In the above architecture, the customer makes a phone call or Initiates chat which invokes an Amazon Connect Flow. This flow in turn invokes an Amazon Lex through “Get Customer Input” block in flows to get the customer Intent:

  • (Step1): Voice/chat bot (Amazon Lex) collects the reason (intent) for the customer call.
    • In flow, we use “Set Contact Attributes” to track intent as the customer journey.
    • Save intent as User defined variable.
  • (Step 2): Once the intent is recognized, either contact will be queued to route to agent or Lambda will be triggered to send SMS.
  • (Step 3): In the Amazon Connect Flow invoke the AWS Lambda
    • tip: Set these Contact Attributes prior to invoking the trigger AWS Lambda function
      • key: flowType, value: AgentQueue or SMS-Deflect or Non-Lex.
      • key: Intent, value: stored user defined attribute values. Example: $.Attributes.firstIntent -> $.Attributes.secondIntent
    • (Step 4) : AWS Lambda parse the parameters received from flow and use AWS Dynamo DB api’s to store the journey in AWS Dynamo DB.

Prerequisites

To create a report that focuses on above metrics, you need the following pre-requisites:

  1. An AWS account
  2. An existing Amazon Connectinstance
  3. Access to following AWS services:
    • AWS IAM with access to create policies and roles
    • Amazon CloudFront with access to create a distribution
    • Amazon S3 with access to create buckets
    • AWS CloudFormation to run the stack
    • AWS Lambda with access to create functions
    • Amazon Lex to create bot features from this solution
    • Amazon Pinpoint to send SMS
    • Amazon API Gateway access with REST API endpoint enabled
  4. AWS IAM access and secret key credentials

Walkthrough

In this section, we will guide you through the steps required to deploy this blog into your AWS account, and how to perform testing on your Amazon Connect instance.

The high-level steps are as follows:

  1. Setup SMS project in Amazon Pinpoint service
  2. Set up Amazon Lex bot
  3. Add Amazon Lex bot to Amazon Connect instance
  4. Set up AWS DynamoDB table
  5. Set up required AWS Lambda functions
  6. Add AWS Lambda functions to your Amazon Connect instance
  7. Set up Amazon Connect Flows
  8. Setup Amazon Connect customer journey map source in Amazon S3
  9. Setup Amazon API Gateway
  10. Setup Amazon CloudFront to access the customer journey map dashboard page
  11. Visualize the customer journey

Step 1: Deploy the AWS CloudFormation stack

  1. Log in to the AWS Management Console.
  2. Download the Cloud formation template by clicking on Launch Stack below to create a stack in the any AWS region where Amazon connect service available.
  3. In the parameters section,
    • Enter a stack name
    • Enter Amazon connect instance ARN

4. Check the box for “I acknowledge that AWS CloudFormation might create IAM resources.”

5. Check the AWS region where you are going to install this stack and make sure, change the region accordingly.

6. Choose Create Stack.

7. The AWS CloudFormation template may take 15-30 minutes to create all the resources. Once done, it will show the status as CREATE_COMPLETE.

Step 2: Setup Amazon S3 association to Amazon CloudFront to access Webpage via CloudFront URL

  1. Go to S3 console.
  2. Navigate to Buckets and select the bucket for example connect-customer-ivr-journey-map-website9008 which we have created from the stack.
  3. Under Objects tab, select all the folders inside the bucket.

4. Click on Actions drop down and click Make public using ACL to access bucket contents through Amazon CloudFront URL.

Step 3: Associate AWS Lex & AWS Lambda functions to Amazon connect flows

  1. Sign into your Amazon Connect instance and navigate to the Amazon Connect admin console.
  2. From the navigation bar on the left-hand side, choose Routing, Flows.
  3. Search for Connect customer journey map flow and click to open it.
  4. Edit the AWS Lambda association to the AWS Lambda functions which we have assigned to this instance. Same should be done for Amazon Lex bot as well.
  5. Save and publish this flow.

Step 4: Associate a phone number to the Amazon connect flow

After publishing the flow, you will need to associate a phone number. To associate a phone number:

  1. Log in to your Amazon Connect admin console.
  2. Navigate to the Phone numbers page by clicking on Phone numbers under the Routing section.
  3. Associate a phone number with the Connect customer journey map flow and click on Save.

Step 5: Launching the deployed Customer Journey Map Dashboard webpage

  1. Go to your AWS CloudFormation stack which you have created earlier, choose Outputs.
  2. Click on the Value for CloudfrontEndpoint, which is a URL to your customer journey map dashboard webpage.
  3. The Outputs should look something like the following:

Step 6: Perform testing – Dial DID phone number associated to the Amazon Connect flow

  1. For SMS Deflect flow:
    • After welcome greeting, say “Mobile” for mobile enquiries.
    • Then in the next menu, say “Billing” for billing enquiries.
    • This will take us to the SMS deflect flow.
  2. For Agent Queue flow:
    • After welcome greeting, say “Broadband” for broadband related queries.
    • This will take us to Agent queue flow.
  3. For DTMF flow:
    • After greeting, say “TV packages” or do not say anything. Here, the Amazon Lex voice bot should not recognize any intent and will shift to DTMF flow.
    • Pause for few seconds, you will then hear the DTMF flow being activated.
    • Press 1 for television packages and this will take us through the DTMF flow.

Cleaning up

To avoid incurring future charges, delete the resources created for this blog.

  1. Open the AWS CloudFormation console
    • Locate the stack (e.g., connect_customer_ivr_journey) you created in step 3
    • Select the radio option next to it
    • Select Delete
    • Select Delete stack to confirm

Conclusion

In this blog post, we walked through how to create and track customer journey in IVR from Amazon Connect and launched a sample stack to try out. You can now build similar journey in any Amazon Connect flow by following this blog.

Author bio

Venkatesh Allamkam is a Senior Specialist Solutions Architect at AWS. Venkatesh is passionate about diving deep with customers to architect creative solutions that support business innovation in the contact center space leveraging Amazon Connect.
Lili Chan is a Senior Specialist Solutions Architect at AWS. She helps customer achieve their desired business outcomes in the Contact Center space leveraging Amazon Connect.