Amazon Connect is an easy to use omnichannel cloud contact center , designed from ground up providing a true CPaaS capability.
With flurry of new features announced in the recent re:invent 2019 specific to connect, this article covers some hands-on and ‘how-to’ parts.
In this 3 part series, let’s explore the implementation of recently announced chat capabilities and how to enable this feature in an existing contact flows, followed by which let us also explore the seamless integration of AWS connect with other AWS AI services ( Transcribe , Comprehend etc.,) to get some meaningful insights.
At the time of writing this article , Contact lens is still in preview and am yet to get the invite(for some hands-on) ! will have the 3rd part in this series reserved for it :)
Pre-Requisite
Well, the intended audience are the ones who are already familiar with the concepts of Amazon Connect and have implemented voice based contact flows , queue transfers & comfortable integrating with Lex bots for virtual agents ( give a shout out , if an article to build this from scratch would help !!) ,
Let’s jump straight into the implementation part. Before we get started , with chat being one of the significant feature that have been added recently , there are some configuration / set up changes required if the connect instances was created prior the launch of these features ( however,with any new instances the following configuration comes by default). Here are the steps.
- Enable Chat Test Mode :
To enable chat test mode , select the user from the security profile and update their permission.
Enable the chat test mode for the user by checking the enable/disable checkbox
2.Update Routing Profile
Now , enable the chat channel in the routing profile , this enables the agent to have access to both voice and chat channel as their preferred mode of communication.
To enable , check the Chat checkbox and edit the routing profile queue to enable chat as a channel.
3. Enable Chat Transcripts
Now , switch to the connect instance settings page and enable the chat transcripts , to do this select Data Storage and edit the chat transcript by selecting the S3 bucket that already stores the call recording , and add a path prefix of your choice to add the chat transcripts.
The chat transcripts will be stored in a JSON format ( Encrypted , if encryption is enabled) , following is a sample transcript , where the user interaction is initiated by a bot and then redirect to the human agent.
{"Version": "2019-08-26","AWSAccountId": "43xxxxxxxxx40","InstanceId": "d84xxxxxb3d-07xxxxxef9","InitialContactId": "8fxxxxx487d4d","ContactId": "8fcxxxxx4d","Participants": [{
"ParticipantId": "ecxxxxxd3e"},{"ParticipantId": "a1fxxxxx5ea9a"},{"ParticipantId": "c12xxxxxe85b5"}],"Transcript": [{"ContentType": "application/vnd.amazonaws.connect.event.participant.joined","Id": "45032093-1a41-435b-a5ab-c7d916998aef","DisplayName": "Madhan","Type": "EVENT","ParticipantRole": "CUSTOMER","AbsoluteTime": "2019-12-08T17:07:13Z","ParticipantId": "a1fxxxxx5ea9a"},{"ContentType": "text/plain","Content": "Thank you for calling xxxxxxx Service centre , Madhan.","Id": "aa0694d7-0fc4-487b-a670-bf83ff7f143b","DisplayName": "SYSTEM_MESSAGE","Type": "MESSAGE","ParticipantRole": "SYSTEM","AbsoluteTime": "2019-12-08T17:07:21.489Z","ParticipantId": "c12xxxxxe85b5"},{"ContentType": "text/plain","Content": "How can i help you today ?","Id": "10adcd5f-bda6-49cd-a5dd-3dafa77d2bf8","DisplayName": "BOT","Type": "MESSAGE","ParticipantRole": "SYSTEM","AbsoluteTime": "2019-12-08T17:07:23.182Z","ParticipantId": "c12xxxxxe85b5"},{"ContentType": "text/plain","Content": "i wanna talk to agent","Id": "00a2c7ae-481d-4633-8e67-d9e859b68893","DisplayName": "Madhan","Type": "MESSAGE","ParticipantRole": "CUSTOMER","AbsoluteTime": "2019-12-08T17:08:38.766Z","ParticipantId": "a1fxxxxx5ea9a"},{"ContentType": "text/plain","Content": "Sorry, I could not understand. Goodbye.","Id": "d39c170b-4d12-4826-af82-e6ad6c2ae6df","DisplayName": "BOT","Type": "MESSAGE","ParticipantRole": "SYSTEM","AbsoluteTime": "2019-12-08T17:09:14.505Z","ParticipantId": "c12xxxxxe85b5"},{"ContentType": "text/plain","Content": "Redirecting to agent","Id": "fb952dee-ac72-4ec8-8913-2d1c0a31dd40","DisplayName": "SYSTEM_MESSAGE","Type": "MESSAGE","ParticipantRole": "SYSTEM","AbsoluteTime": "2019-12-08T17:09:15.354Z","ParticipantId": "c12xxxxxe85b5"},{"ContentType": "application/vnd.amazonaws.connect.event.participant.joined","Id": "660a681b-7a8a-4aab-9cb5-db1a34cb5b89","DisplayName": "430666551340","Type": "EVENT","ParticipantRole": "AGENT","AbsoluteTime": "2019-12-08T17:09:27.350Z","ParticipantId": "ecxxxxxd3e"},{"ContentType": "text/plain","Content": "hello how can i help you ?","Id": "8493a4b7-4886-44e0-b1f8-10c81c92ef1f","DisplayName": "430666551340","Type": "MESSAGE","ParticipantRole": "AGENT","AbsoluteTime": "2019-12-08T17:09:45.363Z","ParticipantId": "ecxxxxxd3e"},{"ContentType": "text/plain","Content": "need help with something....","Id": "19de313f-1b7a-4946-a20e-7cf97372e8b6","DisplayName": "Madhan","Type": "MESSAGE","ParticipantRole": "CUSTOMER","AbsoluteTime": "2019-12-08T17:09:57.857Z","ParticipantId": "a1fxxxxx5ea9a"},{"ContentType": "text/plain","Content": "Sure , how can i help u ?","Id": "314f0acf-8612-42a4-89e9-ffaeba2f60ba","DisplayName": "430666551340","Type": "MESSAGE","ParticipantRole": "AGENT","AbsoluteTime": "2019-12-08T17:10:07.334Z","ParticipantId": "ecxxxxxd3e"},{"ContentType": "application/vnd.amazonaws.connect.event.participant.left","Id": "f4aabbff-9d70-4005-bb91-91e8267b3004","DisplayName": "430666551340","Type": "EVENT","ParticipantRole": "AGENT","AbsoluteTime": "2019-12-08T17:11:16.911Z","ParticipantId": "ecxxxxxd3e"},{"ContentType": "application/vnd.amazonaws.connect.event.chat.ended","Id": "1a795229-bbb0-498d-9790-f3ef255ef959","Type": "EVENT","AbsoluteTime": "2019-12-08T17:11:17.579Z"}]}
P.S We will leverage the above transcripts later in the series , to apply the AI services for analytics.
As mentioned earlier , the above prerequisites would be required only in case of we using a connect instance that was created prior the launch of these features (chat) , for any new instances all these set up comes by default.
Time to build our ContactFlow !
I have just created a simple contact flow with Lex handling some predefined set of queries and for all the other cases redirecting to the agent !
Chat Application
The following cloud formation template (from the amazon connect git repository) would create the stack as described in the architecture below.
check here for the cloudformation yaml
On a nut shell , we would leverage the Amazon Connect Service StartChatContact API, to initiate a chat conversation in a custom webpage hosted in S3.
The cloudformation template , requires the following parameters.
Update the S3 bucket name , Instance id and the contactFlow id and create the stack. This will generate the following output.
And now we have the demo site up and running in the cloudfront distribution URL !!
This chat panel could easily be integrated to any of our existing portal .
And the agent Control panel , with the chat feature will be available in the following URL.
https:// instance-name.awsapps.com/connect/ccp-v2
That’s the wrap of part one in this series. Stay tuned for the the next article on how to seamlessly integrate AI services with AWS connect.