During customer calls, contact center representatives frequently navigate through various applications to gather essential information for resolving inquiries. This often involves switching between numerous platforms, including custom agent applications and Customer Relationship Management (CRM) systems. To mitigate this issue, many organizations resort to intricate integrations that merge customer information from separate applications into a custom database to support their contact center operations. However, these integrations can be both complicated and expensive, as disparate systems utilize diverse data formats and identifiers (e.g., account numbers, phone numbers, and email addresses).
Amazon Connect Customer Profiles now enables businesses to provide a more tailored customer experience with minimal effort by presenting agents with a consolidated view of all relevant customer data at the moment of interaction. This feature integrates customer information from various sources, including Salesforce, ServiceNow, and proprietary applications, along with contact history in Amazon Connect, to construct unified customer profiles. For further details, please refer to our admin guide and API documentation.
In our prior blog post, we demonstrated how to establish connectors to third-party applications seamlessly. Building on that, this article will guide you through the process of creating unified customer profiles, configuring personalized routing, and incorporating customer profiles into the agent desktop environment.
Solution Overview
For illustrative purposes, we will reference AnyCompany, a prominent provider of home services such as plumbing, carpentry, and maintenance. AnyCompany has utilized Amazon Connect with over 1,000 agents for a year. They experience extended call durations as agents often take significant time to locate pertinent customer information across their order management, marketing, and enterprise resource planning (ERP) systems. The solution steps are as follows:
- Develop a unified customer profile using Amazon Connect Customer Profile APIs.
- Implement personalized routing via an AWS Lambda function.
- Enhance the agent experience through the Amazon Connect Streams JS library.
Walkthrough
Prerequisites
To proceed with this walkthrough, ensure you have the following:
- An AWS account
- An Amazon Connect instance
- Activated Customer Profiles for your instance
Creating a Unified Customer Profile
Initially, AnyCompany aimed to provide their agents with a comprehensive view of the customer journey, integrating data from multiple sources. They implemented approximately 50 custom integrations to gather customer data, including product trials, subscription details, and marketing offers. With these integrations, agents can swiftly ascertain if a customer is nearing the end of a trial or subscription and view specific offer details previously sent to them.
client.putProfileObjectType({
"DomainName": "AnyCompanyDomain",
"ObjectTypeName": "MarketingAssignedOffers",
"Description": "Marketing Managed Offers",
"AllowProfileCreation": true,
"ExpirationDays": 1000,
"Fields": {
"UserId": {
"ContentType": "STRING",
"Source": "_source.UserId",
"Target": "_profile.AccountNumber"
},
"email": {
"ContentType": "EMAIL_ADDRESS",
"Source": "_source.email",
"Target": "_profile.EmailAddress"
},
"phone": {
"ContentType": "PHONE_NUMBER",
"Source": "_source.phone",
"Target": "_profile.PhoneNumber"
},
"offer": {
"ContentType": "STRING",
"Source": "_source.offerName",
"Target": "_profile.Attributes.offerName"
},
"offerView": {
"ContentType": "STRING",
"Source": "_source.offerViewed",
"Target": "_profile.Attributes.offerViewed"
}
},
"Keys": {
"_account": [
{
"FieldNames": ["UserId"],
"StandardIdentifiers": ["PROFILE", "UNIQUE"]
}
],
"_email": [
{
"FieldNames": ["email"]
}
],
"_phone": [
{
"FieldNames": ["phone"]
}
]
}
}).promise();
const marketerAssignedObject = {
UserId: '00001',
email: 'test@test.com',
offerName: '30% Renewal',
offerViewed: 'false'
};
client.putProfileObject({
"DomainName": "AnyCompanyDomain",
"ObjectTypeName": "MarketingAssignedOffers",
"Object": JSON.stringify(marketerAssignedObject)
}).promise();
For complete examples of registering profile object types, submitting profile object updates, and searching profiles, visit the GitHub repository.
Enabling Personalized Automation
Once customer profiles are established, AnyCompany can leverage Amazon Connect Customer Profiles to identify the caller before connecting them to an agent.
var searchResults = await client.searchProfiles({
"DomainName": "AnyCompanyDomain",
"KeyName": "_phone",
"Values": [customerNumber]
}).promise();
if (searchResults.Items.length > 1) {
var profileid = searchResults.Items[0].ProfileId;
var firstname = searchResults.Items[0].FirstName;
var additionalInformation = searchResults.Items[0].AdditionalInformation;
}
var listObjectPayload = {
"DomainName": "AnyCompanyDomain",
"ObjectTypeName": "CTR",
"ProfileId": profileid
};
var listObjectResults = await client.listProfileObjects(listObjectPayload).promise();
var mostRecentCtr = JSON.parse(listObjectResults.Items[0].Object);
var lastCallAbandoned = "false";
if (mostRecentCtr.agent === null) {
console.log("last call was abandoned")
lastCallAbandoned = "true"
}
2. Call the function from the Contact Flow to retrieve the caller’s profile data, including name, profile ID, and other details.
3. Utilize the Play Prompt block in the Contact Flow to greet the caller by name.
4. Leverage the Check contact attribute block to branch based on the lastCallAbandoned attribute returned by the Lambda function.
5. Use the Change routing priority/age block to prioritize the contact if the caller had abandoned a previous call.
It’s important to note that additional use-cases can be integrated into this logic. For instance, if a call was detected within the last 24 hours, the sentiment and categorization of the prior call can be harnessed to personalize routing. If the customer’s last interaction had a negative sentiment, they could be connected to a more seasoned agent. This can be facilitated by enabling Contact Lens for Amazon Connect. This video serves as an excellent resource for further insights.
By utilizing the customer profiles APIs within the contact flow, AnyCompany successfully creates a dynamic and personalized customer experience, ensuring that customers are quickly connected to agents equipped to address their needs.
Location
Amazon IXD – VGT2, 6401 E Howdy Wells Ave, Las Vegas, NV 89115
Leave a Reply