AWS Public Sector Blog

Leveraging Amazon Connect to enhance community and beneficiary services

Traditionally, when a nonprofit sets up a call center, they need to set up an expensive contact center system and employ multiple agents. Even with all this effort, they still might not be able to meet high volume demands, leading to long wait times and a poor beneficiary or community experience. With Amazon Connect, nonprofits such as the LA LGBT center have been able to build a robust, scalable omnichannel cloud contact center to provide reliable, secure, and cost-effective services to their community, all without needing to provision any underlying infrastructure. In this blog, I explain to you how to leverage AWS CloudFormation templates to quickly and simply set up Amazon Connect.

I use an example of an animal shelter rescuing animals after a hurricane. There is an influx of animals within your shelter and people are calling in to locate their lost pet or to check if the animals they see online are available for adoption. You want to make sure that the callers experience low call wait times to get the animals back home or placed with adopters as quickly as possible.

In addition to using Amazon Connect for this walkthrough, I also use Amazon Lex, Amazon DynamoDB, and AWS Lambda. Amazon Lex is a service for building conversational interfaces into any application using voice and text. Amazon DynamoDB is a key-value and document database that delivers single-digit millisecond performance at any scale that you’ll use for the sample database to house available animal records for adoption. And AWS Lambda is a serverless compute service that is connected between our Amazon Lex bot and Amazon DynamoDB table where the available animal data is stored. See Figure 1 for the architecture diagram of what you are building.

Figure 1: Architecture diagram

Figure 1: Architecture diagram


For this walk through, you should have the following prerequisites:

Step-by-step walkthrough

In the walk through, I’ll show you how to set up a call center for the animal shelter starting off with creating a simple contact flow.

Select the Launch Stack button for the creation of the AWS CloudFormation template.

Launch Stack button

This CloudFormation template creates an Amazon Lex bot for building the conversational chatbot, it creates a sample database in Amazon DynamoDB that populates the animals that are available for adoption, and the AWS Lambda function that fulfills the Amazon Lex bot intents and searches the Amazon DynamoDB table for matching animals. Keep everything as default and select Create Stack.

Now, try launching a call center with Amazon Connect. Enter Amazon Connect in the search bar within the Console and it leads you to the service. The first thing you do is to select Amazon Connect Instance Alias to add in our Amazon Lex Chatbot. See Figure 2. The instance is named call-center-modernization.

Figure 2 Amazon Connect instance alias

Figure 2 Amazon Connect instance alias

Then select Contact flows on the left-hand side. Scroll to the Amazon Lex portion and in the correct region of US-East-1: N. Virginia, select the bot you just created via the CloudFormation template and select + Add Lex Bot. See Figure 3.

Figure 3: Add Lex Bot to our Contact Flows

Figure 3: Add Lex Bot to our Contact Flows

Now go back to the Amazon Connect service and select the link underneath Access URL which leads you into editing your contact center. See Figure 4.

Figure 4: Access URL

Figure 4: Access URL

Go to the left side and select Contact flows.

Figure 5: Select Contact Flows

Figure 5: Select Contact Flows

A contact flow defines the customer experience with your contact center from start to finish. In other words, a contact flow determines exactly what happens once your customer or constituents dial in the phone number.

Once you’ve selected Contact flows, you see numerous samples of contact flows that Amazon Connect has already created for you. Feel free to browse through these samples and see how the contact flows are built. In our example, you create your own contact flow. Select the upper right blue box that says Create contact flow.

After you select Create contact flow, give a name to your contact flow. Underneath Interact on the left side, select Play prompt – it is the first option underneath the Interact option. This introduces the caller to the contact flow. Drag and drop the Play prompt box next to the entry point and connect the arrow to the two boxes. There is no coding required for Amazon Connect; it is a drag-and-drop and connecting the arrows. See Figure 6.

Figure 6: Drag-and-drop your first Play Prompt

Figure 6: Drag-and-drop your first Play Prompt

Double-click onto the Play prompt box, select Text-to-speech or chat text and enter in a greeting of your choice. Select save.

Figure 7: "Play prompt" text edit

Figure 7: “Play prompt” text edit

Now underneath the Interact option and specifically, Get customer input:

  • Drag-and-drop this box next to our Play prompt box
  • Connect the arrows between the two.

The Get customer input option delivers an audio or chat message to solicit customer input. See Figure 8.

Figure 8: Get customer input

Figure 8: Get customer input

Double-click onto the Get customer input box and the side screen pops up for editing. Choose the Amazon Lex that you added to your contact flow in the beginning. The chatbot is called animal_shelter. See Figure 9.

Figure 9: Adding Amazon Lex bot to our contact flow

Figure 9: Adding Amazon Lex bot to our contact flow

Now that you’ve connected all three arrows within the Amazon Connect Contact Flow, select Save. See Figure 10.

Figure 10: Current Contact Flow

Figure 10: Current contact flow

There are two outputs as shown in the last “Get customer input” box:

  • With Default, you simply end route the contact flow to another Play prompt to thank the users for contacting the animal shelter.
  • Or Error, then route the flow’s traffic back to the first Play prompt.

You want to end the call once the user has received all the information they need. From the left side of the contact flow:

  • Expand Terminate / Transfer.
  • Select and drag-and-drop the Disconnect box and connect the last thank you Play prompt to it.

The final contact flow looks something like Figure 11. From the top right navigation, make sure to select Save and Publish so that your workflow is active and available.

Figure 11: Final Contact Flow

Figure 11: Final contact flow

Then claim a phone number and assign it to this contact flow to test the contact flow. On the very left side of your screen, hover over the fourth icon under Routing is Phone numbers. This allows you to assign a phone number to the contact flow. See Figure 12.

Figure 12: Phone numbers

Figure 12: Phone numbers

For this purpose, you chose a direct inward dialing number (DID) and assign it to the Animal Shelter contact flow.

Give it a couple of minutes and then you should be able to dial the number and walk through the contact flow as an end user. Here’s a recording of myself calling into my claimed DID number so you can see what the final contact flow sounds like.

Feel free to manually add new animals ready for adoption in the items section of the Amazon DynamoDB table to test populating new data into the database. You can also go into the Amazon Lex console and test out the animal_shelter bot via the chatbot, too.

Clean up

To prevent charges to your AWS account, delete the AWS CloudFormation template, delete this contact flow, and release the claimed DID phone number.

Price consideration

All of the services used in this blog utilize the pay-as-you-go pricing model, only paying for what you use.

For current pricing details and some sample pricing scenarios of each service, see Amazon Connect pricing, Amazon DynamoDB pricing, AWS Lambda pricing, and Amazon Lex pricing.

What’s next

In this blog, I showed you how to launch an AWS CloudFormation template that built out an Amazon DynamoDB table with adoptable animals, an Amazon Lex Bot that handles the conversational inputs of the end user, an AWS Lambda function that fulfills the Amazon Lex bot to look up the specific animals within the Amazon DynamoDB table, and an Amazon Connect contact flow to put all of these moving pieces together.

While your organization’s focus may not be adoptable animals, Amazon Connect can help you spend less time and money on legacy call center approaches, while providing the community you serve a seamless contact support system.

For more information on Amazon Connect, read our Getting Started with Amazon Connect and take a look at some Sample contact flows.