AWS Contact Center

Unify and organize customer information with Amazon Connect Customer Profiles with the pre-built Amazon S3 connector

When a customer contacts your contact center, understanding their context is key to providing a great experience. To help you deliver more efficient and personalized customer service, Amazon Connect Customer Profiles helps you create a unified view of a customer’s profile with the most up to date information, to provide more personalized customer service. With just a few clicks, you can ingest data from third party applications to create unified customer profiles leveraging the pre-built connectors we provide for Salesforce, ServiceNow, Zendesk, Marketo and Amazon Simple Storage Service (Amazon S3).

In our two previous blogs, you learned how to set up connectors to your 3rd party applications within a few clicks and how to create a unified customer profile, set up personalized routing and embed customer profiles in your agent desktop. This blog goes into detail how to set up ingestion with custom data template with Amazon S3 as the data source.

Overview of solution

We will continue with an example from AnyCompany, a leading home services provider, which includes plumbing, carpentry, and other maintenance services. They use Amazon Connect – an easy to use omnichannel cloud contact center serve their end customers.

AnyCompany’s customers deal with several challenges when seeking customer service. First, they have to deal with long wait times. Also, they often get transferred to multiple agents on a single call, which forces them to spend time repeating information about their previous agent interactions and service request. On the agent side, agents are spending at least 15-30% of the call time to access customer information, schedule service requests, and manage billing and payments. As a result, AnyCompany is experiencing a dip in customer satisfaction score (CSAT) and agent productivity.

In this blog, we will show you how AnyCompany can use Customer Profiles to provide all the information their agents need on a single pane of glass to deliver faster and personalized service by using this new feature to easily ingest data from homegrown and third-party applications with Amazon Simple Storage Service (Amazon S3). We will assume that AnyCompany’s runs a batch job to export data from their CRM to an Amazon S3 bucket at a one hour interval. Please find an example of the data in our Github repository.


We will follow the following steps in this solution:

  1. Create an object type mapping.
  2. Set up the Amazon Connect Customer Profiles Amazon S3 connector
  3. Search for records


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

  • An AWS account
  • An Amazon Connect instance
  • Enable Customer Profiles for your instance
  • Create an Amazon S3 bucket
  • Upload the sample data CSV to the S3 bucket. For a detailed walk through of creating an Amazon S3 bucket and uploading a file, please follow the guide here.

Create a profile object type mapping

Looking at the sample data from AnyCompany’s CRM system we can see the an example of the data for a home service looks like:

   "CustomerId": "AAA111",
   "ReferenceId": "111222",
   "ServiceDate": "2/10/2021",
   "ServiceType": "Cleaning",
   "AssignedAgent": "John Doe",
   "CompletionDate": "2/14/2021",
   "Notes": "Task completed successfully"

Using the profile object type mapping tool, we can go through the next few steps to define the mapping.

In the Specify profile object details step do the following:

  1. Enter Domain name, Object type name and Description.
  2. Choose Next

In the Provide your source data step do the following

  1. Enter a sample JSON payload in Source Data
  2. Choose Next

In the Define field mappings and key step do the following:

  1. For the Source field name drop down, choose CustomerId, ReferenceId and AssignedAgent
  2. Choose Add to field mappings

In the Field Mappings section, choose AccountNumber in the Target Field for CustomerId

  1. In the Key Definitions section, choose Add for each key
    1. For the following keys choose these options:
    2. CustomerId key
      1. Key Name choose _account
      2. Field choose CustomerId
      3. Select Profile Key
    3. ReferenceId Key
      1. Key Name choose Custom Key Name, enter ReferenceId
      2. Field choose ReferenceId
      3. Select Unique key
    4. AssignedAgent Key
      1. Key Name choose Custom Key Name, enter ServiceType
      2. Field choose AssignedAgent
  2. Choose Next

In the Review generated template section

  1. Choose Download
  2. In the directory where you downloaded the template run the following AWS CLI command
aws customer-profiles put-profile-object-type --cli-input-json file://template.json

Configure Amazon S3 as a data source

Once we have created the profile object type we can set up the Amazon S3 connector. Use the following steps to create the integration:

  1. Open the Amazon Connect console
  2. Select your Amazon Connect instance
  3. In the navigation pane, choose Customer Profiles
  4. For Integrations, choose Add Integration

In the Select application section do the following

  1. Select S3
  2. Select Read and acknowledge that your S3 account meets the integration requirements.
  3. Choose Next
  4. For Choose an S3 bucket, select a bucket in the same region as your Amazon Connect instance
  5. Enter a bucket prefix if you have created one
  6. Choose Next

In the Select object type section do the following:

  1. From Select an Object Type or Template, choose serviceRecord
  2. Choose Next

In the Review and integrate section do the following

  1. Review the details
  2. Choose Integration

Search for records

Once the integration has finished the synchronization, we can search for the ingested records. Based on the template created in step 1, these records will be attached to profiles with the same AccountId as the CustomerId in the service record. If there isn’t a profile with the exsiting CustomerId, a new profile will be created.

We can use the SearchProfile API to search for these records based on the keys that we defined:

Search by CustomerId

aws customer-profiles search-profiles --domain-name AnyCompanyDoamin \
key-name _account --values "AAA111"

Search by ReferenceId

aws customer-profiles search-profiles --domain-name AnyCompanyDoamin \
key-name ReferenceId --values "111222"

Search by Agent

aws customer-profiles search-profiles --domain-name AnyCompanyDoamin \
key-name AssignedAgent --values "John Doe"

Cleaning up

To avoid incurring future charges, delete the resources including the Amazon S3 bucket and the customer profile domain used for this walk through.


In this blog, we showed you how to create a custom profile object type to ingest customer data and service history records. Customer profiles provide agents with the customer information they need to immediately address customer concerns on the call, which empowers agents to handle customer issues more efficiently. Please use the profile template UI tool to create your own custom templates based on your own schema.