AWS Contact Center

Event based outbound campaigns with Amazon Connect

Organizations use contact centers to answer inbound calls and initiate outbound communication to their customers. Use cases for outbound communications include appointment reminders, telemarketing, subscription renewals, billing reminders, and follow-up calls. Customer preferences determine the communication channel (voice, messaging, or email) used in outbound campaigns. Contact center managers often use different applications for each channel because of legacy platform limitations. This results in additional labor, cost, and complexity.

With Amazon Connect outbound campaigns, you can proactively communicate across voice, SMS, and email channels, while supporting compliance with local regulations. A predictive / progressive dialer and machine learning (ML)–powered answering machine detection optimizes agent productivity and increases live-party connections.

This blog post demonstrates how to set up outbound campaigns based on database events, and automate this configuration and invocation process end-to-end. A change in the database automatically updates the required segment, invokes the corresponding journey, and starts the Amazon Connect outbound campaign.

The solution is built for an airline use case. The airline tracks flight status. For canceled flights, the airline calls the impacted passengers to offer an alternative flight or refund.

Solution overview

The following architecture diagram depicts the solution:

Sequence of events:

  1. A change in FlightStatus column in the FlightStatusTable invokes the Lambda function.
  2. The Lambda function fetches customer data from the Passenger
  3. The Lambda function creates a CSV file from the passenger data in the format required by Amazon Pinpoint, and uploads this CSV file to S3 bucket.
  4. The Lambda function imports the CSV file from S3 bucket and creates a segment in Amazon Pinpoint.
  5. The Lambda function then creates a Amazon Pinpoint Journey that sends the segment endpoints to Amazon Connect.
  6. Amazon Connect invokes the campaign.
  7. The passengers in the segment receive outbound call and get connected to an agent on answering the call.

Security disclaimer

Note that this solution is an example for how you can get started with building a database event based outbound campaign solution. We recommend performing additional code review, functional testing, and IT validation before releasing this solution in a production environment. Test your solution and follow AWS security best practices.

Deployment walkthrough

Here’s a quick overview of all the steps to be followed in this solution:

  1. Configure Amazon Connect outbound campaigns in your Connect instance.
  2. Create an Amazon Pinpoint project.
  3. Deploy the CloudFormation template.
  4. Test the solution.

Prerequisites

For this walkthrough, you should have the following prerequisites:

  • An AWS account
  • An Amazon Connect instance.
  • Access to and basic understanding of the following AWS services:
  • Validate the Service Limits for Outbound Campaigns

Step-1 Configure outbound campaigns in your Amazon Connect instance

A. Enable Amazon Connect outbound campaign

  1. Sign in to the AWS Management Console and open the Amazon Connect console.
  2. From the Instance alias list, select the Amazon Connect instance for which you want to enable outbound campaigns.
  3. In the navigation pane, choose Telephony.
  4. In the Outbound calls section, select Enable outbound campaigns.
  5. Under Encryption settings, enter your AWS KMS key, or choose Create an AWS KMS key.
  6. Choose Save. This will take a few minutes to enable outbound campaigns.

B. Create a dedicated outbound campaign queue

This queue will be used to handle any contacts that will be routed to agents as a result of the campaign.

  1. Navigate to the Amazon Connect instance.
  2. On the left navigation menu, under Routing, choose Queues.
  3. Click Add queue.
  4. Add queue and Save.
  5. Add this queue to the Routing Profile of Amazon Connect agent dedicated to handle outbound campaign calls.

C. Create a Contact flow

  1. Download the contact flow to be used for outbound campaign.
  2. Navigate to the Amazon Connect instance.
  3. On the left navigation menu, choose Routing, then Contact flows.
  4. Click Create contact flow.
  5. From the dropdown next to Save (on the top right corner), select Import.
  6. Import the contact flow that you downloaded in the first step.
  7. Within this contact flow, select the Set Working Queue contact block.
  8. Set the queue as the outbound campaign queue that you created in Step 1.B, and choose Save.

  1. Save and Publish your contact flow.

 D. Create an outbound campaign

  1. Navigate to the Amazon Connect instance.
  2. On the left navigation menu, choose Outbound Campaigns.
  3. Choose Create campaign.

  1. Enter the campaign name in the Campaign details
  2. In the Outbound configuration section, select the contact flow you created for outbound campaigns.
  3. Select the queue to associate with this campaign.
  4. Select a phone number to be shown as caller ID when making outbound calls if you want a specific phone number. The default is the Outbound caller ID number associated with the queue.
  5. Answering machine detection is enabled by default.
  6. Select Progressive for the dialer type.
  7. Choose a bandwidth allocation. You can set it to 100%.
  8. Save your campaign.

  1. Make a note of campaign id from the URL.

Step-2 Create a Amazon Pinpoint project 

In this step, you will be creating a Amazon Pinpoint project.

  1. Navigate to AWS Management Console and go to Amazon Pinpoint.

  1. In the Get started section, enter a name for your project, and choose Create a project.
  2. On the Configure features page, choose Skip this step at the bottom right. Your Amazon Pinpoint project is now created.
  3. On the left navigation menu, choose All projects.
  4. Make a note of Project ID for the project that you created.

Step-3 CloudFormation Template Deployment

  1. Sign in to the AWS Management Console.
  2. Use the following Launch Stack button to deploy this solution in the Region where you have Amazon Connect instance.
  3. Enter the Stack name and provide the information under the Parameters section:
  • ConnectCampaignARN:
    arn:aws:connect-campaigns:{region}:{your_aws_account}:campaign/{connect_campaign_id}
    (Replace the region with Connect Region, your_aws_account with your AWS account number and connect_campaign_id with the campaign ID you noted earlier)                  
  • PhoneNumber: Replace this with your (passenger) phone number
  • PinpointProjectId: Replace this with your Amazon Pinpoint project ID that you noted earlier

Note: You can change other parameters such as FirstName, LastName, and Email.

  1. Acknowledge IAM resources creation, and choose Create stack. It will take a few minutes to provision the required resources.

  1. Your stack is created when the Status changes to CREATE_COMPLETE.

Step-4 Test the solution

To test the solution, you will in your database from Delayed to Canceled. This change will then invoke an outbound call to the passengers associated with this flight, connecting your agent to the passenger.

  1. Log in your Amazon Connect agent
  2. Make sure that your agent is in Available
  3. Navigate to the AWS Management Console and choose AWS CloudFormation.
  4. Select the stack that you created and choose the Resource.
  5. Find the FlightStatusTable and click on the link provided next to it.
  6. On the FlightStatusTable in DynamoDB, choose Explore table items.
  7. Update the value of FlightStatus attribute to Canceled.
  8. Your Connect agent will receive a call and an outbound call will be made to your phone number (from the PassengerDataTable).

Cleaning up

To avoid incurring future charges, empty the S3 bucket created as part of this solution. Then, remove all created resources by deleting the CloudFormation stack.

Conclusion

In this post, we implemented an Amazon Connect outbound campaign solution that is driven by changes to a database, by using the following steps:

  1. Configured Amazon Connect Outbound Campaigns in your Connect instance.
  2. Created a Amazon Pinpoint Project.
  3. Deployed AWS resources using AWS CloudFormation.
  4. Test the solution by updating a database.

This solution automates the process of creating a customer segment within Amazon Pinpoint, and creates a corresponding Amazon Pinpoint journey. The Amazon Pinpoint journey invokes Amazon Connect outbound campaign, to make automated outbound calls connecting your Amazon Connect agent and customer.

With Amazon Connect, you pay for what you use. There are no upfront payments, long-term commitments, or minimum monthly fees. The price metrics are detailed on Amazon Connect pricing.

Should you need help with setting this up, you can get assistance from AWS Professional Services. You can also seek assistance from Amazon Connect partners available worldwide.

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 »

Related Links

To learn more about the technologies or features used to create this solution, explore the following pages:

Author Bio

Lakshay Mutreja is a Solutions Architect specializing in Amazon Connect, based in California, USA. He helps customer achieve their business outcomes in the contact center space using Amazon Connect. Lakshay is always looking at innovative ways of enhancing product capabilities to deliver good customer experience.
Titiksha Singh is a Solutions Architect specializing in Amazon Connect, based in California, USA. She helps customers achieve their desired business outcomes with their Amazon Connect contact center solution.