AWS Contact Center

Combine data from multiple sources using Amazon AppFlow and build unified Amazon Connect Customer Profile for contact center agents


A prior understanding of customers’ journey and their engagement with a business is essential for contact center agents to deliver personalized customer service experience. Businesses want to improve their customer satisfaction scores (CSAT). To do so, they need to equip their agents and automated experiences with information about customers, e.g., previous transactions and call sentiments. Businesses today struggle with making relevant customer data accessible to customer service teams causing agents to switch between multiple applications to search for the information needed to solve customer issues.

Consolidating customer data from disparate data sources into a unified profile view is challenging, expensive and requires ongoing maintenance. Customer data spans a wide variety of data types including profile information (e.g., address), interaction data (e.g., web visits), sales data, and marketing data (e.g., campaigns). Companies require data that is tailored to their needs in the contact center – e.g., masking data to hide sensitive customer information from agents (credit card details), filtering for specific customer records needed (orders data above a certain value), etc.

Amazon Connect Customer Profiles is now available as a destination in the Amazon AppFlow console. With a few clicks, customers can now bring data from 20+ application connectors into Customer Profiles and equip contact center agents with the information needed to provide personalized customer service.

In this blog post, we will demonstrate how agents of a fictitious ABC company can use the Amazon AppFlow to combine customer interactions from Slack and with customer ticketing from ServiceNow. They can prepare data (transforming, filtering and validation) that is tailored to their needs and create a unified profile view so that their contact center agents no longer have to toggle between multiple applications to provide personalized customer service.

Solution Overview

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

  1. Setup ServiceNow connector via Amazon AppFlow.
  2. Set up data mappings to define how ServiceNow data is mapped to Amazon Connect Customer Profile.
  3. Set up integrations to ingest ServiceNow customer data.
  4. Setup Slack connector via Amazon AppFlow.
  5. Set up data mappings to define how Slack data is mapped to Customer Profile.
  6. Set up integrations to ingest your Slack customer data.
  7. View Unified profile in Amazon Connect Contact Control Panel (CCP)

Before creation of unified customer profiles, ABC has the following internal data governance and business requirements – a) Mask the full street address data from their agents b) Combine the First Name and Middle Name c) Add validation to only ingest customer data with a valid UserID and d) Filter to only Ingest data where customers are labelled as active.


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

Step 1: Setup ServiceNow connector via Amazon AppFlow

You can add a ServiceNow integration to an Amazon Connect customer profile domain by the following steps:

1. Sign in to the AWS Management Console and go to Amazon AppFlow and choose Create flow.

2. Enter the flow name. In our example it is <ServiceNow-Flow>. Enter the optional flow description.

3. Amazon AppFlow may encrypt the data using the default AWS Key or you may choose a custom AWS Key Management Service (AWS KMS) key for encryption.

4. Choose ServiceNow in the Source name dropdown and click on Create new connection. If you already have a ServiceNow connection, you can also choose an existing connection.

5. Skip this step if you have an existing ServiceNow connection. Enter the ServiceNow details: User name, Password & Subdomain. Select the AWS KMS key for data encryption. Enter the specific Connection name to identify this connection.

6. Select the specific ServiceNow object from dropdown. In our example, we have used the User object.

7. In Destination Details, choose Amazon Connect as the Destination name in the dropdown and select the Customer profile domain created in the previous step. We have selected <amazonconnect-customerprofiles-domain> as we created by this name.

8. You can select Run on demand which runs the flow only when you trigger it.

9. You also have the option to Run flow on schedule at a specific time. Click on Next

10. Chose Manually map fields under Mapping method.

11. Choose the source fields from ServiceNow and then choose Map fields directly. You can map fields such as First name, Last name, and User name that identify a profile. In our blog post, we also mapped a custom field named x_854836_employe_0_slackuser, which contains Slack User ID to unify with Slack Conversation object.

12. Optional. You can also mask information in Amazon Connect Customer Profiles.

13. Under Mapped fields, select any field you want to mask, in our blog post we have selected Street.

14. Choose modify values, under Modification dropdown select Mask Values.

15. Select Mask all values. This will mask the street information in Amazon Connect Customer Profiles.

16. Optional. You can concatenate two fields, in our blog post, we will concatenate First name & Middle name. Select First name and Middle name, choose Add formula.

Steps 17-24 are optional based on your unique business needs. If you choose not to do those, skip to step 25.

17. Select Concatenate from dropdown.

18. Under Source field 1, select First name. Under Source field 2, select Middle name.

19. Choose Map fields with formula. This will concatenate the first name and middle name as name.

20. Under Validations, Choose User ID in the Field name.

21. Choose Values are missing or null under Condition.

22. Choose Ignore records in Action and move to next page.

23. In Filter 1, select Active in the Field name drop down.

24. Select is exactly in the Condition dropdown & select True under Criteria 1. Click on Next.

25. Review and click on Create flow.

Step 2: Set up data mappings to define how ServiceNow data is mapped to Customer Profile
Once Amazon AppFlow integration has been set up, you need to define how data from ServiceNow is mapped to the customer profile.

1. In the AWS Management Console, search for Amazon Connect.

2. Select your Amazon Connect instance alias and choose Customer Profiles.

3. Click on Data Mappings and then choose Create Data Mapping.

4. Enter Data Mapping name as ServiceNow_User. Enter description.

5. Choose Data Source :ServiceNow – powered by AppFlow, and Flow name :ServiceNow-Flow

6. Select Data definition method as Mapping destination

7. Select Customer as Mapping destination and then click on Next.

8. Add Customer attributes with Source, Destination and Content type. For example, map user_name to AccountNumber, and x_854836_employe_0_slackuser to Attributes.SlackUser.

9. Click on Next.

10. Under Unique identifier dropdown, choose Attribute as Source.user_name : Customer.AccountNumber and Identifier name as userId.

11. Under Customer identifier dropdown, choose Attribute as Source.user_name : Customer.AccountNumber and Identifier name as userId. Add customer identifier

12. Select Source.x_854836_employe_0_slackuser – Customer.Attributes.SlackUser as Attribute and slackUser as Identifier name.

13. Click on Next.

14. Review and click on Create Data Mapping. Data mapping status will show as Active once the data source integration is added in Step 3.

Step 3: Set up integrations to ingest your customer data from Service Now

Once data mapping set up is done for ServiceNow, set up data source integration to ingest your customer data.

1. Choose Add data source integration.

2. Under Data Source dropdown, choose ServiceNow – powered by AppFlow, click on Next.

3. Under Establish connection >Flow name dropdown> choose ServiceNow-Flow. Click on Next.

4. Under Select data mapping >Mapping dropdown>choose ServiceNow_User. Click on Next.

5. Review and click on Add data Source Integration.

6. Data source integration (ServiceNow – powered by AppFlow) will initially show as pending and then it will become Active.

Step 4: Setup Slack connector via Amazon AppFlow

1. We will setup the Slack connector in the similar manner as the ServiceNow connector described in Step 1.

2. Obtain your client ID and client secret from your Slack account which will be used along with the workspace URL to create a connection.

3. Select the Slack channel that you would like to ingest data from.

4. Ensure that the configuration is as seen in the following snapshot with all fields mapped directly:

Step 5: Set up data mappings to define how Slack data is mapped to Customer Profile

1. Set up the Slack data mappings to customer profiles as defined in Step 2. Update Data mapping name as “Slack_Conversation”.

2. Use the flow SlackConversation-Flow created in Step 4. Choose Slack – powered by AppFlow as Data Source, Data definition method as Mapping destination & select Customer as Mapping destination.

3. Please ensure that you have configured the Customer attributes & identifiers as seen in the following screenshot. In this blog post, we mapped user to Attributes.SlackUser and text to AdditionalInformation, and we used an identifier named slackUser with the attribute Source.user – Customer.Attributes.SlackUser for both Unique Identifier & Customer Identifier.

Step 6: Set up integrations to ingest your Slack customer data

1. Add data source integration as defined in Step 3.

2. Select

i. data source: Slack – powered by AppFlow
ii.  Flow name SlackConversation-Flow (created in Step 4)
ii. data mappings Slack_Conversation (created in Step 5). Please review the flow name and data mapping with the following screenshot.

Step 7: View the unified customer profile in Amazon Connect Customer Profile Agent CCP

1. Login to your Amazon Connect agent application.

2. Ensure that Agent has the appropriate security profiles with permissions to view Customer Profiles.

3. Search using a key name and value in the profiles search bar, you should be able to see similar merged & transformed data. For example, you can search by phone number such as 5555550005.

4. In the agent application, we can see the Additional Info showing latest conversation text ingested from Slack and profile information like Phone number from ServiceNow.

Validating Customer Profiles data ingestion

Amazon Connect Customer Profiles has merged data from the two different sources: Slack & ServiceNow. You can also validate the ingested data using the search-profiles API. The API response should contain items from both the data sources: ServiceNow & Slack.


ABC Company leveraged Amazon AppFlow and Amazon Connect Customer Profiles to combine data from ServiceNow and Slack to create a unified customer profile. Through this blogpost, we demonstrated how Amazon Connect customers can reduce their average channel time by removing the need for agents to jump between different applications to gather customer data.

With Amazon Connect Customer Profiles, you only pay for what you use based on the number of customer profiles. Amazon AppFlow charges a simple, low rate per flow execution and data processed. Neither service requires up-front payments, long-term commitments, or minimum monthly fees. For information about pricing see Amazon Connect Customer Profiles Pricing Page and Amazon AppFlow Pricing Page.

Author bio

Nimish Amlathe is a Senior Product Manager on the Amazon Connect team based in Vancouver, BC. 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 diving deep with customers to architect creative solutions that support business innovation across different industries.
Jackysh Bangera is Solutions Architect at Amazon Web Services based in Mumbai, India. He enjoys listening to Classic Rock and you may run into him at one of the Biriyani eateries in the city.
Masayuki Hayashi is a Front-end Engineer on Amazon Connect team based in Seattle, US. Outside of work, he loves to play with his fluffy Pomeranian puppy at home.