AWS Contact Center

Transform customer data into personalized customer experiences with Amazon Connect Customer Profiles and Outbound Campaigns

Introduction

Contact center teams are increasingly motivated to communicate with customers to address potential issues before they arise. By anticipating and meeting customer needs proactively, organizations aim to improve customer loyalty and ultimately increase revenue by preventing customer dissatisfaction and churn.

But, to be effective, proactive communication needs to be personalized, engaging, and connected across all touch points. Today, contact center managers often rely on data analysts to run offline queries to identify customer attributes and preferences that inform targeted audiences. However, customer data is usually fragmented across business silos, applications, and engagement channels. This can make proactive communication disjointed, expensive, and difficult to scale.

Amazon Connect Customer Profiles aggregates and unifies end-customer data from over 70 potential data sources and can be used to improve customize experiences across the customer journey. Announced today, Amazon Connect outbound campaigns can use those same Amazon Connect Customer Profile attributes to create real-time segmentation and to personalize messages.

With Amazon Connect, companies can now easily create personalized, omnichannel campaigns that scale. Here are a few common use cases for businesses of all types:

Proactively contact customers to improve the customer experience:

  1. Payment Reminders
  2. Tips for upcoming appointments
  3. On-boarding steps

Proactively contact customers to prevent a potential service issue.

  1. Product recalls
  2. Service outage alerts
  3. Reach out to customers who may have had a negative experience:
     1. Re-booking for a delayed flight
     2. Issue a refund
     3. Gather feedback from the customers experience

Proactively contact customers to drive conversions:

  1. Abandoned Carts
  2. Mortgage/Credit Card inquiry
  3. Hot leads/Contact Us

Amazon Connect outbound campaigns also now provides business-user friendly campaign design and management capabilities, omnichannel orchestration (SMS, email, voice), messaging template management, and analytics dashboards to view campaign and conversion metrics from the Amazon Connect admin console. By defining a target customer segment, a message template, a channel, and a schedule, companies can quickly create and launch campaigns via voice, SMS, and email channels. This feature empowers them to orchestrate communications without relying on IT counterparts to build and configure custom integrations between multiple tools, as is often the case today.

To analyze campaign performance metrics, contact center managers can leverage Amazon Connect campaign analytics dashboards to gain insights into campaign delivery status, response rates, call dispositions (e.g., live pickup, voicemail, busy, completed objective), and identify opportunities to improve response rates and agent efficiency. Previously, customers would need IT resources to build custom dashboards by stitching together APIs from multiple sources. Now, these metrics are available all in one location.

In this blog post, we will demonstrate how a fictitious company, AnyCompany, can use calculated attributes to define their own business logic to transform their Amazon Connect Customer Profile data into actionable data points. These data points can then be used to personalize experiences, such as inbound voice responses based on order history data, or outbound campaigns using real-time, targeted customer segments.

Solution overview:

Here’s a quick overview of all the steps to be followed

  1. Enable Amazon Connect Customer Profiles
  2. Create calculated attributes
  3. Create Amazon Connect flow with calculated attributes
  4. Create segment
  5. Contacting your segment
  6. Create a campaign

Prerequisites

For this walk through, it is assumed you have the following prerequisites:

Walkthrough 

Step 1: Create calculated attribute

  1. Sign in to the AWS Management Console.
  2. Search for Key Management Service on the services search bar and click on Key Management Service.

Figure 1: Search for Key Management Service

  1. Then click on Create key to create new Customer managed key.
  2. In the Configure key section, leave the default options as they are and proceed by clicking the Next. In the Add labels section, enter Customerprofilekey as the Alias value, then click the Next. Skip the selection of administrators and users, and continue to the Review step. Finally, click the Finish to create the KMS key.

Figure 2: Review Key configuration

  1. Search for Amazon Connect on the services search bar and click on Amazon Connect.

Figure 3: Search for Amazon Connect

  1. On the Amazon Connect Instances page, click on Customer Profiles in the left side navigation menu.
  2. Click on Enable Customer Profiles button, enter amazon-connect-customerprofile as the Domain name, set Profile creation and auto-association to Auto-associate profiles only, select Customerprofilekey for Encryption, and finally click on Enable Customer Profiles.

Figure 4: Enable Customer profiles

Figure 5: Select key for encryption

  1. Search for S3 on the services search bar and click on S3, click on Create bucket, enter your desired bucket name while keeping all other settings at their defaults, and click on Create bucket to create the bucket.
  2. Download below CSV files to your local.
    1. 10_Customer_Profiles.csv
    2. 10_Orders.csv
  3. Open the downloaded 10_Customer_Profiles.csv file as Excel in your local computer and change the first row’s PhoneNumber value to your cell number and making sure to keep the 1 preceding the number, as it represents the country code. Leave the rest of the values the same and save the file.
  4. Upload 10_Customer_Profiles.csv and 10_Orders.csv to S3 bucket which created in Step 8.
  5. Navigate back to Customer Profiles in amazon connect instance.
  6. In Data source integrations tab click on Add data source integration.

Figure 6: Add data source integration

  1. Select the data source value of S3. In the bucket details, choose Browse S3 and select the bucket which created in Step 8 and select the file of 10_Customer_profiles.csv then click on Choose button. Leave the Ingestion start date as it is then click on Next.

Figure 7: Select Data source as S3

  1. Select Mapping method as Auto-generate mapping and keep the Mapping details (Mapping name and Description) as it is and click on Next.

Figure 8: Select Mapping method

  1. In the Review and customize mapping section, the Gen AI system will automatically generate a mapping based on the fields provided in the CSV file.

Figure 9: Review and customize mapping

  1. Click Next, then click Add data source integration. At first, the status of the integration will show as Pending. Then, it will change to In Progress. After that, when the data is added to the customer profiles domain, the status will change to Active. This whole process will take between 5 and 10 minutes.
  2. Once the integration status is changed to Active, just refresh the page then you will see that the Total profiles are 10 under Profile metrics.

Figure 10: Profile metrics

  1. In Data source integrations tab click on Add data source integration.

Figure 11: Data source integrations

  1. Select the data source value of S3. In the bucket details, choose Browse S3 and select the bucket which created in Step 8 and select the file of 10_Orders.csv then click on Choose button. Leave the Ingestion start date as it is then click on Next.

Figure 12: Set up connection

  1. Select Mapping method as Auto-generate mapping and keep the Mapping details (Mapping name and Description) as it is and click on Next.

Figure 13: Map data

  1. In the Review and customize mapping section, the Gen AI system will automatically generate a mapping based on the fields provided in the CSV file.

Figure 14: Review and customize mapping

  1. Click on the three vertical dots in the Actions column for AccountNumber, then click on Add property and select Profile key. Then, a pop-up window will open, enter the Key name value of AccountNumber, and click on Save.

Figure 15: Add property and select Profile key

  1. Click Next, then click Add data source integration. At first, the status of the integration will show as Pending. Then, it will change to In Progress. After that, when the data is added to the customer profiles domain, the status will change to Active. This whole process will take between 5 and 10 minutes.
  2. On the Amazon Connect Instances page, click on the Instance alias then click on Access URL to login to connect instance.
  3. On the Amazon Connect console, on the left side menu, click Queues under Routing.

Figure 16: Select Queues

  1. Click on Add queue.
  2. Enter Priority Queue in the Name field and select Basic Hours option from Hours of operation then click on Save button.
  3. Repeat step 27-28 to create Standard Queue.
  4. On the Amazon Connect console, on the left side menu, click on Calculated attributes under Customer Profiles.

Figure 17: Select Calculated attributes

  1. Click on _orders_total_price_sum under the Attributes.
  2. Click on Edit button then update the Time period and Number of events field values to 100. You can update this number based on your use case.
  3. Click on Save button.

Figure 18: Edit order total price attribute

  1. Click on _orders_count under the Attributes.
  2. Click on Edit button then update the Time period and Number of events field values to 100. You can update this number based on your use case.
  3. Click on Save button.

Figure 19: Edit orders count attribute

Step 2: Create Amazon Connect flow with calculated attributes

You will now create an Amazon Connect flow to test the custom calculated attributes functionality. In the scenario outlined below, we have designed a flow that leverages custom calculated attributes created in Step 1 to facilitate informed business decisions. This flow dynamically routes incoming customer calls to different queues based on detailed analysis of the customer’s order history.

  • If a customer has placed more than 5 orders and the combined value of these orders exceeds $1000 USD, the system recognizes this customer as a high value client. In such cases, the flow will direct the call to the Priority Queue, which is designated for providing premium support and handling.
  • Conversely, if the customer does not meet the above criteria either having fewer than 5 orders or a total order value less than $1000 USD, the call will be routed to the Standard Queue. This queue is set up to handle general inquiries and provide standard customer service.

By implementing this routing strategy, the flow ensures that high-value customers receive prioritized attention, thereby enhancing their overall service experience. This approach allows for more personalized and effective customer service by utilizing key data points to make real-time decisions about call routing.

Figure 20: Flow with calculated attributes

You can download the above flow here.

Step 3: Create segment

Segments can be used in campaigns and flows to create personalized experiences by identifying specific groups of customers to engage with. Segments use customer data from Customer Profiles to find matching customers. To ingest data from external sources, contact your organization’s administrator. Segments dynamically update to add or remove customers as customer data changes. Customer attributes including calculated attributes are used as filters to build segment criteria. You must first create a calculated attribute before it can be used as a filter.

  1. On the Amazon Connect console, on the left side menu, please click on the option Customer Segments under Customer Profiles.

Figure 21: Select customer segments

  1. Click on Create segment button to create a new segment.
  2. In the Name field, type the word Priority Customers.
  3. In the Audience group 1 section, choose All profiles from Customer Profiles in the Starting audience field
  4. In the Audience filters section, click on Filter and choose the calculated attribute of Count of orders. Select the operator value is greater than and enter the value is 5, then click Apply.
  5. In the Estimated audience section, you will see how many profiles are eligible based on the segment conditions.
  6. Click on Create segment button.

Figure 22: Create segment

 

Step 4: Contacting your segment

Create a flow that can be used when reaching out to your customers via voice. The example flow below contains Call Progress Detection, which allows you to detect if a human answered the phone, and routes the call to an agent in that instance. If voicemail is detected, the flow leaves a message for the customer.

Figure 23: Outbound flow with call progress detection

You can download the above flow here.

STEP 5: Create a Campaign

  1. From the left menu, select Outbound campaigns

Figure 24: Select outbound Campaign

  1. Select Create Campaign

Figure 25: Campaign set up

  1. Give the campaign the name Priority Customer Campaign
  2. Select the segment created in Step 3. Priority Customers.

Figure 26: Give campaign name and select segment

  1. Select the Agent assisted voice channel. This channel enables Predictive and Progressive dialing modes. When using the Progressive mode, a call is only made to a customer when an agent is available. With Predictive, agent occupancy is prioritized.
  2. Under Contact Flow select the Contact Flow created at the beginning of this section. Outbound With Call Progress Detection.
  3. Under Queue select the agent queue that should receive these calls.
  4. Under Source phone number specify the phone number that should be displayed to customers when they receive the call.
  5. Under Dialing Mode select Progressive.
  6. Tick Enable call classification
  7. Tick Enable wait for prompt

Figure 27: Select Delivery mode, contact flow, queue, source phone number, dialing mode

  1. Click Next

Figure 28: Click next to configure Attempts

  1. Set communication limits. These determine how many times a customer will be contacted by the campaign. A global limit is applied by default.

Figure 29: Add details for Communications per receipt

  1. Under Max communications per day set Limit to 3 and Frequency to 5. This means that a customer will be contacted at most 3 times every 5 days.
  2. Under Max communications per weeks set Limit to 6 and Frequency to 2. This means that a customer will at most be contacted 6 times over 2 weeks.
  3. Enable Reattempt Rules. This allows you to retry a contact using the same channel, or using SMS or email. E.g. If a number is invalid, you can email your customer instead.

Figure 30: Add reattempt rules

  1. Specify reattempt rules. In this example the customer will be called again if the call is abandoned, line is busy, or if voicemail is reached. If the phone number is invalid they will be sent an email. If the call is unanswered, they will be sent an SMS.
  2. Click Next

Figure 31: Add recipients time zone

  1. In this section you specify the times of day that the campaign should run. Any days that should be excluded. And you tell the campaign to use a specific time zone, or utilize the customer’s time zone. Select Recipient’s local time zone.
  2. Under Active Communication time, click the + Days button, and specify the times of day that the campaign should run. You can click the duplicate button to quickly add other days.
  3. Enable the Apply to all channels checkbox.

Figure 32: Add Active communication time

  1. Under Exceptions to communication time click + Exception and specify any days where the campaign should not run.
  2. Click Next

Figure 33: Review and publish campaign

  1. Review your campaign.
  2. Click Publish

Figure 34: Specify if your campaign should start immediately, or set a scheduled start time

  1. Select Start now
  2. Set an Expiry Date
  3. Click Publish

You now have a campaign that will make a voice call to your priority customers, and route those answered calls to your agents. If a call is abandoned, or busy or voicemail is reached, a reattempt will be made after 15 minutes. If the call is unanswered, an SMS will be sent. If the phone number is invalid, an email will be sent.

Clean Up

  1. On the Amazon Connect console, on the left side menu, please click on the option Customer Segments under Customer Profiles.
  2. Select Priority Customers segment, click on Delete. Type confirm in the pop-up window and click on Delete.
  3. Delete the Amazon_Connect_Contact_Flow created in STEP 2.
  4. Delete the following queues: Priority Queue and Standard Queue
  5. Delete the campaign Priority Customer Campaign
  6. Delete the Flow Outbound with Call Progress Detection
  7. Delete the data source integrations which are created for 10_Customer_profiles and 10_Orders.
  8. Delete the Customer Profiles domain.
  9. Delete the KMS Key.
  10. Delete the S3 Bucket.

Conclusion 

This blog demonstrated how AnyCompany effectively utilized Amazon Connect Customer Profiles to transform raw customer data, like individual customer order history, into actionable data points. This enabled AnyCompany to personalize automated experiences for their customers starting in the inbound queue. Furthermore, the segments created in Amazon Connect Customer Profiles were leveraged to build highly-targeted Amazon Connect outbound campaigns, allowing for tailored messaging that aligns with the specific needs and preferences of different customer groups. As a result, AnyCompany’s customers are engaged meaningfully, enhancing their overall experience.

The integration of unified customer data, along with custom logic and audience segmentation, equips businesses to deliver personalized interactions across various touchpoints. In a competitive marketplace, Amazon Connect not only deepens customer understanding but also fosters more relevant and contextual engagements. To learn more about Amazon Connect Customer Profiles, you can read How to build unified customer profiles with Amazon Connect or watch How Choice Hotels has used Customer Profiles to build unified traveler profiles. To learn more about Amazon Connect Outbound Campaigns, see here.

Author bio


Nimish Amlathe is a Product Lead at Amazon Web Services based in Seattle, WA. At AWS, he works with teams at the intersection of customer data, machine learning and customer engagement such as Amazon Connect, AWS Clean Rooms, AWS Entity Resolution, and Amazon Personalize. Outside of work, you are likely to see him at a local comedy club.
Abhishek Pandey is a Senior Solutions Architect with Amazon Web Services based in Houston, TX. Abhishek is passionate about architecting creative solutions that support business innovation across different industries. Outside of work, he loves to hang out with family and friends.
Asher Bramwell is a Sr. Specialist Solutions Architect with Amazon Web Services based in Seattle, WA.
Baswaraj Thota is a Senior Solutions Architect with Amazon Web Services. Baswaraj has helped many organizations to implement sophisticated, scalable, and secure solutions across many different industries. Outside of work, he loves to play cricket, jog and traveling.