SlideShare a Scribd company logo
1. Amazon Connect Overview
History of Amazon Connect
Amazon Connect is a simple to use, cloud-based contact center that runs on AWS. Amazon
created Connect in response to their own internal demands and to support them in becoming
Earth's most customer-centric company. Amazon launched on the 28th of March 2017. Connect
comes with the standard contact center features you would expect such as skills-based routing,
call recording, real-time and historical analytics, high-quality voice which uses web RTC and the
Opus codec which is highly resilient to packet loss and jitter. Some of the differentiators of
Connect include its self-service ability.
With no contact venter experience anyone can build a Connect instance and start making your
first call within just a few minutes By integrating to your customer data, with Connect you're
able to build personalized, dynamic, and natural customer experiences, the same technology that
powers Alexa. Integrations have historically been a significant pain points. Connects open
platform, its integration capabilities, and the Amazon Connect quick start guides are breaking
down barriers. Last but not least is the AWS ecosystem. Connect seamlessly integrates with
Amazon S3, Kinesis, Lex, and AWS Lambda.
Pricing model
One of the great benefits of Amazon Connect is the pricing model. It is simple and transparent.
You will pay for customer-connected minutes and associated telephony charges, and if you use
any of the AWS services, you'll be charged at the advertised rates for those, so just throw in the
call recordings for Amazon S3. For the $0.018 per minute service charge, you getting use of the
Connect platform. You're not charged any extra for the agents or per site, and you can have 5,000
agents configured and online, but you'll only pay for Connect when it's handling inbound or
outbound traffic. There are no software charges, either upfront or ongoing, and any new native
features that are released to the platform, you'll have access to them.
You do not pay for any hardware or auto-scaling, and there are no commitments. You can run
1,000 agents one day and nothing the next with no penalty.
Here is a pricing example from North America. The customer-connected minutes are charged at
the same, regardless of the location set at $0.018 per minute. For telephony, you pay for rental
charge for the number reservation and then usage costs. As we can see here, for a DID number,
the daily rental is $0.03, and $0.003 per minute, with the toll-free having a rental of $0.06 and a
per minute charge of $0.012, and finally, outbound calls from North America to North America
are charged at just $0.0065 per minute.
Here is an example for the Sydney region and Frankfurt. I have seen these costs reduced over the
past year. As such, I highly recommend that you visit the pricing page for the most up to date
numbers, and best of all, you can get started for free. Amazon Web Services are known for their
free tier, and Connect is no exception.
As of this recording, you get 90 minutes per month of customer connected usage, a DDI, 30
minutes per month local DDI calls, and 30 minutes per month of local outbound calls for 12
months from the date that you create your first instance.
Architecture overview
One of the special things about AWS is that you can be the richest company in the world, a
unicorn, start-up or a solo builder and you get access to the very best and latest technology
available and Connect is no different. Content centers traditionally have been very big in
complex systems that would require significant operant investment, a small army of people to
design, build and support and projects that would span multi years. You may have noticed that I
use the term builder. This is deliberate, a term used by Amazon for good reason. AWS is like a
joint Lego set and I'm sure this is not the reason why Lego is popular in the tech world.
You can build simple solutions or complex, integrant solutions, you can add and remove as you
desire, just like building. The term builder also has another meaning. It sends a message that you
don't have to be a developer to use AWS and I believe this is the real message Amazon wants to
give and that holds true for Connect. With those concepts in our mind, let's have a look at some
high level diagrams. Firstly, we start very simple. This icon is for Connect. On its own, you have
a feature-rich content center that can be built with just a few clicks and within minutes, you can
be making and receiving calls.
Some of the features you get with this are inbound DDI and toll-free numbers, multi-language,
speech to text, routing and agent configuration, softphone, manual outbound dialing and
reporting and as this is 100% Cloud-based, your agent and administration connections still
connect is via the public Internet. Cloud Watch is an AWS service for real time and historical
system and application metrics. We'll use Cloud Watch to monitor the Connect instance. I'm sure
you can already start to see some business processes whereby this solution would be suitable,
that are low risk and allow you to start benefiting from Connect and enables you to learn about a
solution and understand what more you want.
And as Connect is a software solution, you're not limited to just one instance. You can have five
per region as a soft limit. To increase this limit, you need to raise a Support Request with AWS.
Okay, let's add another building block to this. I'll add S3 for call recording and report storage.
We've just added an S3 bucket. S3 is Amazon's simple storage service. Think Dropbox and I
must admit, this could have been included in the first architecture we looked at but as it's not
mandatory, I really want you to understand how flexible the solution is.
Adding S3 enables call recording storage and report storage. Once enabled, you just need to
configure your reports and enable call recording within the Contact flows. It's a one step process,
that's it. With S3, you can set policies to delete data at a certain age or keep the data indefinitely
and storage is unlimited.
Another build in our solution is Amazon Lex. Lex allows you to build conversational interfaces.
Think voice box. It enables you to add natural language into your contact flows.
We've now moved from DTMF touch inputs into a conversational interface, just like Alexa.
The final building block we'll explore in this course is AWS Lambda. Lambda is a code
execution service and provides us with exciting integrations for Connect, that allows us to get
information about the customer from a database or retrieve information from API's or complete
booking transactions for the customer. With Lambda, this empowers us to provide extremely rich
customer journeys. If you look at the Connect service in isolation, you will not fully understand
it's power and potential.
With integrations like Lambda, you're limited only by your imagination. What might not be
totally clear until this point is that all of these services are serverless. This means there are no
service to provision, patch or support and they provide a highly scalable and elastic service. This
greatly reduces provision and development and operational effort and you only pay for what you
use. If you need Connect for just a week, go for it. A few hours, no problem. During this course,
we'll explore all of these items in more detail, however we are just scratching the surface with the
architectural options possible with Connect.
To show how you can continue building on Connect, there are additional features and services
such as Kinesis for real time data streaming, Transcribe for audio to text, Comprehend for
understanding intent within text, Amazon Connect Streams for building a custom agent desktop
with phone controls to replace the built-in softphone UI, text messages, analytics, work force
management, app integration and many more could form parts of your content center solution.
Amazon Connect is a building block in your customer experience solution.
2. Create an Instance
Build an Amazon Connect instance
Okay, first let's make sure you're logged into the AWS console and you can see the AWS
services page. To get to Connect we can either search for it using the search bar or we can scroll
down, open all services, and under customer engagement click on Connect.
On the top right-hand side you'll see I've got North Virginia selected. If I expand this down I can
see Amazon Connect is available in several regions. We have North Virginia, Oregon, Sydney,
and Frankfurt. I want to build my solution in North Virginia. With that selected I'm gonna go
ahead and get started.
First you have to provide a name for your Amazon Connect instance. I'm going to use
kinectecinc as my choice.
With that selected, I'm gonna go ahead and press next step. We now get the option to create an
administrator. I'm gonna skip over this part as I will use my Amazon Connect log on to
administer the instance. Next, we get to see some telephony options. By default we have
incoming calls enabled as well as outgoing calls. This is just what I need, so we're gonna go next.
Data storage is also completed for you automatically. Amazon Connect will build an S3 bucket
and store all the call recording and reports in those S3 buckets. With no changes needed I'm
gonna go ahead and press next step. Finally we get to review and create our instance, to check
over all the information. Once you're happy go ahead and press create instance. Amazon Connect
will take a minute or two to build. There we have it.
Congratulations, your very first contact center is built using Amazon Connect.
Claim your first number
Now that we have our instance built, let's go ahead and start claiming our first number. We'll
continue by clicking on Get Started.
This is now logged me into my Amazon Connect instance. You can you see the url at the top
with the instance name that I provided. Amazon Connect provides you a help wizard. We can
continue by pressing Let's Go.
In here we're going to claim my first phone number. I'm now able to select from the available
country list, the numbers that I would like to connect to my Amazon Connect instance. As I'm in
North America, it doesn't actually limit me the numbers I can provide.
I'm going to go and choose the United States. I have direct dial selected by default, or I could
choose a toll free number. Expanding the list, I've got a list of five options. I'm gonna go ahead
and choose the top one and press next. Okay, I'm now ready to make a test call. Using my phone,
I can go ahead and place a call into my Amazon Connect instance. Okay so I have to dial +1
254-294-9311. I'm going to put my phone on speaker so you can hear the menu.
- [Phone Automated Voice] Hello, thanks for calling. These are some examples of the Amazon
Connect Virtual Contact Center can enable you to do. Press one to be put in queue for an agent.
(Phone keypad beeps) Two to-- Thank you for calling. Your call is very important to us and will
answered in the order it was received. - [Instructor] Okay, my calls come through to my agent
and we're gonna press accept. The call is now connected and as you can see, I have the contact
control panel available on my browser. The customer's connected. I've got the ability to press
hold, resume the call, or I can transfer if I wanted to transfer to another agent.
I'm gonna go ahead and end the call. My agents is now put into AfterCallWork. I will remain in
AfterCallWork until I select available. I'm gonna go ahead and move the agent back into
available. And there we have it, we've now placed our first call into our contact center and
answered that using the softphone.
Log in to your instance
Once you have created your Amazon Connect Instance, you will need to log into this to
administer it. From AWS console, type connect and click on the link. Underneath instance alias,
click on your link. On the right hand side we simply click login as administrator.
Navigate the Connect UI
Okay, now we've claimed a number. Let's skip over the wizard and have a look at the connect UI
As you can see, Amazon Connect, we've got the URL at the top for instance. On the right-
hand side, we've got the logged-in user. Which is my IM user from the AWS console. I have an
exit option so I can logout. I can change the language of the connect UI. And I can press on
the phone option to bring up the contact control panel or CCP. CCP is the UI that the agents
and supervisors will use to make and receive calls. Looking on the screen, I have the ability to
change my status. If I click on the drop down I have the available options by default of
offline and available. We can edit those later in the course as we go.
I have the ability to press dial number, I could choose the destination, enter the phone number in
dial. Or I can look at quick connects, which show a list of speed dials that are available by
default. Currently there are none displayed. We will configure those later in the course. I also
have an option of a cob if I click on here, we've got three features.
At the moment CCP's configured there's a softphone, so I'll be making and receiving calls over
my browser connection. I have the ability to use a desk phone. Amazon connect will place a call
to my phone, and when answered I will use CCP to control that device. But the audio will be
going over the phone.
I then have the ability to download local logs, to help trouble shoot or change the language of the
connect UI.
Finally, if we have a look at the URL we can see it's a very specific URL. You can provide this
to agents and supervisors, so they can log directly into CCP.
Closing the window, we'll have a look over the connect dashboard. The dashboard shows the
guide, we can hide this. And then it will show us our queue information and reports that we've
configured.
On the left hand side we have the menu options. We've got metrics and quality, rou ting, and
users.
We'll explore all of these in greater detail throughout this course.
If we look over routing and have a look at contact flows, you can see by default there are some
contact flows provided and some sample queues as well.
If we click on this, we will see the contact flow designer. This is a drag and drop interface, to
help you build and configure your contact flows. You don't need any third party tools, or any
other software. You just use this builder and simply drag and drop onto the canvas.
Porting numbers
Migrating your workload to Amazon Connect will require some consideration around any
inbound and outbound numbers that you may be using. If you have an existing contact center it is
highly likely that you have at least one number and maybe hundreds or even thousands. When
migrating to Amazon Connect there are a few options to consider. If you're able to use the
Amazon Connect provided numbers, this will be the quickest and easiest way. Simply configure
and publish these numbers as you need. However, if your numbers are printed on collateral such
as websites and physical objects than this isn't likely to be an option and you may need to
explore other options. Number porting in one such option. Amazon supports porting of
numbers into Amazon Connect. Another option depends on if you have non-geographic toll-free
numbers. You can ask your current telecommunications provider to route to the new Amazon
Connect DIDs. Your customers will still dial the same numbers and you'll be benefiting from
Connect. You need to consider a few items when porting numbers.
Only some countries are supported. The list of supported countries as of this recording is the
United States. You can port DIDs and toll-free numbers. The number porting process can take
several weeks to complete. The process for migrating the numbers is worth understanding and
carefully considering. In many cases when you migrate the number you're effectively going to
migrate your workload over to Connect. To make this process as smooth as possible you should
first build out your routing using the number provided from Amazon Connect. Complete all the
testing and training required and only once you're happy submit the porting requests to Amazon.
The porting requests will take several weeks to complete. Amazon will first check that the
numbers are suitable for porting and then require you to complete a letter of authorization which
is sent to the owner provider that allows the porting to take place. Once Amazon receives a date
for the ports they'll inform you and make the numbers available to configure and you'll Connect
instance. It is then advisable to immediately configure your Connect instance sending the newly
available numbers to the right contact flows, updating quick dials and queues as required. There
is a lot of information when thinking about number porting. Amazon has a lot of great detail at
this link which I recommend you review before requesting your numbers to be ported.
3. User Configuration
Users within Amazon Connect includes agents, supervisors, QA personnel, and
administrators, plus any other groups you may require. The image shows your
interactions between the different configuration items within Connect and how they link
together. When you create a user, you must assign a security profile. This will determine
the user’s permissions. For example, the difference between an agent and a supervisor is
the security profile. Assigning an agent to a hierarchy enables you to report on groups
and groups of groups within the reporting system. An agent can only be assigned to a
single routing profile. A routing profile determines what types of calls the agent can
receive and the queue priority. Routing profiles and queues are grayed out as we shall not
be discussing them in detail within this chapter.
However, their inclusion aids understanding and helps make the routing to users in a
later chapter. Let's take a look at each element and don't worry, there is a summary cheat
sheet coming up.
Hierarchies are used to group agents together. They are not mandatory and you can add
them later if required. They are very powerful for filtering on real time and historical
reporting. You're able to create up to five levels and you can assign agents to any level.
From KinetEco in Content Center
, I've decided to create the hierarchy as such. I have used all five levels, but you don't
have to. I've organized this to focus on business processes over location but you can
configure this however you choose. The orange boxes are the different levels and the
gray boxes are the groups that I've created within. You can see I have UK twice, these
belong to different departments and so are not a duplication. The agent Athiya is assigned
to Moe's team located in London, the UK and works within the service function. The
agent Vic is assigned to Bob's team, located in Nottingham, UK and works within the
sales team. I don't currently have groups within North America, Nottingham service and
London sales. I can add these at a later date as KinetEco grows. And when filtering and
reporting, I can drill down to any of the gray groups.
Security profiles are used to assign privileges to users. By default you're provided with
four profiles. Agent, contact center manager, QA and admin. Each profile is built to allow
permissions from the options available. You can define to a very granular level, you can
then assign one or many security profiles to your users as required.
Routing profiles are used within queues to agents. A user can only be assigned to one
routing profile. However, you can have many routing profiles and make very complex
routing behaviors. A routing profile determines the outbound caller ID presented when
the user makes an outbound call as well as the priority of the different queues.
And finally, users. You can create users via the Amazon Connect UI one by one or with
an upload of a CSV file. When creating users, you specify the name, login ID, email and
password. You also get the options of auto-answer so the user will not have to press
answer and a call will simply connect. Another option is after-call work timer. The timer
will force the user out with a after-call work state once the timer has passed. You don't
need to assign a hierarchy, but when you do, you can only do one.
Agent statuses are used to record which status an agent is in. By default, you have
available, which is a routeable state, and offline which is a non-routeable state. You may
wish to include further states such as lunch, break, meeting, investigation, et cetera.
States are global and can be deactivated as required.
There is a lot of information that we've just ran through. This cheat sheet will help you
remember all the elements, their relationships, and help you grasp the concepts
implemented within Amazon Connect.
Create an agent hierarchy
Creating agent hierarchies is very simple. I've already created my design for KinectEco.
And so let's build this out. I've logged into the Connect UI and I'm going to use the left-
hand side bar menu to select Users and then Agent Hierarchy. Firstly, I'm going to
create my five levels. I'm going to start with Company as my level one. And then I'm
going to add another level by clicking on the plus icon. And this is going to be called
Department. I then continue adding levels and building them up. Adding my third,
which is Country, my fourth, which is City, and finally, Supervisor. Once I'm happy
with those levels, I'm going to click save to save the changes. And you can see the
confirmation that that's been completed. Now that my hierarchy is completed,
I'm now able to add my groups. Scrolling down, I can see that I've got my first level,
Company. And within here, I'm going to add my company KinectEco. Once I'm happy,
press on the tick, and that's now saved. I'm going to click into KinectEco, scroll down
again, and now I'm in my level two for Department. This time, I'm going to add two
departments: Service and Sales. Now my Service and Sales are completed,
I can go into each of those and add my country. Opening up Service. I'll add my
countries, which are U.K. and North America. I can now go into my U.K. country and
add my cities which are Nottingham and London. I'll now go into London and add my
Supervisor groups for Jeni and Moe. I now need to go back up a few levels, back to my
sales organization.
Clicking on KinectEco, as my company, I can now go back down into Sales. In Sales, I'm
now going to add my countries. I have U.K. and North America. Clicking into my U.K.
country, I'm going to add my cities of Nottingham and London. And finally, within
London, I'm going to create my supervisor of Bob. I've now completed building up my
hierarchy as per my design.
Create security profiles
I've logged in to the Connect UI, and I am going to use the left-hand side bar menu to select
users and then security profiles. The four shown are provided by default. They will likely
provide you with a solid foundation, and you may only want to tweak a few elements to start
with. From this one page you can see what permissions each profile has been granted. For
example, the Agent profile is allowed full access to all CCP features, and Admin has access to all
features.
Let's have a closer look at the Agent profile. By clinking on the link, we are taken to the edit
security profile page. In here we can edit anything apart from the name. Scrolling down and
expanding routing, we can see that there are no permissions provided for this security profile,
this is as expected. On the left hand side we can see the different routing permissions, and on the
right we can can see the type of permission being provided. Some of the checked boxes are
grayed out, this is because that permission is not applicable for that feature. Expanding the other
boxes we can see that only CCP has any permissions assigned. Okay, let's go ahead and create a
new security profile, that we'll call Coaches. Going back in our browser, we're taken back to the
manage security profiles page. If I hover over the Agent I get a new icon, that enables me to
copy the profile. On this occasion I don't want to do that. So, I'll click on the add new security
profile button, on the top right. I'll give it a name, Coaches, and the description is, read only for
reporting and metrics. Okay, to enable these permissions I need to expand metrics and quality.
Scrolling down we're gonna open metrics and quality. To enable reporting I'm going to grant all
permissions to metrics, content search and login/logout reports. To enable manager listen in I'm
going to check all here to. However, for call recordings and saved reports, I don't want to select
all. As you can see when clicking on all for call recordings, this profile will then allow users to
listen, download, and delete recordings. I only want these users to have the ability to listen. So
deselected all, clears the permissions, and now I can just select listen. I then want to allow these
users to view saved reports, but no other permissions. I can now save this profile and see it is
included within the full list. You may have noticed that I didn't grant permission to CCP. If this
new profile is the only assigned profile, then users will not be able to use CCP. When I create my
users, I will assign the security profile Agent and Coaches as you can layer security profiles on
top of each other.
Create users
I've loggedintothe ConnectUI and I'm goingto use the left-handsidebarmenutoselectUsersandUser
management.We cannow see the Usermanagementpage.However,we cannotsee anyusers,butwe
are loggedin.Thisisbecause we are loggedinas the administratorviaourloggedinAWSIAMprofile.
Let's addsome users.We'll addan administratoranda coach. We can do thisby clickingonAddnew
users.We're goingto do thismanually,sowe'll pressNext.OurfirstuserisSophie Smith.Herloginname
isgoingto be ssmith.Email isnotmandatory,sowe'll leave thatblank.We doneedto entera password
and repeat.We nowneedtogive the usersome permissionsandprofile information.We've notbuilt
any routingprofilesyet;these detail whatqueuesare tobe handledbythe profile.Fornow,we'll select
Basic RoutingProfile.AndasSophie'souradministrator,the securityprofile,we'llchoose Admin.If we
scroll downto the bottom,we can nowsee that the Save buttonhas illuminated,andsowe have met
the minimumrequirementstocreate a user.However,let'sexplainthe lasttwosections.PhoneType;
youhave two options,asoftphone or a deskphone.Softphone meansthe userwill make andrece ive
callsusingCCPwithvoice overthe browserconnectiontoconnect.Deskphone meansthatcallsare
receivedonthe numberprovided.Thispre-populatesthe CCPforthe users,anditcan still override this
if required.If the userupdatesthe number,it changeshere also.A little bitaboutthe mode of this
connectivity;if you're receivinganinboundcall,yourdeskphone will ring,anduponanswering,the
customerwill be connectedthroughtoyou.Youmust use CCPfor all call control,such as hold,transfer,
and disconnect.If you're makinganoutboundcall,Connectwill call yourdeskphone andthencall the
destinationnumber.Andagain,youmustuse CCPforcall control.Aftercall workisthe time that the
userwill spendafterthe customerhasdisconnectedandbefore the usermovesintoaroutable state,
such as available,oranon-routable state,suchaslunch.Thistime,it'scountedaspart of the average
handle time,orAHT.If youset a timerhere,please note the usercannotoverridethisand the usergets
no warning.Andfinally,AgentHierarchy.ForSophie,I'mgoingtoput herunderKinetEcoasshe'san
admin.We clickSave and thenwe can review ourentry.Now clickCreate users.We now get the option
to create more users.However,we'll clickbackjustsowe can see our newly-createduser.We'll now
quicklyaddanotherusercalledBobbyclickingonAdd new users,selectNext,andprovide the required
information.Sowe'll enterBob'sfirstname.Hissurname isJones.Hisloginname isbjones.We'll leave
hisemail blankandwe'll sethispassword,andrepeat.Bobwill have the same routingprofile,Basic
RoutingProfile,andoursecurityprofile isCallCenterManager.We'llchange hishierarchytobe KinetEco,
Sales,UK,and Nottingham,and we'll pressSave.Now tocompleteBob'screation,we'll justpressCreate
usersand Back. Nowwe can see our twousersthat we've justcreated
Create users in bulk
Let's lookat howto bulkcreate users.I've lockedintothe ConnectUI,I'm goingto use the leftsidebar
menuto selectusers,andusermanagement.Fromhere,I'mgoingtopressaddnew users.Andnow,we
getthe optiontouploadfroma template.Butfirst,we needtodownloadthe template.Clickingonthe
linkwill downloadthe CSV fileforusand thenwe can openthisinExcel.I'm justgoingto expandthe
headerrowfor you,justso youcan see andjustzoomin a little bitsowe can read that clearly. We're
providedwithaheaderrow,whichismandatory,anda secondrow isan example of auserwhichwe
needtodelete beforeyouuploadthe file asitwill error.We're goingtoadd twousersintoour profile.
First,we're gonnaadd VicWhite.We're goingto leave hisemail addressblankandseta password.The
userloginwill be vwhite andthe routingprofile name will be basicroutingprofile.Forthe security
profile,we're goingtochoose agent.The phone type will be asoftphone.We don'twant to auto accept
and the aftercall wait timerof zerosecondswhichmeansthere isn'tone configured.Andthatisnow
readyfor Vic.We'll copyVicintoa newrow and we'll amendhimforAthiya.AthiyaKumarwithalogin
as akumar andeverythingelsethe same.We'll save thatfile,butfirst,we needtodeletethe secondrow
and nowwe're readyto save the file.We'll headovertothe ConnectUI and we'll pressnext.We'll
choose our file,openafile andlookatthe verificationof it.We cansee we're gonnacreate twonew
users,VicWhite andAthiyaKumar.They'll have the basicroutingprofile,securityprofileof agentand
our configurationitemsisexactlyhowwe wantthem.We'll clickoncreate usersandnow we have a
statusof done andwe can clickback and now we can see the listof our usersthat we have justcreated
viathe bulkuploadprocess.Agenthierarchiescannotbe setwithinthe bulkupload,butwe canbulkedit
them.If we clickon AthiyaandVic andwe go into edit,we couldupdate the hierarchiesforbothof
themat the same time.However,theirbothindifferentgroups,sowe needtodothemone byone.We
do Athiyafirst,we gointoedit,selecthierarchy,we're goingtoKinetEco,department,she'sinservice,
she'sinthe UK, Londonoffice andunderJeni.We'll presssave.Now we dothe same forVic.KinetEco,
thistime insales,inthe UK, Londonoffice andunderBob.Andall that's beenreflected.
Create agent status codes
Let's have a lookat creatingsome agentstatuses.Onthe left-handside we choosethe usersmenuand
downto agentstatus.We can see we have twoby default.We have availablewhichisaroutable state,
or offline whichisanoffline state.Theseare mandatoryandare preconfiguredbyKinect.We canadd a
newstatusby clickingonthe add newagentstatus.I'm gonnacreate a new one forlunch.Thiswill be
usedforwhenour agentsgo onto a break.We'll enterthe name andjustpresssave and it's created.
We'll doanotherone.Thistime for meetings.Provideaname and a descriptionandpresssave.And
there theyare.Andtheywill be available withinKinectwithinabout60seconds.Youcannot delete
agentstatuses, butyoucan deactivate themasrequired,whichpreventsthemfrombeingdisplayed
withinCCP.Youcan alsodrag themaroundon thisscreenlike this.If youpresssave thiswill be updated
withinthe agent'sCCPto be the order displayedonthe screen.Andfinally,agentstatusesare global.
4. Routing Configuration
The configurationof inboundcall routingwithAmazonConnectcanbe distilledintothispicture.
Users are grayed-outastheywere discussedindetail inthe previouschapterof the course.
However,I've includedthemhere tolinkthe twotogether.So,how doesthisall work?Ata high
level,usersare configuredwithasingle routingprofile.Routingprofilescontainone ormore
queuesandsetthe priority.Queuesare usedtogroupcontact typestogetherandmusthave
openinghoursconfigured.Quickconnects,thinkspeeddials,are createdand assignedto
queues.Queueshave aphone numberconfiguredthatisthenusedas the callingline identity
for callbacks.Call routingandIVRscriptsare knownascontact flows.These contactflowsare
where youwill spendalotof your time andinclude prompts,queues,andmanyotheraction
blocks.There'sa lotto thinkabouthere,solet'sbreakthese down.We'll firstlookatqueues.
These are usedto segmentcontactsintogroups,thinkservice orsales.If noagentsare free,
thenthe queue will keepthe contactonholduntil someone becomesavailable.Real-time and
historical reportingcanthenbe filteredbyqueues.Queueswill route toagentsthathave the
queue withintheirassignedroutingprofile onafirstcome,firstservedbasisstartingwiththe
longest-availableagent.Andfinally,queuescannotbe deletedasthisaffectsthe reportingbut
youcan deactivate them.Routingprofilesjoinagentstoqueueswithsome additional logic.A
routingprofile canhave one or more queuesconfiguredandyou can applyprioritiestothe
queues.Thismeansfora particularroutingprofile,contactsinservice canbe the priorityone,
withsalescontactsas prioritytwo.Thisensuresthatthe agentsonlyhandle salescontactswhen
there are no queuingservice contacts.Youcan alsoadd a delay,inseconds,betweenthe queue
selectionsothatservice contactsare answeredfirst,waitx numberof seconds,thenanswer
contacts fromsales.Thisfeature isveryuseful foroverflow routing,orforring-fencingsome
groupsof users.And,finally,eachroutingprofile needsanoutboundqueueassigned.Thisis
usedforreportingbutalsofor outboundnumberpresentation.Hoursof operationare created
and assignedtoqueuestosetthe openingtimesforthatparticularqueue.Youcancreate
multiple policies,eachpolicyhasmultiple rowstobe usedforeach dayof the week,withan
hourlyrange.Andone policycan onlycoverone time zone.Youmustcreate the hoursof
operationpolicypriortocreatinga queue asthese are mandatoryfor queue creation.However,
youcan override the sethourswithinthe contactflow,asrequired.Quickconnectsare like
speed-dials.These are presentedwithinCCPforthe agentstouse.A quickconnectcan be an
external number,anagent,ora queue.Quickconnectsare global howeverthey're assignedto
queuesandsoare onlypresentedtothe agentthathave those queueswithinthe assigned
routingprofile.External quickconnectscanbe seenall the time withinthe CCP,whereasagent
and queue quickconnectsare onlyvisible whenanagentisservicingacontact. Updatesto quick
connectsare dynamicandtakesaroundabout a minute tobe seen.Phone numbers,nice and
simple here,yousimplyassignthe numbertoa single contactflow.However,justbe aware that
whencreatinga numberitwill take ashort while forthe numbertobecome dialable.Prompts
are usedto playpre-recordedmessagessuchasqueue musicor messagesforthe IVR.They
mustbe 8kHz, .wavformat,and below 50 MB insize.Youuploadpromptsdirectlywithinthe
ConnectUI, or youcan evenrecordandeditdirectlywithinthe browser.It'sworthnotingthat
manyof yourIVR flowsmightwell utilize the text-to-speechengine withinthe contactflows.So,
it's likelythatyouwill have justafew promptstomanage.Andfinally,contactflows.Thisis
where all yourroutinglogicwill be managedtocreate IVRflows,setlogic,call recording,
callbacklogic,etcetera,alongwithcontact filteringandconnectivitytoexternal services, such
as Lex and Lambda.Contact flowsare createdusingthe drag-and-dropinterface withinthe
ConnectUI, and youcan exportandimportcontact flowsas JSON files.There are manydifferent
typesof contact flowsthatare usedto handle the customerandagentexperiences.Asaresult,
the AmazonConnectteamprovide youwithaset of default,pre-configuredcontactflowsto
helpyouto getup and runningmuchquicker.There'salot to rememberhere,sothissingle
page bringsall the keyinformationbacktogetherforyou.Go aheadand spendtime on
understandingthe relationships.
Create hours of operation
Creatinghoursof operationisfairlysimple.Iwantto create a new policythatsetsthe openinghoursfor
salesandservice queuesfrom9a.m. to 5 p.m. MondaythroughFridayand Saturday9 'til 12 and 1 'til 3.
Withinthe ConnectUI let'sgo to the routingoptiononthe leftanddownto hours of operation.Inhere
we have the basic hours,whichisthe policythat'sprovidedbydefault.Onthe right-handside we're
goingto add our newpolicy.Sowe'll clickonaddnew hoursand provide aname.I'm goingto provide
thisname Service&Salesastheywill have the same openinghours.Anddescription,we'lljustput
openinghoursforservice andsales.Scrollingdownslightlywe cansee the differentrowsforthe
differentdaysandthe hoursthat are assignedtothem.We have a time zone onthe leftand we're
gonnago aheadand set thisto be Phoenix.Iwantmyhoursto be Monday throughFriday9 a.m.'til 5
p.m.,so that'sgood. SaturdayI wantthisto be 9 a.m. to 12 p.m.So we'll goaheadand change it to be
closingat 12 p.m.I nowwant mylinestoopenfrom1 p.m.on Saturday.But I don'tneedSundaysoI'll
repurpose Sundaytobecome Saturday,andthenthisbe 1 p.m.and change itto be closedby3 p.m. And
that's my hoursof operationspolicythat'sbeencreated.I'll goaheadandpresssave.Andnow I can use
that policywithinmyqueue assignments.
Create queues
For my qualityqueue routine Iwanttofiltercallsbyservice andsales.Solet'sgoahead andcreate two
newqueues.Fromwithinthe ConnectGUI,go to Routinganddownto Queues.Tocreate a new queue,
we simplyclickonAddnewqueue.Inhere we needtoprovide aname.I'll create myservice queue first.
Enter service.Andthe description.We needtosetthe hoursof operation,we canuse the drop down
box to selectthe hoursthat we require.Forthis,I'mgoingto use service andsales.We have the option
to provide acallerID name.For this,I'mgonna setmine toKinetEco.The outboundcalledIDnumber,
choose fromthe dropdown,isthe one we createdwhenwe builtthe instance.Andthe outbound
whisperflow,we will use the defaultwhenitisprovided.Thisisusedtosetthe outboundexperience,
such as the callercallingbehaviorandanymessagesthatare playedtothe customerbefore connecting
to the agent.Withall thatnow set,we have the optiontoletthempause inqueue,bypressingonthe
Seta limit.Settingalimithere affectsthe wayyoubuildyourcontactflow.The actionblockof transfer
to queue hasa at capacity output.Once thislimitisreached,the subsequentcontactswillflow down
that route.Thisisgood foroverflowroute,suchasofferingcallbacksinqueue tosmoothoutthe peaks.
I'm not goingto needthis,soI'll deselectit.Ourlastoptional itemsare the quickconnects.I'mgoingto
leave thisblankfornow,aswe've notconfiguredanyquickconnectsjustyet,andwe'll come back to
that later.To save the queue,we goback to the top onthe righthand side andclickAddnew queue.We
nowneedto adda secondqueue forsales,sowe'll clickonAddnew queue andwe'll entermysales
information,provide aname anda description,selectthe hoursof operationfromthe available list,the
outboundcallerID,alongwiththe outboundcallernumber,andthe contactflow.We are goingtoleave
the contacts inqueue limitblank,andagainthe quickconnectsblankaswell.Backto the top,clickon
Addnewqueue.Nowwe cansee the two new queuesthatwe've created,forServiceandSales.
Create quick connects
My agentsare goingto needtocontact other agents,teams,andcompanies.Tosupportthis,I'll create
some quickconnects.Fromwithinthe ConnectUI,go to Routing,anddownto quickconnects.Creating
a quickconnectis a simple process.We'll clickon the "Addnew"button,whichaddsanew line right
here on thispage forus to complete.First,I'll create anexternal quickconnect.We needtoprovide a
name.Thiswill be displayedwithinCCP.I'll call thisone "Dispatch."The type isgoingtobe external,and
the destinationisanexternal number.Thisneedstobe formattedasanE.164 number,andfinally,we
needtoprovide a description.I'll simplyjustcall thisone "Dispatch."Tosave the row,we justpress
"Save,"andnowour quickconnectis available.Thiswill be displayedwithinCCPwithinabout60
seconds.Let'snowadd a newone for eachqueue,service andsales.We'll clickon"Addnew row,"we'll
provide aname,we'll correctthe salesonesfirst.The type isgoingto be Queue.The destinationisgoing
to be the salesqueue,andthe contactflow isgoingto be the defaulttransfercontactflow.Beneath,for
our description,we'll provide "Sales."We'll thenaddasecondrow,whichis forservice,andwe'll dothe
same again.Type is queue, destinationservice,contactflow default,anddescriptionis"Service,"and
we'll goaheadand save those,andthe last quickconnectwe'll addisto an agentfor our call center
manager,Bob Jones.We'll goaheadandadd a new row.We'll provide the name asBob, the type is
goingto be agent,and inthe drop-down,we'll findBobJones.The contactflow will be the defaultagent
transfer,andthe descriptionwillbe "EscalatedCalls."We cannow go aheadand press"Save."Great,so
nowwe've addedthe quickconnects.We needtoadd themto the queuesbefore agentscanuse them.
Overon the menuon the left,goto Routinganddownto Queues.We'll update ourservice andsales
queues.First,we'llupdate the servicequeue.We clickintothe service queuethenscroll downtoquick
connects.If we clickon the quickconnects,itwill bringupthe listof available quickconnectsforus.For
the service queue,Iwantthe teamsto have the abilitytocall sales,andalsoBob,and, finally,dispatch.
Once we're happywiththe quickconnectsassignments,we'll scroll up,andwe'll press"Save"onthis
queue.We'll nowgointothe salesqueue anddothe same.Downto quickconnects,butthistime
addingthe service,Bob,anddispatch.We go back up tothe topand save thisqueue.A few tipshere.
Onlyexternal contactswill be visible inCCPall the time.Agentsandqueueswillbe visible onlywhenthe
agentis ona call,andthe agentwill see all of the quickconnectsforthe queuesthatare in theirrooting
profile.
Create routing profiles
Nowthat we have our queuescreated,we cango aheadandcreate ourroutingprofiles.These will be
signedtoour agentsto provide the call routingconfiguration.Fromwithinthe ConnectUI,go toUsers,
and downto Routingprofiles.We cannow see all the routingprofiles.You're able tosee how many
agentshave eachprofile,andhowmanyqueuesare assignedtoeach.A useful snapshot.We needto
create two profiles,one forservice,andone forsales.Tobegin,clickonAddnew profile.The firstone
we'll create will be the service profile.Let'sgive itaname.For this,we'll justcall Service,andthe
description,we'll provide aService Profile.Great.Soforthisprofile we're onlygoingtohandle one
queue.Justscrolling downonthe screenslightly,we cansee the areawhere we're goingtoassignour
queues.Usingthe dropdown,we canselectService.We canleave the prioritiesone,andwe won'thave
a delay.Therefore thisroutingprofileisgoingtobe dedicatedforjustservice contacts.Finally,we're at
an outboundqueue.Thisisusedtosetthe outboundphone number,andforreporting.Justscrolling
down,we selectthe box,andwe'll provide the Service queue.Once we're happy,we canscroll back up
to the top, and clickAdd newprofile.Andnow we'vecreatedourservice profile.We cango aheadand
create the salesprofile.ClickonourAddnew profile,we canprovide the name Sales,the descriptionis
SalesProfile.Butthistime we're goingtoadd twoqueues.The firstqueue we'll addisthe salesqueue.
We'll clickon the dropdown,selectSales,andwe have apriorityof one,and a delayof zero.To write a
secondqueue,we clickonthe Addqueue button,andthiswill addanotherrow.Forthis,we're goingto
selectthe service queue.ClickingonService,thisisnow settopriorityone,andthe delayinseconds.But
thisisnot howwe wantit.What we want to happenisforthe salesagentstohandle the salescalls,but
thenhandle the service callsonce there'snosalescallsavailable.Forthiswe can change the priority.We
change it fromone to two.This will meanthatall the salescallswill be handledfirst.Thissoundsgood,
but whatwe want to dois avoidoverworkingoursalesagents.SoIwantto add a delaybetweenthe
time that the service callswill be routedtothe salesagents.Forthiswe canuse the delayinseconds
box.In here,I'mgoingto change it fromzeroto 20. Thiswill meanthatthe service contactswill have
had to have queuedforatleast20 secondsbefore beingconsideredforthe salesagents.Great.NowI
have the queue spacinghowI wantthem.I'm gonnago downto the bottom, and selectthe Default
outboundqueue asSales.Withthatnowconfigured,Ican go backup to the top, and clickAddnew
routingprofile.Withourprofilesnowcreated,let'sgoaheadandassignthemto ouragents.Head over
to userson the left,anddownto User management.We needtoassignournew routingprofilestoboth
AthiyaandVic.To do thiswe'll select Athiyafirst,clickonthe row and pressEdit.Under the Routing
Profile selectionwe're goingtoremove the BasicRoutingProfile andreplace thiswiththe Service.We'll
justpressthe cross, selectthe dropdown,andchoose the Service profile.We cannow scroll to the
bottom,andpressSave.We can nowdo the same for Vic.We'll clickon hisname,Edit,delete the
existingRoutingProfile,andaddSales.Godownto the bottom, andpressSave.Andthat's it.We've now
createdour twonewroutingprofiles andassignedthemtoourusers.
Create an IVR contact flow
Contact flowisthe wayall the IVRmagichappens.Creatingcontactflowsare completedwithinthe
ConnectUI. So, let'sheadoverto the Routingmenuanddownto Contactflows.We're goingtocreate a
contact flowforKinetEcoInc.'smainmenu.Clickonthe drop-downarrow to the top right.We'll bringup
the listof templates.Youneedtouse the rightcontact flow foryour use case.We're creatinga normal
contact flow,sowe'll clickonthe top one,Create contactflow.Thisopensupthe Flow Editor.Firstly,
let'sgive ita name and a description.We'll call thisone KinetEcoMainMenu.Andif you clickon the
additional flow information,itgivesyouthe optiontoprovide adescription.We'lljustsimplyprovide
the same one again.On the left-handside,youcansee the drop-downsections.Theseare groupsof
actionblocks.Undereach groupare differenttypesof actionblocks.You'll alsogetdifferentaction
blocksbasedonthe type of contact flow youcreatedto ensure you've createdthe rightcontactflow,if
you're wonderingif somethingismissing.Forthe complete descriptionof contactactionblocks,please
see thispage.We're goingto buildasmallerIVRto beginwiththatwill welcome ourcallers.We'll open
the Interactgroup, andwe'll drag the Playpromptactionbloc ontothe canvas. Justsimplysingle-click,
drag, and drop.Double-clickandnowthe actionblockwill allow ustodrag itaround the canvas.With it
nicelyaligned,I'm nowgonnaconnectthemtogether.A clickon the exitentryfrom Start andput that
intothe Playpromptentrypoint.We now needtoconfigure the Playpromptactionblock.Clickinonce,
and the top blue barof the blockwill openthe configurationpanel. Idon'thave any promptsto use
here,soI'll be usingthe Textto speechAdhocoption.I wantmy welcome greetingtobe Welcome to
KinetEcoInc.,yourrenewable energycompany.Once we're happy,we'll pressSave,andthiswill close
the configurationmenu.Next,we wanttoadda small menu.We dothisby draggingthe Get customer
inputfromthe left-handbarintothe canvas.Andlet'sconfigure thisblock.Single-clickonthe blue bar,
will openthe configurationitem.We'llstartbyenteringourprompt. Thiswill be playedtoourcallers,
justup to the welcome message.We selectTexttospeech,andwe'll enter, please pressone forservice
or two forsales.Forthe customerinput,we have DTMF alreadyselected,andthatworksforus. We
needtoallownumberone andtwoas validinputs.Todothis,we'll clickonthe linkat connection.Thisis
justslightlybelow. So, if we scroll down,we clickonAddanotherconnection.Forthe Option,we're
gonnaallowone,scroll downagain,we'll addanotheroption, andoptiontwo.Once you're happy,click
Save,andwe nowhave five exitconnectionsfromthiscustomerinput.We're goingtonow setthese
newoptionstoreach to eachqueue.Withinthe setgroup,menuonthe left,dragtwoset queuesfrom
the group onto the canvas. We now needtoconfigure these queueswiththe rightqueueselection.Just
gonnamove the canvas intoview,left-clickonthe setqueue.The firstone isgoingtobe the service
queue,sofromthe drop-down,IselectService andpressSave.The secondsetqueue isgoingtobe
Sales.SelectSalesandpressSave.Withthe queuesset,we now needtocheckthe openinghours.Go
back overto your groups,thistime,openBranch,anddrag the Checkhours of operationontothe
canvas.There is noadditional configurationrequiredforthisblock,asI'mhappywiththe hours assigned
to the queue.ButI couldhave arrivedthemhere if Iwantedto. Let'snow add a transfertoqueue action
block.Onthe left-handside,godowntoTransferandTerminate,scroll downslightly,anddragthe
Transferto queue optionontothe canvas.I justwantto adjustmy canvasslightly,soI'mgonna scroll
overand drag the actionblockinto the place that I wantit to be in.Firstly,we needtohandle anyerrors.
For this,we'll dragthree Playpromptsandtwo terminate actionblocksontothe canvas.UnderInteract,
we'll dragout Playprompts,one,two,three.AndunderTerminate andTransfer,we'll dragout
Disconnectandhang ups.The firstPlaypromptsthat we'll customize isourerrorprompt.Thiswill say,
we apologize,there hasbeenafault,pleasetryagainlater.Clickinonthe blue menuforfirstprompt,
will openourconfigurationitem,selectTexttospeech,andI'mjustgonna paste inmy errormessage.
Once I'm happyI'm gonna pressSave,andthat now configuredourPlayprompt.The secondPlay
promptis goingto be our closedmessage.Clickonthe configuration,selecttexttospeech,andpaste in
our information.Andonce we're happy,we're goingtopressSave. Andthe final promptisgoingtobe
anothererror message.It'll be the same asthe one before.We're gonnacopythat out, selectTextto
speech,andpaste that in.Okay,withthose configured,I'mnow goingto rearrange themonthe canvas
and connectthemup.Just gonnazoomout slightlyjustsowe can see more of the canvas. Andgonna
drag one of the Playpromptsdownto here forthe error message.I'mgonna connectall the errors.And
fromthe queues,we're gonnaconnectthose errorstothe same Playprompt.The exittothe Play
promptis goingto disconnectthe caller.Withthe disconnectbox aligned,I'mjustgonnaconnectthose
up.I'm now goingto connectto myGet customerinput.Foroptionone,thisforService.I'mgoingto
selectoptionone anddrag thisoverto our Service queue.Andforoptiontwo,downtoour Salesqueue.
The successof these queueswill gointothe Checkhoursof operation,sowe'll dragthose over.If we're
out of hours,we're goingto playthe out of hours message,whichwe've alreadyconfigured,andany
errorsare gonna getto the error message.I've gottwoerror promptspurelyforaesthetics.Idon'treally
like linestobe crossed.Sometimeswe can'thelpit.If the queue isinhours,we're gonnaconnectto the
inhours to the Transferto queue block.If we're atcapacity,we're goingto playan error message,andin
errors,we're alsogonnaplay an errormessage.We can come back and adjustthose later.Withthose
configured,I'mnowgoingtojust connectoverto Disconnect.Dragit outover,connectfrom ourPlay
promptsintoour Disconnectbox.Andthe final connectionwe needtomake isfromthe welcome
message toour mainmenu.Now,thatwe've connectedall the pathsup,we needtosave and publish
our flow,sowe can connectour numberstoit. Atthe topright,clickon the drop-downnexttoSave,and
clickon Save and Publish.Once thisispublished,we're now gonnagetthissignifiedbythe green
Published,andwe see the Successmessage.Publishingacontact flow takesashort periodof time to
update,soif you're too quick,youwon't getthe resultsyouexpected.Withourcontactflow now
published,let'sgoovertophone numbersandconnectthemup.Head overto the Routingand downto
Phone numbers.Sofar,we've onlyaddedone number.Let'sassignthisnumbertothe new routingthat
we've justprovided.We'llclickonthe number,andunderContactFlow / IVR,we'll change thisto
KinetEcoMainMenu. Once we're happy,we can pressSave.Thiscontact flow isnow created,andnow,
we can place a testcall to testout our mainmenu. - [Computer] Welcome toKinetEcoIncorporated,
your renewableenergycompany.Please pressone forserviceortwofor sales. - [Instructor] Great,and
our mainmenuisworkingas expected.
Use SSML in your contact flows
The textto speechengine withinAmazonConnectusesAmazonPollywithdozensof languages
supportedinmale andfemale voices,youhave plentyof choice.However,there are some situations
that needsome more tailoredexperiences.Andforthisyou're able touse SpeechSynthesisMarkup
Language or SSML forshort. SSML allowsyouto create an improvedcustomerexperience byadjusting
speed,pitch,andpronunciationof words,andmuchmore.We'll use the Pollyengine tocraft out SSML
for our welcome prompt.Openthe configurationof ourPlayprompt,andcopy the welcome textinto
your clipboard.Headovertothe AWS console,andhere we'll searchforPolly,orwe can scroll down
ontoMachine Learningandclickon AmazonPolly. All the featuresandcapabilitieswithinAmazonPolly
are available onAmazonConnect.Sothisisa greatplace to try out yourmessagingtosee how itwould
sound.Let'shighlightthe preselectedtext,andpaste inourwelcome message,andlet'shearhow that
sounds. - [Woman] Welcome toKay-i-net-itcoIncorporated,yourrenewableenergycompany. -
[Narrator] Aswe can hear,the word Kinetisnotpronouncedcorrectly.Forthis,we canuse SSML to
affectthe speech.If we clickonthe SSML tab, we getto see the standard textagain,thistime route and
speaktext.Let'shighlightthe standardtext,andreplace thatwithourwelcome message.We needto
nowadjustthisword Kinet.We wantitpronouncedasI'm sayingit.For this,we needthe developer
guide. If we clickon the questionmark,you'll openanew window.If we scroll downtoSSML Tags
SupportedbyPolly,thisiswhatwe want.Here,we can see a listof all the SSML tags that are supported
by AmazonPolly,suchasbreak,emphasis,orphoneme.AndphonemeiswhatIwant,to affectthe
pronunciationof Kinet.If we clickonthislink,we scroll down,we canactuallysee anexample.Let'stake
a copy of this configurationtag.We'll headovertoPolly,andwe'll replaceKinetwithwhatwe've just
copied.We doneedto change thisslightly.Solet'sreplace pecanwithKinet.Thispartisn'tpronounced,
thisisonlyfor humanreadable text.The partthat's pronouncedisthisparthere.We needtochange
that to be Kinet.Forthiswe headback overto the SSML Tags window,andif we clickon the Phoneme
and Viseme TablesforSupportedLanguages,we selectAmericanEnglishLanguage,andhere we have
the alphabet.Iwant Kinettosoundwithani-net.Forthis,we're goingto keepK,butfor the i-net,we
needtoscroll downundervowels.Andhere we wantittosoundlike price.Sowe'll actuallycopythe ai.
Let's copythat overback intothe AmazonPollyconsole.Andwe'llputthe K,followedbythe ai,andnow
we needN-E-T.Let'sgo back overto the phoneticlanguage.We'll have alookforn.We'll keepthatas n.
We'll scroll downtovowelsagain.Andthistime we wante.For the e,I want itto soundlike dress.So,
I'm goingto selectthisletter.HeadovertoPolly,addthe n,paste inthe e,and finally the t.Now let's
listentohowthat soundsback. - [Woman] Welcome toKi-nay-ecoIncorporate,yourrenewable energy
company. - [Narrator] That's soundsmuchbetter.However,Iwanttoshow a pause inbetweenthe
KinetEco Inc.,and the yourrenewable energycompany.Let'sheadbackoverto the PollySupported
Textand let'ssee if somethingcanhelpusouthere.Back upto the top.Andwe want to add a short
pause,sowe'll clickonthat one,we'll scroll downslightly,andlookatthe example.Here,we'll highlight
the break,and we'll copythatoverinto ourAmazonPollyconsole.We'll paste thatin,butthree seconds
isfar too long.We're justgoingto adjustthisto a 250 milliseconds.Now,let'shearhow thatplaysback.
- [Woman] Welcome toKinetEco Incorporated,yourrenewableenergycompany. - [Narrator] That's
much better.I'mhappywiththat.So let'sselectall the text,andcopythat back overintoour Amazon
Connectmenuprompt.Thistime,we justneedtopaste thatin, butslightlyscroll down,andwe're
actuallygoingtointerpretthisasSSML. We'll selectandpressSave.We now needtoSave and Publish
our Contact flow.
Call back in queue
Addinga callbackoptionforyourcustomersisa good ideato improve customerexperience andsmooth
out yourpeakdemands.Solet'sbuildouta new contact flow thatwill promptthe callerthe optionto
requestacallbackevery90 seconds.We're goingtocreate a customerqueue flow andenablethis
withinourKinetEcomainmenucontactflow.Let'sheadoverto Routinganddownto Contact flows.To
create a newcustomerqueue flow,we selectthe dropdownbuttonhere andclickCreate customer
queue flow.First,let'sgiveitaname of KinetEcocallbackinqueue.Next,we needtoadda looped
actionprompt ontoour canvas.ExpandInteractand drag the looppromptsonto our canvasand connect
it up.Let's nowconfigure the looppromptactionblock.First,we wantto playa message toour
customers.Thiswill be TexttoSpeechandwe'll paste inthe firstmessage.Next,we wantthe customers
to hearsome queue music,sowe'll addanotherlooptoour menu.It'll be an audiorecording,andthis
time we'll playsome music.Andfinally,we wantthe optiontointerruptthismenuevery90seconds.
We'll enable Interrupt,setthatto90, andchange it to Seconds.We've now configuredourloopprompt,
so we can save thisconfiguration.We now needtoofferthe callbackoption.Forthis,we'll use aGet
customerinputactionblock.We'll dragthisoverto our canvas and connectitup. We'll now configure
thiswithour messaging.We simplypaste inourmessages.We now needtoscroll downandenable the
optionforthe callerto pressoptionone,andwe can save our configuration.First,we'llconfigure the
successroute.If the callerpressesoptionone,we wanttocheckthat we got the customer'snumber.To
do this,we wantto seta callbacknumber.We scroll downtoSet,expandthe group,and drag onthe Set
callbacknumber.We'll connectoptionone intoourSetcallbacknumberactionblock.We now needto
configure ourSetcallbacknumber.If we enable the menu,we now have the abilitytouse the attributes.
For here,we're goingtodo System,andourattribute isgoingto be CustomerNumber.If the customer
presentstheirnumbertoConnect,thiswillthenbe used,andwe canuse that to provide the callback.
We can nowsave and close that configuration.If we have the callbacknumberavailable,we thenwant
to playa successmessage tothe customer.Let'sscroll upand drag a playpromptontoour canvas.We'll
justslightlyadjustthe canvassowe can see the messaging.We cannow connectup Successand we can
configure ourplaypromptwithour messaging.We paste inourmessagesandpressSave.Withthe
confirmationmessagenowbeingplayedtothe customer,we now needtosetthiscallbackto a queue.
We scroll downunderTransfer,expandthe group,andbringonthe Transferto queue actionblock.We
can connectOkay to thisactionblock.Upon successof transferringtoqueue,we cansimplydisconnect.
That nowcompletesoursuccessmessaging.If the customer'snumberisavailable,we'llplaythema
thankyou message,we'll transferthemtothe queue,andwe'll disconnectthatparticularcall.Once an
agentis thenavailable, the customerwillreceive acallback.We now needtocomplete the error
handlingforourcontact flow.Forthis,I'm goingto keepitverysimple andkeepthe customerinthe
queue.We're gonnascroll upintoour Interactsection.We'll draga playprompt ontothe canvas and
thenanother,andfinallyathird.We also needaEnd flow / Resume actionblock.UnderTerminate /
Transfer,drag thisontothe canvas. For our firstplayprompt,we're goingtoconnectthisup fromour
Get customerinput.Soif a customerdoesn'tpressanyoptions,we're goingtoplaythema message and
returnthemback to the queue.We can configure ourplaypromptby clickingonthe blue bar,selecting
Textto speechandpastinginour message,save the configuration,andconnectup ourplay promptsto
the endresume flow.The nextplaypromptwill handle the customerif there'saninvalidnumberorthe
numberisnot dialable.We'llselectthese twooptionsanddragthemintothisplayprompt.We'll
configure thisplaypromptforTTS and paste inour message,save the configuration,andconnectupour
actionblockto the endflow.Finally,we needtohandle the errormessage incase the transfertoqueue
fails.We'll connectupthe Transferto queue arrow intothe playprompt,clickon our configuration,Text
to speech,paste inourmessage,save the configuration,andconnectup.We're now ready.We can go
aheadand save and publishthiscontactflow.We now needtoconfigure ourmainmenutouse this
queue.We goback overto our Routing,Contactflows.FoundourKinetEcomainmenu.Andif we scroll
the canvas to the right,we want to drag our Transferto queue overslightly.Once it'sinthe position,we
can disconnectthisconnection,expandSet,scroll down,andwe canSet customer queue flow.Dragthis
ontothe canvasand connectit up.We can now configure thisqueue flow forournewly-published
customerqueue flow,save,andpublish.
5. Metrics and Quality
Overview of metrics and quality
Metrics andqualitywithinAmazonConnectcanbe summarizedintothispicture.It'sworthnotingthat
featuresandintegrationscontinue tobe builtandreleasedovertime.Let'sspendsome timelooking
overthese inmore detail.AmazonConnectproducestwotypesof streamingdata.These are agent
eventsandContactTrace Records,or CTRs for short.CTRs are writtenafterthe contact isfinishedand
any linkedagenthasmovedoutof aftercall work.Both eventsare disabledbydefaultwhenyoucreate
a connectinstance.Thisisbecause youhave to configure Kinesis,eitherStreamsorFirehose.Kinesisis
an AWS service forhandlingstreamingdata.These twoeventtypesare usedbythird-partytechnology
partnersfor servicessuchasqualitymanagement.Youcan alsocomplete yourownpost-processingon
thisinformationandsave the recordsintoa database,suchas Redshift.Forcall recordingandreport
storage,AWShas a service calledS3.All historical reportsandcall recordingsare storedinS3 at the
locationspecifiedwhenbuildingthe connectinstance.Storage ischargeable.However,itishighly
durable,encrypted,andunlimited.Youcan setretentionperiodonthe S3bucketusinglifecyclepolicies.
Andfinally,nosystemisfoolproof.Andasyourrootinggetsmore complex,you're goingtoneedto
troubleshoottomonthperformance.ThisiswhereCloudWatchandAWSservice comesintoplay.By
default,yourconnectinstance sendsdatatoCloudWatchforitemslike concurrentcalls,throttle calls,
etc.Contact flowlogshelpsyoutroubleshootyourcontactflow logic.Forexample,whatdidthe
customerenter?Youneedtoset the loginbehaviorwithinthe contactflowsandyoucan logjust a small
sectionif required.
Enable call recording and playback
Enablingcall recorderwithinourContactFlowsisreal simple.Let'sopenupourKinetEcomainmenu.
Headover to routinganddownto contact flows.Let'sfindourmainmenuand openthisup.We wantto
enable call recordingacrossall contacts.So we'll goand openset.We'll scroll downandwe'll dragover
setcall recordingbehaviorontoourcanvas.We can setthe call recordingbehavioranywhereinthe
canvas,but because Iwant to doit across all contacts,I'm goingto do it rightafterthe play prompt.I'm
goingto disconnectthisconnectionandconnecttomycall recordingbehaviorandthenreconnectthat
back up to the getcustomerinput.We can configure setcall recordingbehavior.We canchange it so
that the agentand customersidesare recorded,the agentonly,orjustthe customer.I wantagent and
customer,sowe'll selectthisradiobuttonandsave ourconfiguration.Now we needtosave andpublish.
Callsthat are recordedbyConnectare savedinAmazonS3. Let's have a lookoverthe AWS console for
the callsthat have beenrecorded.We gooverto our AWS managementconsole,we type S3and we
selectthe link.Ionlyhave the one connectinstance.If youhave multiple,youwouldseewhichbucket
was createdas part of the AmazonConnectinstance.Ican go intomy bucket,dropdownintoconnect,
kinectecoinc,call recording,year,month,anddayandnow I can see the WAV filesof the testcallsthat
I've created,butwe don't want to playbackupcall recordingshere.Backoverto AmazonConnect, we
can go intoour metricsand qualityandopenourcontact search.We can search forthe calls we're
interestedinandplaythembackrighthere.If we scroll downto the bottom, we'll simplyjustpress
searchwithoutanyfiltering.Nowwe cansee all the callsthathave beenmade withthisinstance andif
we scroll overto our call recording,we geta playbutton.We simplypressthisandwe can hearthe
recording.
Real-time reporting
Whenyoufirstlookintothe ConnectUI,you're presentedwiththe dashboard.Thisisareal-time viewof
the queueswithinthe system.Byclickingonconfigure,thisshowsusthe dashboardconfiguration.We
have the abilitytoadjustthe time range.A trailingtwo-hourperiodworksgoodforme.We can also
filterbyqueues. Atthe moment,I've gotall three selected,soI'mactuallygoingtojustselectService
and SalesasI'm not usingthe basicqueue.If we scroll down,we can adjustthe performance metrics
and the occupancy.We'll clickand apply,andthiswill update my dashboard.The dashboardwill update
every30 seconds,or we can refreshthe page as required.The dropdownarrow nexttoconfigure allows
us to save the dashboardas a name.I'll choose Save as and save thisdashboardas Sales&Service and
pressSave as. Anddashboardhas beensavedsuccessfully.It'snottotallyobvious,butwe cansee our
reportsavedby goingintometricsandthenSavedReports.Bydefault,the Real-time Metricsisselected.
If we scootoverto Dashboard,we can see our newly-createddashboard.Fromthissame page,we can
see the Real-time tabandanoptionto create a new report.Let's getback overto Real-time andcreate a
newreport.We can see optionsforQueue,Agents,andRoutingProfiles.I'minterestedinseeingthe
agentperformance.If Iclickon this,bydefaultIsee all agentsthat are currentlyconnectedtothe
system.Aswithdashboards,Ican go intothe configurationandchange some information.We canfilter,
adjustthe time range,and playwiththe metrics.I'mgoingto add agentname and save myreport.And
nowI can see the full name of myagents.Great,that's lookinggood.A goodfeature onthisreport,and
one that you'll nodoubttrip upoverduringyour testingiswhenyou're tryingtotestout of hours
routing. If a user closestheirCCPbrowser,the sessionisnotclosed.Theyfirstneedtologoff.Byusing
the dropdownnexttothe user,we can forciblyremove these fromthe system.Icurrentlyhave justone
reportconfiguredonthisreal-time dashboard;however,Iwantto add anothertable.Byusingthe New
Table columnhere,Ican scroll downto RoutingProfiles,andwe can configure anew reportrighthere in
the same window.Icurrentlysee BasicRoutingProfile,Sales,andService.Iwanttoremove the Basic
RoutingProfile fromthisreport.SoIgo ontoconfigure andundermy primaryfilter,againtochoose
RoutingProfiles,andonlyinclude SalesandService andclickapply.We canexpandSalesandwe can
expandService.Youmightnotice thatunderSales, the routingprofile hasthe Salesqueueandthe
Service queue.Thisisbecause inoursalesprofile,we includedbothof those queues.Now Ihave the
reportsas I want them.I'mgoingto save thisone.Scroll back upto the top,and nexttosave I'm gonna
clock onthe dropdown.Ihave the optiontoclear,whichwill clearthe report,save as,downloadCSV,or
share the report.I'm goingto share the report.I'm gonnaprovide aname of Service&Sales,andI'm
goingto presssave.To ensure thisreportisshared,we needtotoggle the buttonhere topublish.This
reportwill nowbe visible byuserswithinthe ConnectInstance thathave the necessarypermissions.
Let's ensure we save thisfirst.OK,let'sheadovertoMetrics andQualityanddownto SavedReports.
Let's clickon Historical Metrics.We can see our newlycreatedreport,andithasa publishedstatusof
Yes.
Manager Listen-in
Manager Listen-inisveryuseful tohelpcoachnew agents.Toshow you thisI've positionedthe screens
side-by-side.Toconfigure ManagerListen-inyouneedtoensure the call recordingissettoagentand
customerand mustbe enabledforthe call.Aswe have alreadydone thiswe can skipoverthispart. The
managerneedstohave CCP andManager Listen-inrightsenabled,which issetwithinsecurityprofiles
and assignedtothe user.UsingManager Listen-inisreal simple.Let'sopenourServices&Salesreport
that we have justcreated.Here we can see that Athiyaiscurrentlyona call indicatedbythe headset
icon.If we click on thisCCPwill place anoutboundcall andwill monitorthe conversation.We cansimply
disconnectfromthe monitoringbypressingendcall andback intoavailable.
Historical reporting
Historical reportsare heavilyusedwithincontactcenters.Andright withinconnect,we getthe abilityto
create and schedule historical reports,withdatagoingback24 months.Shouldthe builtinreport's
retentionnotbe asyou require,thenlookintostreamingthe contacttrace recordsto extendyourdata
source like RedshiftviaKinesis.We canaccessthe historical reportshere viathe metricsandquality
menu,anddownto historical metrics.We see the familiarqueuesandagentswe saw inthe real time
reports,butthe firsttime,we see the phone numberreports.However,we now have adropdownon
queuesandagents,andexpandingthisshowsadditional reports.Notall the reportscanbe savedsuch
as an agentactivityaudit.Youneedto run thatone manuallyandad hoclyfor everyagentrequired.
Let's go aheadand create a historical queue reportthatwill save andschedule onadailybasis.I'll move
overto contact metrics,andclickon the report.We're providedwithastandardqueue reportwhich
showsall available queues.However,Iwantto filterthisreport before Ischedule it.Clickingonthe
configurationcogwill bringupthe menu.Iwantto change myinterval tobe 30 minutes,mytime zone
to be Phoenix,andthe time range tobe yesterday.Ialsowantto filteroutthe basic queue.Sogointo
filters,andonqueue,I'll onlyselectmyservice andsalesqueues.Once I'mhappy,Ican pressapply,and
that will update the report.Great.NowIhave the reportas I wouldlike it.I'll goaheadandschedule
this.Usingthe drop downoptionnexttosave,will bringupthe optionmenu.Move downtoschedule,
and thenwe're askedtoprovide aname.We'll provide aname of "Queue DailyReport."Once we're
happy,we'll presscontinue.Well nowIreceive amessage whichsaysthisreportwill automatically
publishedtothe organization.Soanybodywiththe propermissionswill be able toview this.Once
you're happy,presscontinue tocarry on. I wantthe reportsonce a day forthe previousday.Sowe'll
generate thisreportdaily,everyone day,startingatone AM UTC, for the previousone day.We have a
menufordeliveryoptions.Deliveryoptionsiscurrentlyalittle misleadingbyname.Whatthisis doingis
justsettingthe locationforthe reportinyour S3 bucket.However,the reasonwhythisiscalleddelivery
options,isthatyou couldbuildanS3 eventnotificationonthe reportbeingavailable,whichwould
enable youtohave to reportto be sentoutvia email usingAmazonSimple NotificationService,orSNS.
Thisextradeliverywouldrequiresome additionalconfigurationnotcoveredinthiscourse.However,I
use thisin the future,andso I'mgoingto set a prefix.We'll setthisprefix as"/global/daily."Once I'm
happy,I'll continue onandcreate my schedule report.Andnow myreporthas beenscheduled.
6. Lambda and DynamoDB Integration
Personalize the contact flow
Okay,it's time tohave a little more funandshow youhow openthe AmazonConnectplatform
is.We're goingto buildonthe routingwe currentlyhave whichcanbe seenhere.WhatI want to
do isfocuson the greetinghighlighted.If we know the caller'snumber,we're goingtoinclude
theirname withinthe greeting.Whatthismeansisour customerjourneywilllooklikethis.
We're goingto check oncontact connectionif we know the user'snumber.If so,we'll playthe
user'sname withthe welcome message forthatpersonalizedexperience.If we don't,we'll play
the genericmessaging.Sowhat'sgoingonhere?Atthe technical level,we'll be usingConnectto
make a requesttoAWS Lambda.Lambda will thenqueryDynamoDBwhichwill holdour
customerrecords.All right,let'shave some fun.
Create a DynamoDB table
We firstneedtocreate the dynamoDB table that will holdourcustomerrecords.Fromthe AWS
console youcan searchfor dynamo.Clickonthe linkandit will openthe configurationpage.
dynamoDBisa NoSQLdatabase.Itis serverlessandhighlyscalable.ItbacksAmazon'sPrime Day
whichin 2017 had 3.34 trillionrequestsinone day,peakingat12.9 millionrequestspersecond.
Before we buildourinfrastructure let'smake sure we're inthe rightregion.Onthe toprightI've
got NorthVirginiaselected.Once I'mhappyI'll go aheadand press create table.We'll provide a
name for our table,andthiswill be CUST_DB.The primarykeywe're goingto use isthe
customer'sphone number.Sowe'll name thise164.We don'tneedto make any otherchanges.
We'll scroll downandpresscreate.Andour table isnow ready.Let's clickoverto the itemstab
and clickcreate itemsothat e164 data entry,paste inyour customer'sphone number,ensure
youremove anyspecial charactersand anyspacesand make sure you leave the plus.We need
to nowappenda columnforthe customer'sfirstname.We'll clickonthe plussign,expand
append,andentera string.The stringcolumnisgoingto be calledfirstname.Andthe value is
goingto be our customer'sname.Once you're happypresssave.Andnow our customer
database isreadyto be usedbyConnect.
Create a Lambda function
We can nowcreate our Lambda functiontoclearour DynamoDB table,fromthe AWSconsole,
type inLambda, andclick onthe link.Insure yourinthe rightregion,andpresscreate function.
We're goingto author our functionfromscratch,so we'll leave thatoptionselected.We're
gonnascroll downprovide name,we'll call thisgetcustomerdetails.The runtime isgoingtobe
Python3.6. We'll create a role from ourtemplate,butwe needtofinda role name,we'll justcall
thisLambda to Dynamo,underscore readonly.Underthe policytemplates,we're gonnascroll to
the bottom,and selectthe BasicEdge Lambda permission.We needtoupdate thispermission
shortly,butfirstof all let'screate the function.Great,now ourfunctioniscompleted,let'shead
overto anotherAWS console inseparate tabandwe'll type inIAM.In here we're goingto
update the role we justcreated.Solet'sroll and scroll down,andclickon the role we just
created.We're goingto attach a new policy,andinthe searchbar justtype Dynamo.We're
goingto selectthe readonlyaccesspermission,we'll checkthe box andattachthe policy.That's
nowbeenupdated,goback overto the Lambda console,we cansee at the moment we only
have CloudWatchpermissionsif we refreshthe page,itwill re-readthe policy,andwe getthe
additional permissionswe needtoqueryourDynamoDBtable.Withour permissionsnow set,
let'sscroll downandhave a lookat the functional code.Inyourexercise files,there'safile called
Lambda Function,copyandpaste that underthe Lambda functionsection.Firstof all highlight
everythinganddelete,andthenpaste inyourcode.Once yourhappypresssave.Withour
functionnowsaved,let'shave aquicklookat the Lambda function.Whatwe're goingto do,
we're goingto querythe DynamoDBtable.We're goingto bringback a variable code ani,which
it's actuallygoingtolookat the address.Thisisactuallybeingtakenfromour testfunctionthat
we'll doshortly.If we geta match from the customersnumber,withwhat'sinthe database,
we'll returnthe firstname,otherwisewe'llreturnfalse.Youreallycanandshouldtestyour
functions.We can dothat alreadyhere withinthe console.Sowe can lookontestwe'll create a
newenvironment,withinyourexercisefiles,there'safile calledtestfunction.Highlightall the
existingcode anddeletethis,andpaste inyournew code.Thisja centrequestisreplicatinga
requestfromAmazonConnectundercustomerendpointandaddress,youneedtoputinhere
your customernumberthatwe put intothe DynamoDBtable.Paste thisnumberinandagain,
make sure any special charactersbeenremovedandanyspacesandinsure the plussignis
included.We need toprovide aname forthe right testfunction,sowe'll justcall thistest.Once
we're happy,we'll scroll tothe bottomand presscreate.Withour code now complete andour
testfunctionready,we cango ahead andpresstest.The code isexecutedandwe've gotthe
greenbar indicatingsuccess.If we scroll downtothe bottom, we can see the executionresults.
We got a keyvalue pairof firstname,withthe value of Stephanie,resultandthe value of true.
We're goingto use these withinourcontentsinroutine shortly,butfornow ourLambda
functionisnowready.
Install AWS CLI
Before we can use our LambdafunctionwithinConnectwe needtograntsome permissions.
Thisis done viathe AWS CLI.We're goingto install the CLIhere andin the nextvideogrant
permissions.Openupanewtab and inyour browsersearchforAWS CLI.Clickon the Amazon
linkandon the right handside youcan see the CLIs available fordifferentoperatingsystems.
We have Windows,Mac Linux,orAmazonLinux.I'mrunninga Mac, so I'm gonnarun this
commandin myterminal.Headingovertomyterminal I'mgoingto paste inthe command and
justrun it.Type in my passwordandwatch itinstall.Withthe AWSCLI now completedwe now
it's time toconfigure the AWSCLI. Before we dothiswe needtoheadback overto the Amazon
console andcreate some accesskeys.Back overinthe AWSconsole,searchforIAM. Clickonthe
linkandgo downto users.Highlightyourusername andclickonsecuritycredentials.Inhere
we're gonnacreate some access keys.These will be usedtopipconfigure the AWSCLIandused
to authenticate uswhenrunningthe command.Clickoncreate accesskey.Youonlygetone
opportunitytocopythisinformationsolet'scopyandpaste this intoa textfile fornow sowe
don't lose it.NowI'mgoingto show my secretaccesskeyand copy that overas well.Okay,with
our keysnowcreatedwe're justgonnaclose the window.Headbackoverto my terminal.I'm
goingto clearthe screen.We now needtoconfigure the AWSCLI. We justtype AWS configure
and nowwe get the optiontoprovide ouraccess key.Paste inyourKeyID followedbyyour
secretaccesskey.Give it a defaultregionname.We've beenusingNorthAmericawhichisus-
east-1.Andenter.We'll leave the defaultoutputformatasnull.Andnow ourAWS CLI isready
to be usedinthe nextvideo.
Grant Lambda permissions
Before AmazonConnectcanmake requeststoLambda,we must allow thispermissionto
happen.The systemforour resource policyfire the commandline.Thispolicy'sattachedtothe
Lambda functionandrestrictswhocan talkto it.The commandwe needtorun lookslike this.
You needtwoitems,the ARN,orAmazonResource Name,forthe destinationLambdaandthe
ARN of the source Amazonconnectinstance.Letme show youwhere youcan findthese within
the Amazonconsole.ForLambda,let'search forLambda in console.Let'sclickon our
getCustomerDetailsfunctionandtoprighthand side youcan see the ARN.The functionname is
the last part.That's the bitthat we needtoput intoour code.Headback overto the console and
thistime searchfor connect.WithinyourInstance Alias,clickonthe name andthe Instance ARN
for connectishere and whatwe needisthe last part,just afterthe slash.Now we've takena
copy of those two,let'sgo back overto our code.Asyou can see,I've putthe information
togetherinourcode.I'm now gonnacopy andpaste this overto myterminal andrun the
command.Pastingthisintomyterminal,we cansee I geta successmessage whichconfirmsthat
I nowhave the abilitytoinvoke thisnumberfunctionfrommyconnectinstance.
Lambda in the contact flow
So I've createdour DynamoDBtable,ourLambda functionandgrantedall the required
permissions.Let'snowbringthisall togetherandupdate ourcontact flow toplaythe callers
name.I'm inthe KinetEcomainmenu.I'mgoingto now drag ontothe canvas the Lambda
function.Godownto integrate,anddragover the actionblock.Connectitup by disconnecting
the linkandconnectingthembacktogether.If youlookat the Lambdafunctionisincorrect,
whatwe wantto do issendthe error to the normal customerjourneythatwaythe callerwill
justget the standardgreeting.We now needtoconfigure ourLambdafunction.Forthiswe
needthe FunctionARN.If we go overto ourLambda console.Scroll upto the top.We can
actuallycopyour ARN.Paste it intothe box.Andwe can pressSave.We now needtocheck to
make sure we get a resultback fromLambda.If we take a lookhere we got the check contact
attributes.Dragit ontothe canvas. Connectitto the successfrom the Lambda call intothis
block.For here we needtoactuallycheckto see whatthe external resultis.Backinour Lambda
functionif we godownand have a quicklookat the code.We can see thatwe're returningto
keyvalue pairs.The firstName,andthe result.If the resultistrue,we getthe firstName.If the
resultisfalse,we don'tgetthe firstName.Sowe wantto queryresulttosee whatthe value is.
Back overto our ConnectContact flow.We're gonnacheckresult.We're gonnaadda condition.
We're gonna checkif that conditionequalstrue.We'll Save.Andif itequalstrue we wanttoplay
the customersgreetingHowever,if Idoesn'tmatchthenwe want to continue onthe standard
journey.Nowwe've connectedthatup,let'sactuallydoa playpromptwhere we playthe
customersname.We'll draga playprompt actionblockontothe canvasand connecttrue to our
playprompt.We can nowconnectthe playpromptup to the call recordingbehavior.We now
justneedto come intoour playpromptconfigurationAndchange some settings.We wanttodo
textto speech,sowe scroll down.We're gonnainterpretthisasSSML, so we selectthatoption
Andwe want to paste inour text.Letme justexpandthisbox soyoucan see what'shappening.
We have our speaktags,whichwe saw earlier.We have a Welcome backfollowedbythe
variable.Thisisgoingtobe lookingatthe firstName keyvalue pairfromthe recentexternal call.
We've got a short breakfollowedbyourstandardgreeting.We can thenSave this.Andnow
we're readyto test.We do a Save & publish.That'snow successfullysaved.Sowe can go ahead
and make a testcall.But justrememberitwill take afew minutestoupdate. - [ComputerVoice]
Welcome back,Stephanie.ThankyouforcallingKinetEcoIncorporated.Please pressone for
service ortwo forsales. - [Instructor] Perfect.That'sexactlythe customer'sgreetingIwas
lookingfor.
7. Lambda and DynamoDB Integration
Introduction to Lex
AmazonLex isa service forbuildingconversationalinterfacesusingautomaticspeechrecognitionand
natural language understandingtounderstandthe caller'sintent.These are more commonlyknownas
chatbots.Theyprovide agreat wayfor data consumption anddataentryby understandingthe caller's
intent,like ahuman-to-humanconversationanddeflectingcallsfromthe contactcenter.Some typical
use casesfor chatbotsare orderinga takeaway,suchas a pizza,services,suchasIT helpdesk,doingself-
service passwordresets,etcetera,bookingaservice,appointments,amendingandcounseling,butalso
manydifferenttypesof dataentryscenarios.Andthisiswhatwe're goingtobuild.Here isour
personalizedcall flow.Currently,we askthe callerto pressone for service ortwofor sales.Andthisis
the area we're goingto change.The menumessagingisgoingtochange to be an openquestion,how
can I helpyoutoday?We shall configure lengthstomatchto certainphrasesthat matchto eitherthe
service intentorthe salesintent,butwe alsowanttoadd a thirdintentof submitmeterreadings.So
what'sgoingon? Thisis a hierarchicoverviewof addingLex toour solution.It'sasimple integrationand
we'll goaheadand buildthisnow.
Build a Lex bot
So let'sbuildoutLEX bot.From the AWS console,searchforLEX,click onthe link.Andlet'spressGet
Started.We'll buildacustombot, sowe'll selectthatoption.Youneedtoprovide aname.We'll use
KinetEcoBOT.The language will be USEnglish andthe outputvoice will be Joanna.Thisisunlessof
course you've changedthe voice withinyourcontactflows.ButJoanna'sthe one that's providedby
default.Sessiontimeoutwill be twominutes.Andwe needtoenterthe COPPA.Once you're done,press
Create.Let'stake a fewmomentstoexplore the UIforLEX. We're currentlyonthe editor.Here,we get
to add some intents,some slottypes,anderrorhandling.Settings,we don'tneedtochange anything.
We've alreadyprovidedeverythingwe needrightnow.Channels.Thisiswhere youcanexpose yourLEX
bot to differentchannelslikeFacebook,Kik,Slack,orTwilio.That'sbecause LEXcan be voice or text
activated.Youcan builditonce and use it inmulti-channels.Andmonitoring.Monitoringisespecially
useful forthe utterances.Within24hours,you'll geta count of any missedutterances.Thisisreally
useful incase youneedtoupdate your sample utterances.Andfinally,onthe right-handside,we're got
the textbot.This iswhere we can testour code before we publishit.Let'sgoback overto the editor.
We needtoadd some intents.Forthis,I've createdthree foryoualreadyinthe exercise files.Have a
lookinto07_02. If we clickonplus,we'll getthe optiontoimportour intents.I'll justbrowse tomyfiles.
Highlightingthe collectMeterReadingsintentandjustclickonImport.I'll now addthe othertwosamples
that I've provided.That'sthe Disconnectintent.Andwe'lladdthe lastone,whichisthe Make Payment
intent.Let'sjustexplore thesebriefly.The collectMeterReadingsisgoingtoactuallyaskthe customerfor
theirmeterreadingsfortheirgasand electricity.Thiswill be usedif the customerneedstophone inand
provide some informationtous.The sample utterancesare what LEX isgoingto be listeningforto
actuallytheninvoke thisintent.Soif I'mcallingin,if the customersays,I needtoupdate my usage or
sendinmy meterreadings,thenthisintentwill be invoked.If we lookunderslots,thisiswhat'sgoingto
be collectedbyLEX.Currently,we have elecReadingslot.Thiswill askthe questionof,Whatisyour
electricityreading?It'sgoingtoconvertwhatthe customerssaysintoa numberandstore thisinthis
variable name.We needtoaddanotherslotfor this.So let'sgoaheadand type ingasReading.The slot
type will alsobe AMAZON.NUMBER.Fromthe available listof slottypes,justscroll downtothe bottom
and selectthe number.Now,the prompt,thisiswhatLEXis goingto ask the customerto collectthat
information.Whatisyourgas reading?QuestionmarkandpressEnter.We can see thatbothslotsare
required.ThismeansthatLEX botwill be requestingthisinformationbefore itcancomplete the intent.
Finally,we wanttodo a confirmationprompt.Just clickonthe checkbox andthenwe'll getthe optionto
do a confirmationandthena cancel.I'll paste inmy confirmationprompthere.SoLEXisgoingto read
back to the customer,Okay,great,yourgas readingis,followedbythe informationthe customer
provided,followedbythe electricityreading.Andthenit'sgoingtoaskthemthe questionif thiscorrect
or not. LEX will be listeningtothe customer'sresponse.If theyrespondwithapositive yes,thenthe
confirmationwillbe completeandthe intent willbe returnedbacktoconnect.If no, the processwill
needtostart again.This intentisnowready.Let'sgo and have a lookat the other twothat we imported.
On the Disconnectintent,thisone'sslightlydifferent.We're notactuallyaskingforany informationand
all we're reallydoisfilteringthe customer.If the customerphonesupandsays,I have founda better
deal or I wantto leave,thisintentwill be matched.Andthenthe intentname will be flightedbackto
connectand we can use that intentname withinourrouting.Let'shave a lookat Make Payment.It'sthe
same as Disconnect.There'snoslotsto collect.We're reallyjustusingthisasa filterjusttoaccurately
route the customerto the right channel.Let'saddanotherintent,butwe'll dothisone manually,so
you'll see the full experience.OveronIntents,clickonthe plussign.Thistime,we'llcreate intent
manually.Goto name,we're gonnacall thisone Faultand pressAdd.Thistime,we've gotblank
utterances.We needtoprovide some sample utterances.So,Ihave a faultor I have nogas. We could
carry on and I highlyrecommendthatyouprovide asmanysample utterancesaspossible.Butthere will
be enoughforour testing.We don'tneedto do anythingelse withthisLEXbot at the moment,solet's
build.Okay,sowe've gotan error message.It'ssayingthe specifiedvalue forrejectionmessageis
invalid.Youmusthave a lengthgreaterthanor equal toone.Thisis actuallyincollectMeterReadings.If
we scroll downto our confirmation,we cansee it'sdisappeared.We typedinthe confirmation,butwe
didn'tput a cancel message in.Solet'spaste the confirmationmessage backin.Andovertocancel.So if
the customersaysno, we'll say,Okay,we are returningyouto mainmenu.Andnow,we can go ahead,
cancel that message,andbuildourbot.Andnow,our LEX bot isbuilding.It'll take ashortwhile forthe
bot to buildandthenwe'll be able totestit.
Test and publish a Lex bot
Withour Lex bot nowsuccessfullybuilt,let'stestit.We'll close the successmessage andthenthe test
bot hasopenedup.We can eithertype intohere orwe can use speechandspeakintothe browser.If I
nowclickon the microphone Lex will listentome.Butthenonce I've finishedspeakingIhave to press
the microphone againtosignifythatI've finishedspeaking.Sendinmymeterreadings. - [Woman] What
isyour electricityreading? - [Instructor] 1092. - [Woman] Whatis yourgas reading? - [Instructor] 64. -
[Woman] Okaygreat,your gas readingis64 and yourelectricityreadingis1092. Isthis correct? -
[Instructor] Yes.Great,that's nowworked.The collectMeterReadingsintentwill be sentbacktoConnect
alongwiththe gas readingvalue andthe electricreadingvalue,andyoucan use those inyour routingas
required.Let'stryagain.Thistime we'll saysomethingdifferentandhopefullyLex will sendustoa
differentintent.Iwanttoleave.There we go.The intentisdisconnect.The ReadyForFulfillmentjust
meansLex has done everything thatshe needstodo.We've notaskedher to doanythingelse.Sothe
disconnectintentwill be sentbacktoConnect.Withour testingnow workinglet'sgoaheadandpublish
our Lex bot.We justsimplyclickonthe publishbutton,provideanaliasof MYBOT and presspublish.It'll
take a fewminutestoupdate.AndourLex bothas now beenbuilt.We're goingtoneedthe botname
and the aliasfor ournextvideo.Make a note and continue on.
Add permissions to invoke Lex bot
Nowthat our Lex bot ispublished, we needtoprovide permissionsforConnecttocontact Lex.To do
this,we'll close thisscreenandheadovertothe Connectmenu.Clickonthe Instance Aliasname below
and move downtocontact flows.UnderAmazonLex,clickonAdd Lex Bot andselectyour Lex bot from
the drop downlistandpresssave.Andnow AmazonConnecthas permissionstorequestinformation
fromLex.
Add a Lex bot to your contact flows
Nowwe've builtourLexBot,let'sintroduce thisintoourcontactflows.I've gotthe KinetEcomain menu
contact flowopen.AndI'mjustgoingto scroll rightthrough the canvas.Andwe're goingto change our
Get customerinput.Atthe momentit'ssaying,please pressone forservice ortwoforsales.We're going
to change thisso that itactuallycalls the intentLexBotandallow the customertosay what theywant.
Clickingonthe configuration.Whatwe needtodoischange thisslightly.We needtofirstof all,change
the message.We're still goingtoplaya message butit'sgoingto be different.So, how canI help
questionmark.Assoonas connecthas playedthatmessage,itwill be overtothe LexBottothen
answer.Scroll downtobelow.UnderDTMF we kindaof gotthis configured.We needtochange thisto
be Lex.So, well goaheadandpressLex.Now we needto provide the LexBotname.Now we call this
kinetEcoBOT.AndaliaswasMYBOT. We didn'tneedtosendany additional attributesovertothe
LexBots,butwe do needtolistenforthe intentrepliesback.Soif we clickon adda parameter.We now
needtolistour intentsinhere.Youcan see those fromoverinthe Lex console.BackoverintoLex,that's
these here.So,if we copythe firstone.Back overintoconnect,we can paste thatin.Then we needto
go downand addthe rest.We've got disconnect,fault,andfinally,make apayment.Withthisnow
configuredlet'spresssave.We cansee that ourGet customerinputbothas changed.We can now see
the intentsandwe can now rootand handle those differently,basedonwhatthe LexBotunderstood.
My collectmeterreadingsisgoingtogooverto service.Mydisconnectisgoingto go withsales.My
faultswill goovertoservice.Andmake a paymentwill goovertoservice.Withthose now configured,I
can save and publishmyapp.The contact flow has beensavedsuccessfully,butwe justneedtowaita
fewmoments,foritactuallytobe published.Now let'smake atestcall,to experience the call flowfrom
our customer. - [Female Operator] Welcome backStephanie,ThankyouforcallingKinetEco
Incorporated.Howcan I help? - [Narrator] Make a payment. - [Female Operator] All ouragentsare
currentlyhandlingothercustomers.Yourcall isveryimportanttous andwill be answeredinthe orderit
was received. - [Narrator] Andthere we have it.Lex hasunderstoodourintent.Sendthe make a
paymentintentbacktoour contact center.Andnow we've rooteditoverto the service queue,waiting
for an agentto handle ourcustomer.
Conclusion
Well,thatbringsus to the conclusionof ourfoundational course onlearningAmazonConnect.If youlike
whatyou've seeninthis course and thinkthatAmazonConnectmightbe a good fitfor projectsthatyou
are workingon,there are some placesthatyou can go to fromhere.Be sure toreach out to your
Amazonaccount manageror technical accountmanagerif you have one.It'll be a great place tostart
planningyournextproject.If youdon'tthere are many Amazon consultancy partnersavailable thatcan
helpyou.Andforthose of youwhoare more handson, I highlyrecommendthatyouspendtime
learningthe widerAWSecosystem.There are manycoursesinthe librarythatyou can use to helpwith
passingyourAWS associate exams.These will helpyouinunderstandingmore abouthow youcanbuild
innovative solutionsandgreatcustomerexperiences.I'dalsohighlyrecommendthatyoustartlearning
a programminglanguage.ForthisI'll choose Python.The LearningPythoncourse byJoe Marini isa great
place to start. Andfinally,checkoutthe differentcommunitiesandresourcesaroundAmazonConnect.
There are the forums,the LinkedIngroups,andof course the AmazonConnectdocumentation.There's
alsoan AmazonConnectdemosite builtandmaintainedbyAmazon. Thisiswhere you'll findsome
interactive demos,andunderreferencesyou'llfindthe attributecheatsheet.Take alookaroundthese
resourcesandbe sure to share and contribute tothe community.Thanksagainforwatching,anduntil
nexttime,keeponbuilding.
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx
Amazon Connect Notes.docx

More Related Content

What's hot

Moving Large Scale Contact Centers to Amazon Connect (BAP324) - AWS re:Invent...
Moving Large Scale Contact Centers to Amazon Connect (BAP324) - AWS re:Invent...Moving Large Scale Contact Centers to Amazon Connect (BAP324) - AWS re:Invent...
Moving Large Scale Contact Centers to Amazon Connect (BAP324) - AWS re:Invent...
Amazon Web Services
 
Implementation of Amazon Connect, Powered by Accenture (FSV306-S) - AWS re:In...
Implementation of Amazon Connect, Powered by Accenture (FSV306-S) - AWS re:In...Implementation of Amazon Connect, Powered by Accenture (FSV306-S) - AWS re:In...
Implementation of Amazon Connect, Powered by Accenture (FSV306-S) - AWS re:In...
Amazon Web Services
 
Amazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use CasesAmazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use Cases
CloudHesive
 
Ensuring Voice Quality for Amazon Connect
Ensuring Voice Quality for Amazon ConnectEnsuring Voice Quality for Amazon Connect
Ensuring Voice Quality for Amazon Connect
Carl Blume
 
Amazon Connect: 4 Steps to Transforming Your Customer Contact Center
Amazon Connect: 4 Steps to Transforming Your Customer Contact CenterAmazon Connect: 4 Steps to Transforming Your Customer Contact Center
Amazon Connect: 4 Steps to Transforming Your Customer Contact Center
Perficient, Inc.
 
Customer and Constituent Engagement with Amazon Connect
Customer and Constituent Engagement with Amazon ConnectCustomer and Constituent Engagement with Amazon Connect
Customer and Constituent Engagement with Amazon Connect
Amazon Web Services
 
Evolving Customer Experience with Amazon Connect, An AI based Contact Centre ...
Evolving Customer Experience with Amazon Connect, An AI based Contact Centre ...Evolving Customer Experience with Amazon Connect, An AI based Contact Centre ...
Evolving Customer Experience with Amazon Connect, An AI based Contact Centre ...
Amazon Web Services
 
Introduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesIntroduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best Practices
Gary Silverman
 
Module 1: Introduction to the AWS Cloud - AWSome Day Online Conference 2019
Module 1: Introduction to the AWS Cloud - AWSome Day Online Conference 2019Module 1: Introduction to the AWS Cloud - AWSome Day Online Conference 2019
Module 1: Introduction to the AWS Cloud - AWSome Day Online Conference 2019
Amazon Web Services
 
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Amazon Web Services
 
Building a Better Business Case for Migrating to Cloud
Building a Better Business Case for Migrating to CloudBuilding a Better Business Case for Migrating to Cloud
Building a Better Business Case for Migrating to Cloud
Amazon Web Services
 
Getting Started with AWS IoT
Getting Started with AWS IoTGetting Started with AWS IoT
Getting Started with AWS IoT
Amazon Web Services
 
AWS Summit Singapore 2019 | Banking in the Cloud: 10 Lessons Learned
AWS Summit Singapore 2019 | Banking in the Cloud: 10 Lessons LearnedAWS Summit Singapore 2019 | Banking in the Cloud: 10 Lessons Learned
AWS Summit Singapore 2019 | Banking in the Cloud: 10 Lessons Learned
AWS Summits
 
Fundamentals of AWS Security
Fundamentals of AWS SecurityFundamentals of AWS Security
Fundamentals of AWS Security
Amazon Web Services
 
Security & Compliance in AWS
Security & Compliance in AWSSecurity & Compliance in AWS
Security & Compliance in AWS
Amazon Web Services
 
How AWS is reinventing the cloud
How AWS is reinventing the cloudHow AWS is reinventing the cloud
How AWS is reinventing the cloud
javier ramirez
 
AWS Cost Optimisation Solutions
AWS Cost Optimisation SolutionsAWS Cost Optimisation Solutions
AWS Cost Optimisation Solutions
Amazon Web Services
 
Next Gen Innovation: Enhancing your Contact Center with Amazon Connect for t...
Next Gen Innovation:  Enhancing your Contact Center with Amazon Connect for t...Next Gen Innovation:  Enhancing your Contact Center with Amazon Connect for t...
Next Gen Innovation: Enhancing your Contact Center with Amazon Connect for t...
Amazon Web Services
 
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud MigrationCapgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
Floyd DCosta
 
AWS Technical Due Diligence Workshop Session One
AWS Technical Due Diligence Workshop Session OneAWS Technical Due Diligence Workshop Session One
AWS Technical Due Diligence Workshop Session One
Tom Laszewski
 

What's hot (20)

Moving Large Scale Contact Centers to Amazon Connect (BAP324) - AWS re:Invent...
Moving Large Scale Contact Centers to Amazon Connect (BAP324) - AWS re:Invent...Moving Large Scale Contact Centers to Amazon Connect (BAP324) - AWS re:Invent...
Moving Large Scale Contact Centers to Amazon Connect (BAP324) - AWS re:Invent...
 
Implementation of Amazon Connect, Powered by Accenture (FSV306-S) - AWS re:In...
Implementation of Amazon Connect, Powered by Accenture (FSV306-S) - AWS re:In...Implementation of Amazon Connect, Powered by Accenture (FSV306-S) - AWS re:In...
Implementation of Amazon Connect, Powered by Accenture (FSV306-S) - AWS re:In...
 
Amazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use CasesAmazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use Cases
 
Ensuring Voice Quality for Amazon Connect
Ensuring Voice Quality for Amazon ConnectEnsuring Voice Quality for Amazon Connect
Ensuring Voice Quality for Amazon Connect
 
Amazon Connect: 4 Steps to Transforming Your Customer Contact Center
Amazon Connect: 4 Steps to Transforming Your Customer Contact CenterAmazon Connect: 4 Steps to Transforming Your Customer Contact Center
Amazon Connect: 4 Steps to Transforming Your Customer Contact Center
 
Customer and Constituent Engagement with Amazon Connect
Customer and Constituent Engagement with Amazon ConnectCustomer and Constituent Engagement with Amazon Connect
Customer and Constituent Engagement with Amazon Connect
 
Evolving Customer Experience with Amazon Connect, An AI based Contact Centre ...
Evolving Customer Experience with Amazon Connect, An AI based Contact Centre ...Evolving Customer Experience with Amazon Connect, An AI based Contact Centre ...
Evolving Customer Experience with Amazon Connect, An AI based Contact Centre ...
 
Introduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesIntroduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best Practices
 
Module 1: Introduction to the AWS Cloud - AWSome Day Online Conference 2019
Module 1: Introduction to the AWS Cloud - AWSome Day Online Conference 2019Module 1: Introduction to the AWS Cloud - AWSome Day Online Conference 2019
Module 1: Introduction to the AWS Cloud - AWSome Day Online Conference 2019
 
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Building a Better Business Case for Migrating to Cloud
Building a Better Business Case for Migrating to CloudBuilding a Better Business Case for Migrating to Cloud
Building a Better Business Case for Migrating to Cloud
 
Getting Started with AWS IoT
Getting Started with AWS IoTGetting Started with AWS IoT
Getting Started with AWS IoT
 
AWS Summit Singapore 2019 | Banking in the Cloud: 10 Lessons Learned
AWS Summit Singapore 2019 | Banking in the Cloud: 10 Lessons LearnedAWS Summit Singapore 2019 | Banking in the Cloud: 10 Lessons Learned
AWS Summit Singapore 2019 | Banking in the Cloud: 10 Lessons Learned
 
Fundamentals of AWS Security
Fundamentals of AWS SecurityFundamentals of AWS Security
Fundamentals of AWS Security
 
Security & Compliance in AWS
Security & Compliance in AWSSecurity & Compliance in AWS
Security & Compliance in AWS
 
How AWS is reinventing the cloud
How AWS is reinventing the cloudHow AWS is reinventing the cloud
How AWS is reinventing the cloud
 
AWS Cost Optimisation Solutions
AWS Cost Optimisation SolutionsAWS Cost Optimisation Solutions
AWS Cost Optimisation Solutions
 
Next Gen Innovation: Enhancing your Contact Center with Amazon Connect for t...
Next Gen Innovation:  Enhancing your Contact Center with Amazon Connect for t...Next Gen Innovation:  Enhancing your Contact Center with Amazon Connect for t...
Next Gen Innovation: Enhancing your Contact Center with Amazon Connect for t...
 
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud MigrationCapgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
Capgemini Cloud Assessment - A Pathway to Enterprise Cloud Migration
 
AWS Technical Due Diligence Workshop Session One
AWS Technical Due Diligence Workshop Session OneAWS Technical Due Diligence Workshop Session One
AWS Technical Due Diligence Workshop Session One
 

Similar to Amazon Connect Notes.docx

AWS Connect – The Ultimate Omnichannel Customer Service Solution
AWS Connect – The Ultimate Omnichannel Customer Service SolutionAWS Connect – The Ultimate Omnichannel Customer Service Solution
AWS Connect – The Ultimate Omnichannel Customer Service Solution
Xavor Corporation - Redefining Health Technology
 
Step by Step guide to start your cloud journey
Step by Step guide to start your cloud journeyStep by Step guide to start your cloud journey
Step by Step guide to start your cloud journey
Jubin Aghara
 
AWS-The-Ultimate-Cloud-Solution-Guide.pdf
AWS-The-Ultimate-Cloud-Solution-Guide.pdfAWS-The-Ultimate-Cloud-Solution-Guide.pdf
AWS-The-Ultimate-Cloud-Solution-Guide.pdf
NetCom Learning
 
AWS the ultimate cloud solution guide
AWS the ultimate cloud solution guideAWS the ultimate cloud solution guide
AWS the ultimate cloud solution guide
NetCom Learning
 
CBR0414_Telecity_Ezine_V5
CBR0414_Telecity_Ezine_V5CBR0414_Telecity_Ezine_V5
CBR0414_Telecity_Ezine_V5Shaun O'keeffe
 
An Intro to Cloud Computing......RG
An Intro to Cloud Computing......RGAn Intro to Cloud Computing......RG
An Intro to Cloud Computing......RGrajatricky
 
Understanding the Microsoft Cloud
Understanding the Microsoft CloudUnderstanding the Microsoft Cloud
Understanding the Microsoft CloudDavid J Rosenthal
 
Salesforce vs aws who is better cloud service provider [2021 edition]
Salesforce vs aws  who is better cloud service provider  [2021 edition]Salesforce vs aws  who is better cloud service provider  [2021 edition]
Salesforce vs aws who is better cloud service provider [2021 edition]
Katy Slemon
 
Beyond The Intranet: Digital Workplace Apps, Solutions & Bots
Beyond The Intranet: Digital Workplace Apps, Solutions & BotsBeyond The Intranet: Digital Workplace Apps, Solutions & Bots
Beyond The Intranet: Digital Workplace Apps, Solutions & Bots
Richard Harbridge
 
Zoho crm mailchimp integration
Zoho crm mailchimp integrationZoho crm mailchimp integration
Zoho crm mailchimp integration
ethonindia
 
Web hosting is a software business
Web hosting is a software businessWeb hosting is a software business
Web hosting is a software business
isabelwang
 
"Build AI Compliant Whatsapp-like Chat App Using Qiscus SDK" by Evan Purnama ...
"Build AI Compliant Whatsapp-like Chat App Using Qiscus SDK" by Evan Purnama ..."Build AI Compliant Whatsapp-like Chat App Using Qiscus SDK" by Evan Purnama ...
"Build AI Compliant Whatsapp-like Chat App Using Qiscus SDK" by Evan Purnama ...
Tech in Asia ID
 
Are You Ready For The Cloud
Are You Ready For The CloudAre You Ready For The Cloud
Are You Ready For The Cloud
BurCom Consulting Ltd.
 
Amazon Case Study 2
Amazon Case Study 2Amazon Case Study 2
Amazon Case Study 2
Rochelle Schear
 
Discovering the value of the cloud for the business
Discovering the value of the cloud for the business Discovering the value of the cloud for the business
Discovering the value of the cloud for the business Dr. Ramkumar Lakshminarayanan
 
Web services & com+ components
Web services & com+ componentsWeb services & com+ components
Web services & com+ components
GowriLatha1
 
The text defines three service layers when describing Cloud Computin.pdf
The text defines three service layers when describing Cloud Computin.pdfThe text defines three service layers when describing Cloud Computin.pdf
The text defines three service layers when describing Cloud Computin.pdf
arihanthtextiles
 
LotusLive Overvew
LotusLive OvervewLotusLive Overvew
LotusLive Overvew
Chris Sparshott
 
Step by Step Salesforce Integration with AWS.pptx
Step by Step Salesforce Integration with AWS.pptxStep by Step Salesforce Integration with AWS.pptx
Step by Step Salesforce Integration with AWS.pptx
AwsQuality
 

Similar to Amazon Connect Notes.docx (20)

AWS Connect – The Ultimate Omnichannel Customer Service Solution
AWS Connect – The Ultimate Omnichannel Customer Service SolutionAWS Connect – The Ultimate Omnichannel Customer Service Solution
AWS Connect – The Ultimate Omnichannel Customer Service Solution
 
Step by Step guide to start your cloud journey
Step by Step guide to start your cloud journeyStep by Step guide to start your cloud journey
Step by Step guide to start your cloud journey
 
AWS-The-Ultimate-Cloud-Solution-Guide.pdf
AWS-The-Ultimate-Cloud-Solution-Guide.pdfAWS-The-Ultimate-Cloud-Solution-Guide.pdf
AWS-The-Ultimate-Cloud-Solution-Guide.pdf
 
AWS the ultimate cloud solution guide
AWS the ultimate cloud solution guideAWS the ultimate cloud solution guide
AWS the ultimate cloud solution guide
 
CBR0414_Telecity_Ezine_V5
CBR0414_Telecity_Ezine_V5CBR0414_Telecity_Ezine_V5
CBR0414_Telecity_Ezine_V5
 
An Intro to Cloud Computing......RG
An Intro to Cloud Computing......RGAn Intro to Cloud Computing......RG
An Intro to Cloud Computing......RG
 
Understanding the Microsoft Cloud
Understanding the Microsoft CloudUnderstanding the Microsoft Cloud
Understanding the Microsoft Cloud
 
Salesforce vs aws who is better cloud service provider [2021 edition]
Salesforce vs aws  who is better cloud service provider  [2021 edition]Salesforce vs aws  who is better cloud service provider  [2021 edition]
Salesforce vs aws who is better cloud service provider [2021 edition]
 
Beyond The Intranet: Digital Workplace Apps, Solutions & Bots
Beyond The Intranet: Digital Workplace Apps, Solutions & BotsBeyond The Intranet: Digital Workplace Apps, Solutions & Bots
Beyond The Intranet: Digital Workplace Apps, Solutions & Bots
 
Zoho crm mailchimp integration
Zoho crm mailchimp integrationZoho crm mailchimp integration
Zoho crm mailchimp integration
 
Web hosting is a software business
Web hosting is a software businessWeb hosting is a software business
Web hosting is a software business
 
Ds service cloud_edcompare
Ds service cloud_edcompareDs service cloud_edcompare
Ds service cloud_edcompare
 
"Build AI Compliant Whatsapp-like Chat App Using Qiscus SDK" by Evan Purnama ...
"Build AI Compliant Whatsapp-like Chat App Using Qiscus SDK" by Evan Purnama ..."Build AI Compliant Whatsapp-like Chat App Using Qiscus SDK" by Evan Purnama ...
"Build AI Compliant Whatsapp-like Chat App Using Qiscus SDK" by Evan Purnama ...
 
Are You Ready For The Cloud
Are You Ready For The CloudAre You Ready For The Cloud
Are You Ready For The Cloud
 
Amazon Case Study 2
Amazon Case Study 2Amazon Case Study 2
Amazon Case Study 2
 
Discovering the value of the cloud for the business
Discovering the value of the cloud for the business Discovering the value of the cloud for the business
Discovering the value of the cloud for the business
 
Web services & com+ components
Web services & com+ componentsWeb services & com+ components
Web services & com+ components
 
The text defines three service layers when describing Cloud Computin.pdf
The text defines three service layers when describing Cloud Computin.pdfThe text defines three service layers when describing Cloud Computin.pdf
The text defines three service layers when describing Cloud Computin.pdf
 
LotusLive Overvew
LotusLive OvervewLotusLive Overvew
LotusLive Overvew
 
Step by Step Salesforce Integration with AWS.pptx
Step by Step Salesforce Integration with AWS.pptxStep by Step Salesforce Integration with AWS.pptx
Step by Step Salesforce Integration with AWS.pptx
 

Recently uploaded

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 

Recently uploaded (20)

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 

Amazon Connect Notes.docx

  • 1. 1. Amazon Connect Overview History of Amazon Connect Amazon Connect is a simple to use, cloud-based contact center that runs on AWS. Amazon created Connect in response to their own internal demands and to support them in becoming Earth's most customer-centric company. Amazon launched on the 28th of March 2017. Connect comes with the standard contact center features you would expect such as skills-based routing, call recording, real-time and historical analytics, high-quality voice which uses web RTC and the Opus codec which is highly resilient to packet loss and jitter. Some of the differentiators of Connect include its self-service ability. With no contact venter experience anyone can build a Connect instance and start making your first call within just a few minutes By integrating to your customer data, with Connect you're able to build personalized, dynamic, and natural customer experiences, the same technology that powers Alexa. Integrations have historically been a significant pain points. Connects open platform, its integration capabilities, and the Amazon Connect quick start guides are breaking down barriers. Last but not least is the AWS ecosystem. Connect seamlessly integrates with Amazon S3, Kinesis, Lex, and AWS Lambda. Pricing model One of the great benefits of Amazon Connect is the pricing model. It is simple and transparent. You will pay for customer-connected minutes and associated telephony charges, and if you use any of the AWS services, you'll be charged at the advertised rates for those, so just throw in the call recordings for Amazon S3. For the $0.018 per minute service charge, you getting use of the
  • 2. Connect platform. You're not charged any extra for the agents or per site, and you can have 5,000 agents configured and online, but you'll only pay for Connect when it's handling inbound or outbound traffic. There are no software charges, either upfront or ongoing, and any new native features that are released to the platform, you'll have access to them.
  • 3. You do not pay for any hardware or auto-scaling, and there are no commitments. You can run 1,000 agents one day and nothing the next with no penalty. Here is a pricing example from North America. The customer-connected minutes are charged at the same, regardless of the location set at $0.018 per minute. For telephony, you pay for rental charge for the number reservation and then usage costs. As we can see here, for a DID number, the daily rental is $0.03, and $0.003 per minute, with the toll-free having a rental of $0.06 and a per minute charge of $0.012, and finally, outbound calls from North America to North America are charged at just $0.0065 per minute. Here is an example for the Sydney region and Frankfurt. I have seen these costs reduced over the past year. As such, I highly recommend that you visit the pricing page for the most up to date numbers, and best of all, you can get started for free. Amazon Web Services are known for their free tier, and Connect is no exception. As of this recording, you get 90 minutes per month of customer connected usage, a DDI, 30 minutes per month local DDI calls, and 30 minutes per month of local outbound calls for 12 months from the date that you create your first instance.
  • 4. Architecture overview One of the special things about AWS is that you can be the richest company in the world, a unicorn, start-up or a solo builder and you get access to the very best and latest technology available and Connect is no different. Content centers traditionally have been very big in complex systems that would require significant operant investment, a small army of people to design, build and support and projects that would span multi years. You may have noticed that I use the term builder. This is deliberate, a term used by Amazon for good reason. AWS is like a joint Lego set and I'm sure this is not the reason why Lego is popular in the tech world. You can build simple solutions or complex, integrant solutions, you can add and remove as you desire, just like building. The term builder also has another meaning. It sends a message that you don't have to be a developer to use AWS and I believe this is the real message Amazon wants to give and that holds true for Connect. With those concepts in our mind, let's have a look at some high level diagrams. Firstly, we start very simple. This icon is for Connect. On its own, you have a feature-rich content center that can be built with just a few clicks and within minutes, you can be making and receiving calls. Some of the features you get with this are inbound DDI and toll-free numbers, multi-language, speech to text, routing and agent configuration, softphone, manual outbound dialing and reporting and as this is 100% Cloud-based, your agent and administration connections still connect is via the public Internet. Cloud Watch is an AWS service for real time and historical system and application metrics. We'll use Cloud Watch to monitor the Connect instance. I'm sure
  • 5. you can already start to see some business processes whereby this solution would be suitable, that are low risk and allow you to start benefiting from Connect and enables you to learn about a solution and understand what more you want.
  • 6. And as Connect is a software solution, you're not limited to just one instance. You can have five per region as a soft limit. To increase this limit, you need to raise a Support Request with AWS. Okay, let's add another building block to this. I'll add S3 for call recording and report storage. We've just added an S3 bucket. S3 is Amazon's simple storage service. Think Dropbox and I must admit, this could have been included in the first architecture we looked at but as it's not mandatory, I really want you to understand how flexible the solution is. Adding S3 enables call recording storage and report storage. Once enabled, you just need to configure your reports and enable call recording within the Contact flows. It's a one step process, that's it. With S3, you can set policies to delete data at a certain age or keep the data indefinitely and storage is unlimited. Another build in our solution is Amazon Lex. Lex allows you to build conversational interfaces. Think voice box. It enables you to add natural language into your contact flows. We've now moved from DTMF touch inputs into a conversational interface, just like Alexa.
  • 7. The final building block we'll explore in this course is AWS Lambda. Lambda is a code execution service and provides us with exciting integrations for Connect, that allows us to get information about the customer from a database or retrieve information from API's or complete booking transactions for the customer. With Lambda, this empowers us to provide extremely rich customer journeys. If you look at the Connect service in isolation, you will not fully understand it's power and potential.
  • 8. With integrations like Lambda, you're limited only by your imagination. What might not be totally clear until this point is that all of these services are serverless. This means there are no service to provision, patch or support and they provide a highly scalable and elastic service. This greatly reduces provision and development and operational effort and you only pay for what you use. If you need Connect for just a week, go for it. A few hours, no problem. During this course, we'll explore all of these items in more detail, however we are just scratching the surface with the architectural options possible with Connect.
  • 9. To show how you can continue building on Connect, there are additional features and services such as Kinesis for real time data streaming, Transcribe for audio to text, Comprehend for understanding intent within text, Amazon Connect Streams for building a custom agent desktop with phone controls to replace the built-in softphone UI, text messages, analytics, work force management, app integration and many more could form parts of your content center solution. Amazon Connect is a building block in your customer experience solution.
  • 10. 2. Create an Instance Build an Amazon Connect instance Okay, first let's make sure you're logged into the AWS console and you can see the AWS services page. To get to Connect we can either search for it using the search bar or we can scroll down, open all services, and under customer engagement click on Connect.
  • 11. On the top right-hand side you'll see I've got North Virginia selected. If I expand this down I can see Amazon Connect is available in several regions. We have North Virginia, Oregon, Sydney, and Frankfurt. I want to build my solution in North Virginia. With that selected I'm gonna go ahead and get started. First you have to provide a name for your Amazon Connect instance. I'm going to use kinectecinc as my choice. With that selected, I'm gonna go ahead and press next step. We now get the option to create an administrator. I'm gonna skip over this part as I will use my Amazon Connect log on to administer the instance. Next, we get to see some telephony options. By default we have incoming calls enabled as well as outgoing calls. This is just what I need, so we're gonna go next. Data storage is also completed for you automatically. Amazon Connect will build an S3 bucket and store all the call recording and reports in those S3 buckets. With no changes needed I'm gonna go ahead and press next step. Finally we get to review and create our instance, to check over all the information. Once you're happy go ahead and press create instance. Amazon Connect will take a minute or two to build. There we have it.
  • 12. Congratulations, your very first contact center is built using Amazon Connect. Claim your first number Now that we have our instance built, let's go ahead and start claiming our first number. We'll continue by clicking on Get Started. This is now logged me into my Amazon Connect instance. You can you see the url at the top with the instance name that I provided. Amazon Connect provides you a help wizard. We can continue by pressing Let's Go.
  • 13. In here we're going to claim my first phone number. I'm now able to select from the available country list, the numbers that I would like to connect to my Amazon Connect instance. As I'm in North America, it doesn't actually limit me the numbers I can provide. I'm going to go and choose the United States. I have direct dial selected by default, or I could choose a toll free number. Expanding the list, I've got a list of five options. I'm gonna go ahead and choose the top one and press next. Okay, I'm now ready to make a test call. Using my phone, I can go ahead and place a call into my Amazon Connect instance. Okay so I have to dial +1 254-294-9311. I'm going to put my phone on speaker so you can hear the menu. - [Phone Automated Voice] Hello, thanks for calling. These are some examples of the Amazon Connect Virtual Contact Center can enable you to do. Press one to be put in queue for an agent. (Phone keypad beeps) Two to-- Thank you for calling. Your call is very important to us and will answered in the order it was received. - [Instructor] Okay, my calls come through to my agent and we're gonna press accept. The call is now connected and as you can see, I have the contact control panel available on my browser. The customer's connected. I've got the ability to press hold, resume the call, or I can transfer if I wanted to transfer to another agent. I'm gonna go ahead and end the call. My agents is now put into AfterCallWork. I will remain in AfterCallWork until I select available. I'm gonna go ahead and move the agent back into available. And there we have it, we've now placed our first call into our contact center and answered that using the softphone. Log in to your instance Once you have created your Amazon Connect Instance, you will need to log into this to administer it. From AWS console, type connect and click on the link. Underneath instance alias, click on your link. On the right hand side we simply click login as administrator. Navigate the Connect UI Okay, now we've claimed a number. Let's skip over the wizard and have a look at the connect UI As you can see, Amazon Connect, we've got the URL at the top for instance. On the right- hand side, we've got the logged-in user. Which is my IM user from the AWS console. I have an exit option so I can logout. I can change the language of the connect UI. And I can press on the phone option to bring up the contact control panel or CCP. CCP is the UI that the agents and supervisors will use to make and receive calls. Looking on the screen, I have the ability to change my status. If I click on the drop down I have the available options by default of offline and available. We can edit those later in the course as we go.
  • 14. I have the ability to press dial number, I could choose the destination, enter the phone number in dial. Or I can look at quick connects, which show a list of speed dials that are available by default. Currently there are none displayed. We will configure those later in the course. I also have an option of a cob if I click on here, we've got three features. At the moment CCP's configured there's a softphone, so I'll be making and receiving calls over my browser connection. I have the ability to use a desk phone. Amazon connect will place a call to my phone, and when answered I will use CCP to control that device. But the audio will be going over the phone.
  • 15. I then have the ability to download local logs, to help trouble shoot or change the language of the connect UI. Finally, if we have a look at the URL we can see it's a very specific URL. You can provide this to agents and supervisors, so they can log directly into CCP. Closing the window, we'll have a look over the connect dashboard. The dashboard shows the guide, we can hide this. And then it will show us our queue information and reports that we've configured. On the left hand side we have the menu options. We've got metrics and quality, rou ting, and users.
  • 16. We'll explore all of these in greater detail throughout this course. If we look over routing and have a look at contact flows, you can see by default there are some contact flows provided and some sample queues as well. If we click on this, we will see the contact flow designer. This is a drag and drop interface, to help you build and configure your contact flows. You don't need any third party tools, or any other software. You just use this builder and simply drag and drop onto the canvas. Porting numbers Migrating your workload to Amazon Connect will require some consideration around any inbound and outbound numbers that you may be using. If you have an existing contact center it is highly likely that you have at least one number and maybe hundreds or even thousands. When migrating to Amazon Connect there are a few options to consider. If you're able to use the
  • 17. Amazon Connect provided numbers, this will be the quickest and easiest way. Simply configure and publish these numbers as you need. However, if your numbers are printed on collateral such as websites and physical objects than this isn't likely to be an option and you may need to explore other options. Number porting in one such option. Amazon supports porting of numbers into Amazon Connect. Another option depends on if you have non-geographic toll-free numbers. You can ask your current telecommunications provider to route to the new Amazon Connect DIDs. Your customers will still dial the same numbers and you'll be benefiting from Connect. You need to consider a few items when porting numbers. Only some countries are supported. The list of supported countries as of this recording is the United States. You can port DIDs and toll-free numbers. The number porting process can take several weeks to complete. The process for migrating the numbers is worth understanding and carefully considering. In many cases when you migrate the number you're effectively going to migrate your workload over to Connect. To make this process as smooth as possible you should first build out your routing using the number provided from Amazon Connect. Complete all the testing and training required and only once you're happy submit the porting requests to Amazon. The porting requests will take several weeks to complete. Amazon will first check that the numbers are suitable for porting and then require you to complete a letter of authorization which is sent to the owner provider that allows the porting to take place. Once Amazon receives a date for the ports they'll inform you and make the numbers available to configure and you'll Connect instance. It is then advisable to immediately configure your Connect instance sending the newly available numbers to the right contact flows, updating quick dials and queues as required. There is a lot of information when thinking about number porting. Amazon has a lot of great detail at this link which I recommend you review before requesting your numbers to be ported.
  • 18.
  • 19. 3. User Configuration Users within Amazon Connect includes agents, supervisors, QA personnel, and administrators, plus any other groups you may require. The image shows your interactions between the different configuration items within Connect and how they link
  • 20. together. When you create a user, you must assign a security profile. This will determine the user’s permissions. For example, the difference between an agent and a supervisor is the security profile. Assigning an agent to a hierarchy enables you to report on groups and groups of groups within the reporting system. An agent can only be assigned to a single routing profile. A routing profile determines what types of calls the agent can receive and the queue priority. Routing profiles and queues are grayed out as we shall not be discussing them in detail within this chapter. However, their inclusion aids understanding and helps make the routing to users in a later chapter. Let's take a look at each element and don't worry, there is a summary cheat sheet coming up. Hierarchies are used to group agents together. They are not mandatory and you can add them later if required. They are very powerful for filtering on real time and historical reporting. You're able to create up to five levels and you can assign agents to any level. From KinetEco in Content Center
  • 21. , I've decided to create the hierarchy as such. I have used all five levels, but you don't have to. I've organized this to focus on business processes over location but you can configure this however you choose. The orange boxes are the different levels and the gray boxes are the groups that I've created within. You can see I have UK twice, these belong to different departments and so are not a duplication. The agent Athiya is assigned to Moe's team located in London, the UK and works within the service function. The agent Vic is assigned to Bob's team, located in Nottingham, UK and works within the sales team. I don't currently have groups within North America, Nottingham service and London sales. I can add these at a later date as KinetEco grows. And when filtering and reporting, I can drill down to any of the gray groups. Security profiles are used to assign privileges to users. By default you're provided with four profiles. Agent, contact center manager, QA and admin. Each profile is built to allow permissions from the options available. You can define to a very granular level, you can then assign one or many security profiles to your users as required. Routing profiles are used within queues to agents. A user can only be assigned to one routing profile. However, you can have many routing profiles and make very complex routing behaviors. A routing profile determines the outbound caller ID presented when the user makes an outbound call as well as the priority of the different queues. And finally, users. You can create users via the Amazon Connect UI one by one or with an upload of a CSV file. When creating users, you specify the name, login ID, email and password. You also get the options of auto-answer so the user will not have to press
  • 22. answer and a call will simply connect. Another option is after-call work timer. The timer will force the user out with a after-call work state once the timer has passed. You don't need to assign a hierarchy, but when you do, you can only do one. Agent statuses are used to record which status an agent is in. By default, you have available, which is a routeable state, and offline which is a non-routeable state. You may wish to include further states such as lunch, break, meeting, investigation, et cetera. States are global and can be deactivated as required. There is a lot of information that we've just ran through. This cheat sheet will help you remember all the elements, their relationships, and help you grasp the concepts implemented within Amazon Connect. Create an agent hierarchy Creating agent hierarchies is very simple. I've already created my design for KinectEco. And so let's build this out. I've logged into the Connect UI and I'm going to use the left- hand side bar menu to select Users and then Agent Hierarchy. Firstly, I'm going to create my five levels. I'm going to start with Company as my level one. And then I'm going to add another level by clicking on the plus icon. And this is going to be called Department. I then continue adding levels and building them up. Adding my third, which is Country, my fourth, which is City, and finally, Supervisor. Once I'm happy with those levels, I'm going to click save to save the changes. And you can see the confirmation that that's been completed. Now that my hierarchy is completed,
  • 23. I'm now able to add my groups. Scrolling down, I can see that I've got my first level, Company. And within here, I'm going to add my company KinectEco. Once I'm happy, press on the tick, and that's now saved. I'm going to click into KinectEco, scroll down again, and now I'm in my level two for Department. This time, I'm going to add two departments: Service and Sales. Now my Service and Sales are completed,
  • 24. I can go into each of those and add my country. Opening up Service. I'll add my countries, which are U.K. and North America. I can now go into my U.K. country and add my cities which are Nottingham and London. I'll now go into London and add my Supervisor groups for Jeni and Moe. I now need to go back up a few levels, back to my sales organization. Clicking on KinectEco, as my company, I can now go back down into Sales. In Sales, I'm now going to add my countries. I have U.K. and North America. Clicking into my U.K. country, I'm going to add my cities of Nottingham and London. And finally, within London, I'm going to create my supervisor of Bob. I've now completed building up my hierarchy as per my design.
  • 25. Create security profiles I've logged in to the Connect UI, and I am going to use the left-hand side bar menu to select users and then security profiles. The four shown are provided by default. They will likely provide you with a solid foundation, and you may only want to tweak a few elements to start with. From this one page you can see what permissions each profile has been granted. For example, the Agent profile is allowed full access to all CCP features, and Admin has access to all features.
  • 26. Let's have a closer look at the Agent profile. By clinking on the link, we are taken to the edit security profile page. In here we can edit anything apart from the name. Scrolling down and expanding routing, we can see that there are no permissions provided for this security profile, this is as expected. On the left hand side we can see the different routing permissions, and on the right we can can see the type of permission being provided. Some of the checked boxes are grayed out, this is because that permission is not applicable for that feature. Expanding the other boxes we can see that only CCP has any permissions assigned. Okay, let's go ahead and create a new security profile, that we'll call Coaches. Going back in our browser, we're taken back to the manage security profiles page. If I hover over the Agent I get a new icon, that enables me to copy the profile. On this occasion I don't want to do that. So, I'll click on the add new security profile button, on the top right. I'll give it a name, Coaches, and the description is, read only for reporting and metrics. Okay, to enable these permissions I need to expand metrics and quality. Scrolling down we're gonna open metrics and quality. To enable reporting I'm going to grant all permissions to metrics, content search and login/logout reports. To enable manager listen in I'm going to check all here to. However, for call recordings and saved reports, I don't want to select all. As you can see when clicking on all for call recordings, this profile will then allow users to listen, download, and delete recordings. I only want these users to have the ability to listen. So deselected all, clears the permissions, and now I can just select listen. I then want to allow these users to view saved reports, but no other permissions. I can now save this profile and see it is included within the full list. You may have noticed that I didn't grant permission to CCP. If this new profile is the only assigned profile, then users will not be able to use CCP. When I create my users, I will assign the security profile Agent and Coaches as you can layer security profiles on top of each other.
  • 27. Create users I've loggedintothe ConnectUI and I'm goingto use the left-handsidebarmenutoselectUsersandUser management.We cannow see the Usermanagementpage.However,we cannotsee anyusers,butwe are loggedin.Thisisbecause we are loggedinas the administratorviaourloggedinAWSIAMprofile. Let's addsome users.We'll addan administratoranda coach. We can do thisby clickingonAddnew users.We're goingto do thismanually,sowe'll pressNext.OurfirstuserisSophie Smith.Herloginname isgoingto be ssmith.Email isnotmandatory,sowe'll leave thatblank.We doneedto entera password and repeat.We nowneedtogive the usersome permissionsandprofile information.We've notbuilt any routingprofilesyet;these detail whatqueuesare tobe handledbythe profile.Fornow,we'll select Basic RoutingProfile.AndasSophie'souradministrator,the securityprofile,we'llchoose Admin.If we scroll downto the bottom,we can nowsee that the Save buttonhas illuminated,andsowe have met the minimumrequirementstocreate a user.However,let'sexplainthe lasttwosections.PhoneType; youhave two options,asoftphone or a deskphone.Softphone meansthe userwill make andrece ive callsusingCCPwithvoice overthe browserconnectiontoconnect.Deskphone meansthatcallsare receivedonthe numberprovided.Thispre-populatesthe CCPforthe users,anditcan still override this if required.If the userupdatesthe number,it changeshere also.A little bitaboutthe mode of this connectivity;if you're receivinganinboundcall,yourdeskphone will ring,anduponanswering,the customerwill be connectedthroughtoyou.Youmust use CCPfor all call control,such as hold,transfer, and disconnect.If you're makinganoutboundcall,Connectwill call yourdeskphone andthencall the destinationnumber.Andagain,youmustuse CCPforcall control.Aftercall workisthe time that the userwill spendafterthe customerhasdisconnectedandbefore the usermovesintoaroutable state, such as available,oranon-routable state,suchaslunch.Thistime,it'scountedaspart of the average handle time,orAHT.If youset a timerhere,please note the usercannotoverridethisand the usergets no warning.Andfinally,AgentHierarchy.ForSophie,I'mgoingtoput herunderKinetEcoasshe'san admin.We clickSave and thenwe can review ourentry.Now clickCreate users.We now get the option to create more users.However,we'll clickbackjustsowe can see our newly-createduser.We'll now quicklyaddanotherusercalledBobbyclickingonAdd new users,selectNext,andprovide the required information.Sowe'll enterBob'sfirstname.Hissurname isJones.Hisloginname isbjones.We'll leave hisemail blankandwe'll sethispassword,andrepeat.Bobwill have the same routingprofile,Basic RoutingProfile,andoursecurityprofile isCallCenterManager.We'llchange hishierarchytobe KinetEco, Sales,UK,and Nottingham,and we'll pressSave.Now tocompleteBob'screation,we'll justpressCreate usersand Back. Nowwe can see our twousersthat we've justcreated Create users in bulk Let's lookat howto bulkcreate users.I've lockedintothe ConnectUI,I'm goingto use the leftsidebar menuto selectusers,andusermanagement.Fromhere,I'mgoingtopressaddnew users.Andnow,we getthe optiontouploadfroma template.Butfirst,we needtodownloadthe template.Clickingonthe linkwill downloadthe CSV fileforusand thenwe can openthisinExcel.I'm justgoingto expandthe headerrowfor you,justso youcan see andjustzoomin a little bitsowe can read that clearly. We're providedwithaheaderrow,whichismandatory,anda secondrow isan example of auserwhichwe needtodelete beforeyouuploadthe file asitwill error.We're goingtoadd twousersintoour profile. First,we're gonnaadd VicWhite.We're goingto leave hisemail addressblankandseta password.The
  • 28. userloginwill be vwhite andthe routingprofile name will be basicroutingprofile.Forthe security profile,we're goingtochoose agent.The phone type will be asoftphone.We don'twant to auto accept and the aftercall wait timerof zerosecondswhichmeansthere isn'tone configured.Andthatisnow readyfor Vic.We'll copyVicintoa newrow and we'll amendhimforAthiya.AthiyaKumarwithalogin as akumar andeverythingelsethe same.We'll save thatfile,butfirst,we needtodeletethe secondrow and nowwe're readyto save the file.We'll headovertothe ConnectUI and we'll pressnext.We'll choose our file,openafile andlookatthe verificationof it.We cansee we're gonnacreate twonew users,VicWhite andAthiyaKumar.They'll have the basicroutingprofile,securityprofileof agentand our configurationitemsisexactlyhowwe wantthem.We'll clickoncreate usersandnow we have a statusof done andwe can clickback and now we can see the listof our usersthat we have justcreated viathe bulkuploadprocess.Agenthierarchiescannotbe setwithinthe bulkupload,butwe canbulkedit them.If we clickon AthiyaandVic andwe go into edit,we couldupdate the hierarchiesforbothof themat the same time.However,theirbothindifferentgroups,sowe needtodothemone byone.We do Athiyafirst,we gointoedit,selecthierarchy,we're goingtoKinetEco,department,she'sinservice, she'sinthe UK, Londonoffice andunderJeni.We'll presssave.Now we dothe same forVic.KinetEco, thistime insales,inthe UK, Londonoffice andunderBob.Andall that's beenreflected. Create agent status codes Let's have a lookat creatingsome agentstatuses.Onthe left-handside we choosethe usersmenuand downto agentstatus.We can see we have twoby default.We have availablewhichisaroutable state, or offline whichisanoffline state.Theseare mandatoryandare preconfiguredbyKinect.We canadd a newstatusby clickingonthe add newagentstatus.I'm gonnacreate a new one forlunch.Thiswill be usedforwhenour agentsgo onto a break.We'll enterthe name andjustpresssave and it's created. We'll doanotherone.Thistime for meetings.Provideaname and a descriptionandpresssave.And there theyare.Andtheywill be available withinKinectwithinabout60seconds.Youcannot delete agentstatuses, butyoucan deactivate themasrequired,whichpreventsthemfrombeingdisplayed withinCCP.Youcan alsodrag themaroundon thisscreenlike this.If youpresssave thiswill be updated withinthe agent'sCCPto be the order displayedonthe screen.Andfinally,agentstatusesare global.
  • 29. 4. Routing Configuration The configurationof inboundcall routingwithAmazonConnectcanbe distilledintothispicture. Users are grayed-outastheywere discussedindetail inthe previouschapterof the course. However,I've includedthemhere tolinkthe twotogether.So,how doesthisall work?Ata high level,usersare configuredwithasingle routingprofile.Routingprofilescontainone ormore queuesandsetthe priority.Queuesare usedtogroupcontact typestogetherandmusthave openinghoursconfigured.Quickconnects,thinkspeeddials,are createdand assignedto queues.Queueshave aphone numberconfiguredthatisthenusedas the callingline identity for callbacks.Call routingandIVRscriptsare knownascontact flows.These contactflowsare
  • 30. where youwill spendalotof your time andinclude prompts,queues,andmanyotheraction blocks.There'sa lotto thinkabouthere,solet'sbreakthese down.We'll firstlookatqueues. These are usedto segmentcontactsintogroups,thinkservice orsales.If noagentsare free, thenthe queue will keepthe contactonholduntil someone becomesavailable.Real-time and historical reportingcanthenbe filteredbyqueues.Queueswill route toagentsthathave the queue withintheirassignedroutingprofile onafirstcome,firstservedbasisstartingwiththe longest-availableagent.Andfinally,queuescannotbe deletedasthisaffectsthe reportingbut youcan deactivate them.Routingprofilesjoinagentstoqueueswithsome additional logic.A routingprofile canhave one or more queuesconfiguredandyou can applyprioritiestothe queues.Thismeansfora particularroutingprofile,contactsinservice canbe the priorityone, withsalescontactsas prioritytwo.Thisensuresthatthe agentsonlyhandle salescontactswhen there are no queuingservice contacts.Youcan alsoadd a delay,inseconds,betweenthe queue selectionsothatservice contactsare answeredfirst,waitx numberof seconds,thenanswer contacts fromsales.Thisfeature isveryuseful foroverflow routing,orforring-fencingsome groupsof users.And,finally,eachroutingprofile needsanoutboundqueueassigned.Thisis usedforreportingbutalsofor outboundnumberpresentation.Hoursof operationare created and assignedtoqueuestosetthe openingtimesforthatparticularqueue.Youcancreate multiple policies,eachpolicyhasmultiple rowstobe usedforeach dayof the week,withan hourlyrange.Andone policycan onlycoverone time zone.Youmustcreate the hoursof operationpolicypriortocreatinga queue asthese are mandatoryfor queue creation.However, youcan override the sethourswithinthe contactflow,asrequired.Quickconnectsare like speed-dials.These are presentedwithinCCPforthe agentstouse.A quickconnectcan be an external number,anagent,ora queue.Quickconnectsare global howeverthey're assignedto queuesandsoare onlypresentedtothe agentthathave those queueswithinthe assigned routingprofile.External quickconnectscanbe seenall the time withinthe CCP,whereasagent and queue quickconnectsare onlyvisible whenanagentisservicingacontact. Updatesto quick connectsare dynamicandtakesaroundabout a minute tobe seen.Phone numbers,nice and simple here,yousimplyassignthe numbertoa single contactflow.However,justbe aware that whencreatinga numberitwill take ashort while forthe numbertobecome dialable.Prompts are usedto playpre-recordedmessagessuchasqueue musicor messagesforthe IVR.They mustbe 8kHz, .wavformat,and below 50 MB insize.Youuploadpromptsdirectlywithinthe ConnectUI, or youcan evenrecordandeditdirectlywithinthe browser.It'sworthnotingthat manyof yourIVR flowsmightwell utilize the text-to-speechengine withinthe contactflows.So, it's likelythatyouwill have justafew promptstomanage.Andfinally,contactflows.Thisis where all yourroutinglogicwill be managedtocreate IVRflows,setlogic,call recording, callbacklogic,etcetera,alongwithcontact filteringandconnectivitytoexternal services, such as Lex and Lambda.Contact flowsare createdusingthe drag-and-dropinterface withinthe ConnectUI, and youcan exportandimportcontact flowsas JSON files.There are manydifferent typesof contact flowsthatare usedto handle the customerandagentexperiences.Asaresult, the AmazonConnectteamprovide youwithaset of default,pre-configuredcontactflowsto helpyouto getup and runningmuchquicker.There'salot to rememberhere,sothissingle page bringsall the keyinformationbacktogetherforyou.Go aheadand spendtime on understandingthe relationships.
  • 31. Create hours of operation Creatinghoursof operationisfairlysimple.Iwantto create a new policythatsetsthe openinghoursfor salesandservice queuesfrom9a.m. to 5 p.m. MondaythroughFridayand Saturday9 'til 12 and 1 'til 3. Withinthe ConnectUI let'sgo to the routingoptiononthe leftanddownto hours of operation.Inhere we have the basic hours,whichisthe policythat'sprovidedbydefault.Onthe right-handside we're goingto add our newpolicy.Sowe'll clickonaddnew hoursand provide aname.I'm goingto provide thisname Service&Salesastheywill have the same openinghours.Anddescription,we'lljustput openinghoursforservice andsales.Scrollingdownslightlywe cansee the differentrowsforthe differentdaysandthe hoursthat are assignedtothem.We have a time zone onthe leftand we're gonnago aheadand set thisto be Phoenix.Iwantmyhoursto be Monday throughFriday9 a.m.'til 5 p.m.,so that'sgood. SaturdayI wantthisto be 9 a.m. to 12 p.m.So we'll goaheadand change it to be closingat 12 p.m.I nowwant mylinestoopenfrom1 p.m.on Saturday.But I don'tneedSundaysoI'll repurpose Sundaytobecome Saturday,andthenthisbe 1 p.m.and change itto be closedby3 p.m. And that's my hoursof operationspolicythat'sbeencreated.I'll goaheadandpresssave.Andnow I can use that policywithinmyqueue assignments. Create queues For my qualityqueue routine Iwanttofiltercallsbyservice andsales.Solet'sgoahead andcreate two newqueues.Fromwithinthe ConnectGUI,go to Routinganddownto Queues.Tocreate a new queue,
  • 32. we simplyclickonAddnewqueue.Inhere we needtoprovide aname.I'll create myservice queue first. Enter service.Andthe description.We needtosetthe hoursof operation,we canuse the drop down box to selectthe hoursthat we require.Forthis,I'mgoingto use service andsales.We have the option to provide acallerID name.For this,I'mgonna setmine toKinetEco.The outboundcalledIDnumber, choose fromthe dropdown,isthe one we createdwhenwe builtthe instance.Andthe outbound whisperflow,we will use the defaultwhenitisprovided.Thisisusedtosetthe outboundexperience, such as the callercallingbehaviorandanymessagesthatare playedtothe customerbefore connecting to the agent.Withall thatnow set,we have the optiontoletthempause inqueue,bypressingonthe Seta limit.Settingalimithere affectsthe wayyoubuildyourcontactflow.The actionblockof transfer to queue hasa at capacity output.Once thislimitisreached,the subsequentcontactswillflow down that route.Thisisgood foroverflowroute,suchasofferingcallbacksinqueue tosmoothoutthe peaks. I'm not goingto needthis,soI'll deselectit.Ourlastoptional itemsare the quickconnects.I'mgoingto leave thisblankfornow,aswe've notconfiguredanyquickconnectsjustyet,andwe'll come back to that later.To save the queue,we goback to the top onthe righthand side andclickAddnew queue.We nowneedto adda secondqueue forsales,sowe'll clickonAddnew queue andwe'll entermysales information,provide aname anda description,selectthe hoursof operationfromthe available list,the outboundcallerID,alongwiththe outboundcallernumber,andthe contactflow.We are goingtoleave the contacts inqueue limitblank,andagainthe quickconnectsblankaswell.Backto the top,clickon Addnewqueue.Nowwe cansee the two new queuesthatwe've created,forServiceandSales. Create quick connects My agentsare goingto needtocontact other agents,teams,andcompanies.Tosupportthis,I'll create some quickconnects.Fromwithinthe ConnectUI,go to Routing,anddownto quickconnects.Creating a quickconnectis a simple process.We'll clickon the "Addnew"button,whichaddsanew line right here on thispage forus to complete.First,I'll create anexternal quickconnect.We needtoprovide a name.Thiswill be displayedwithinCCP.I'll call thisone "Dispatch."The type isgoingtobe external,and the destinationisanexternal number.Thisneedstobe formattedasanE.164 number,andfinally,we needtoprovide a description.I'll simplyjustcall thisone "Dispatch."Tosave the row,we justpress "Save,"andnowour quickconnectis available.Thiswill be displayedwithinCCPwithinabout60 seconds.Let'snowadd a newone for eachqueue,service andsales.We'll clickon"Addnew row,"we'll provide aname,we'll correctthe salesonesfirst.The type isgoingto be Queue.The destinationisgoing to be the salesqueue,andthe contactflow isgoingto be the defaulttransfercontactflow.Beneath,for our description,we'll provide "Sales."We'll thenaddasecondrow,whichis forservice,andwe'll dothe same again.Type is queue, destinationservice,contactflow default,anddescriptionis"Service,"and we'll goaheadand save those,andthe last quickconnectwe'll addisto an agentfor our call center manager,Bob Jones.We'll goaheadandadd a new row.We'll provide the name asBob, the type is goingto be agent,and inthe drop-down,we'll findBobJones.The contactflow will be the defaultagent transfer,andthe descriptionwillbe "EscalatedCalls."We cannow go aheadand press"Save."Great,so nowwe've addedthe quickconnects.We needtoadd themto the queuesbefore agentscanuse them. Overon the menuon the left,goto Routinganddownto Queues.We'll update ourservice andsales queues.First,we'llupdate the servicequeue.We clickintothe service queuethenscroll downtoquick connects.If we clickon the quickconnects,itwill bringupthe listof available quickconnectsforus.For the service queue,Iwantthe teamsto have the abilitytocall sales,andalsoBob,and, finally,dispatch.
  • 33. Once we're happywiththe quickconnectsassignments,we'll scroll up,andwe'll press"Save"onthis queue.We'll nowgointothe salesqueue anddothe same.Downto quickconnects,butthistime addingthe service,Bob,anddispatch.We go back up tothe topand save thisqueue.A few tipshere. Onlyexternal contactswill be visible inCCPall the time.Agentsandqueueswillbe visible onlywhenthe agentis ona call,andthe agentwill see all of the quickconnectsforthe queuesthatare in theirrooting profile. Create routing profiles Nowthat we have our queuescreated,we cango aheadandcreate ourroutingprofiles.These will be signedtoour agentsto provide the call routingconfiguration.Fromwithinthe ConnectUI,go toUsers, and downto Routingprofiles.We cannow see all the routingprofiles.You're able tosee how many agentshave eachprofile,andhowmanyqueuesare assignedtoeach.A useful snapshot.We needto create two profiles,one forservice,andone forsales.Tobegin,clickonAddnew profile.The firstone we'll create will be the service profile.Let'sgive itaname.For this,we'll justcall Service,andthe description,we'll provide aService Profile.Great.Soforthisprofile we're onlygoingtohandle one queue.Justscrolling downonthe screenslightly,we cansee the areawhere we're goingtoassignour queues.Usingthe dropdown,we canselectService.We canleave the prioritiesone,andwe won'thave a delay.Therefore thisroutingprofileisgoingtobe dedicatedforjustservice contacts.Finally,we're at an outboundqueue.Thisisusedtosetthe outboundphone number,andforreporting.Justscrolling down,we selectthe box,andwe'll provide the Service queue.Once we're happy,we canscroll back up to the top, and clickAdd newprofile.Andnow we'vecreatedourservice profile.We cango aheadand create the salesprofile.ClickonourAddnew profile,we canprovide the name Sales,the descriptionis SalesProfile.Butthistime we're goingtoadd twoqueues.The firstqueue we'll addisthe salesqueue. We'll clickon the dropdown,selectSales,andwe have apriorityof one,and a delayof zero.To write a secondqueue,we clickonthe Addqueue button,andthiswill addanotherrow.Forthis,we're goingto selectthe service queue.ClickingonService,thisisnow settopriorityone,andthe delayinseconds.But thisisnot howwe wantit.What we want to happenisforthe salesagentstohandle the salescalls,but thenhandle the service callsonce there'snosalescallsavailable.Forthiswe can change the priority.We change it fromone to two.This will meanthatall the salescallswill be handledfirst.Thissoundsgood, but whatwe want to dois avoidoverworkingoursalesagents.SoIwantto add a delaybetweenthe time that the service callswill be routedtothe salesagents.Forthiswe canuse the delayinseconds box.In here,I'mgoingto change it fromzeroto 20. Thiswill meanthatthe service contactswill have had to have queuedforatleast20 secondsbefore beingconsideredforthe salesagents.Great.NowI have the queue spacinghowI wantthem.I'm gonnago downto the bottom, and selectthe Default outboundqueue asSales.Withthatnowconfigured,Ican go backup to the top, and clickAddnew routingprofile.Withourprofilesnowcreated,let'sgoaheadandassignthemto ouragents.Head over to userson the left,anddownto User management.We needtoassignournew routingprofilestoboth AthiyaandVic.To do thiswe'll select Athiyafirst,clickonthe row and pressEdit.Under the Routing Profile selectionwe're goingtoremove the BasicRoutingProfile andreplace thiswiththe Service.We'll justpressthe cross, selectthe dropdown,andchoose the Service profile.We cannow scroll to the bottom,andpressSave.We can nowdo the same for Vic.We'll clickon hisname,Edit,delete the
  • 34. existingRoutingProfile,andaddSales.Godownto the bottom, andpressSave.Andthat's it.We've now createdour twonewroutingprofiles andassignedthemtoourusers. Create an IVR contact flow Contact flowisthe wayall the IVRmagichappens.Creatingcontactflowsare completedwithinthe ConnectUI. So, let'sheadoverto the Routingmenuanddownto Contactflows.We're goingtocreate a contact flowforKinetEcoInc.'smainmenu.Clickonthe drop-downarrow to the top right.We'll bringup the listof templates.Youneedtouse the rightcontact flow foryour use case.We're creatinga normal contact flow,sowe'll clickonthe top one,Create contactflow.Thisopensupthe Flow Editor.Firstly, let'sgive ita name and a description.We'll call thisone KinetEcoMainMenu.Andif you clickon the additional flow information,itgivesyouthe optiontoprovide adescription.We'lljustsimplyprovide the same one again.On the left-handside,youcansee the drop-downsections.Theseare groupsof actionblocks.Undereach groupare differenttypesof actionblocks.You'll alsogetdifferentaction blocksbasedonthe type of contact flow youcreatedto ensure you've createdthe rightcontactflow,if you're wonderingif somethingismissing.Forthe complete descriptionof contactactionblocks,please see thispage.We're goingto buildasmallerIVRto beginwiththatwill welcome ourcallers.We'll open the Interactgroup, andwe'll drag the Playpromptactionbloc ontothe canvas. Justsimplysingle-click, drag, and drop.Double-clickandnowthe actionblockwill allow ustodrag itaround the canvas.With it nicelyaligned,I'm nowgonnaconnectthemtogether.A clickon the exitentryfrom Start andput that intothe Playpromptentrypoint.We now needtoconfigure the Playpromptactionblock.Clickinonce, and the top blue barof the blockwill openthe configurationpanel. Idon'thave any promptsto use here,soI'll be usingthe Textto speechAdhocoption.I wantmy welcome greetingtobe Welcome to KinetEcoInc.,yourrenewable energycompany.Once we're happy,we'll pressSave,andthiswill close the configurationmenu.Next,we wanttoadda small menu.We dothisby draggingthe Get customer inputfromthe left-handbarintothe canvas.Andlet'sconfigure thisblock.Single-clickonthe blue bar, will openthe configurationitem.We'llstartbyenteringourprompt. Thiswill be playedtoourcallers, justup to the welcome message.We selectTexttospeech,andwe'll enter, please pressone forservice or two forsales.Forthe customerinput,we have DTMF alreadyselected,andthatworksforus. We needtoallownumberone andtwoas validinputs.Todothis,we'll clickonthe linkat connection.Thisis justslightlybelow. So, if we scroll down,we clickonAddanotherconnection.Forthe Option,we're gonnaallowone,scroll downagain,we'll addanotheroption, andoptiontwo.Once you're happy,click Save,andwe nowhave five exitconnectionsfromthiscustomerinput.We're goingtonow setthese newoptionstoreach to eachqueue.Withinthe setgroup,menuonthe left,dragtwoset queuesfrom the group onto the canvas. We now needtoconfigure these queueswiththe rightqueueselection.Just gonnamove the canvas intoview,left-clickonthe setqueue.The firstone isgoingtobe the service queue,sofromthe drop-down,IselectService andpressSave.The secondsetqueue isgoingtobe Sales.SelectSalesandpressSave.Withthe queuesset,we now needtocheckthe openinghours.Go back overto your groups,thistime,openBranch,anddrag the Checkhours of operationontothe canvas.There is noadditional configurationrequiredforthisblock,asI'mhappywiththe hours assigned to the queue.ButI couldhave arrivedthemhere if Iwantedto. Let'snow add a transfertoqueue action block.Onthe left-handside,godowntoTransferandTerminate,scroll downslightly,anddragthe Transferto queue optionontothe canvas.I justwantto adjustmy canvasslightly,soI'mgonna scroll overand drag the actionblockinto the place that I wantit to be in.Firstly,we needtohandle anyerrors.
  • 35. For this,we'll dragthree Playpromptsandtwo terminate actionblocksontothe canvas.UnderInteract, we'll dragout Playprompts,one,two,three.AndunderTerminate andTransfer,we'll dragout Disconnectandhang ups.The firstPlaypromptsthat we'll customize isourerrorprompt.Thiswill say, we apologize,there hasbeenafault,pleasetryagainlater.Clickinonthe blue menuforfirstprompt, will openourconfigurationitem,selectTexttospeech,andI'mjustgonna paste inmy errormessage. Once I'm happyI'm gonna pressSave,andthat now configuredourPlayprompt.The secondPlay promptis goingto be our closedmessage.Clickonthe configuration,selecttexttospeech,andpaste in our information.Andonce we're happy,we're goingtopressSave. Andthe final promptisgoingtobe anothererror message.It'll be the same asthe one before.We're gonnacopythat out, selectTextto speech,andpaste that in.Okay,withthose configured,I'mnow goingto rearrange themonthe canvas and connectthemup.Just gonnazoomout slightlyjustsowe can see more of the canvas. Andgonna drag one of the Playpromptsdownto here forthe error message.I'mgonna connectall the errors.And fromthe queues,we're gonnaconnectthose errorstothe same Playprompt.The exittothe Play promptis goingto disconnectthe caller.Withthe disconnectbox aligned,I'mjustgonnaconnectthose up.I'm now goingto connectto myGet customerinput.Foroptionone,thisforService.I'mgoingto selectoptionone anddrag thisoverto our Service queue.Andforoptiontwo,downtoour Salesqueue. The successof these queueswill gointothe Checkhoursof operation,sowe'll dragthose over.If we're out of hours,we're goingto playthe out of hours message,whichwe've alreadyconfigured,andany errorsare gonna getto the error message.I've gottwoerror promptspurelyforaesthetics.Idon'treally like linestobe crossed.Sometimeswe can'thelpit.If the queue isinhours,we're gonnaconnectto the inhours to the Transferto queue block.If we're atcapacity,we're goingto playan error message,andin errors,we're alsogonnaplay an errormessage.We can come back and adjustthose later.Withthose configured,I'mnowgoingtojust connectoverto Disconnect.Dragit outover,connectfrom ourPlay promptsintoour Disconnectbox.Andthe final connectionwe needtomake isfromthe welcome message toour mainmenu.Now,thatwe've connectedall the pathsup,we needtosave and publish our flow,sowe can connectour numberstoit. Atthe topright,clickon the drop-downnexttoSave,and clickon Save and Publish.Once thisispublished,we're now gonnagetthissignifiedbythe green Published,andwe see the Successmessage.Publishingacontact flow takesashort periodof time to update,soif you're too quick,youwon't getthe resultsyouexpected.Withourcontactflow now published,let'sgoovertophone numbersandconnectthemup.Head overto the Routingand downto Phone numbers.Sofar,we've onlyaddedone number.Let'sassignthisnumbertothe new routingthat we've justprovided.We'llclickonthe number,andunderContactFlow / IVR,we'll change thisto KinetEcoMainMenu. Once we're happy,we can pressSave.Thiscontact flow isnow created,andnow, we can place a testcall to testout our mainmenu. - [Computer] Welcome toKinetEcoIncorporated, your renewableenergycompany.Please pressone forserviceortwofor sales. - [Instructor] Great,and our mainmenuisworkingas expected. Use SSML in your contact flows The textto speechengine withinAmazonConnectusesAmazonPollywithdozensof languages supportedinmale andfemale voices,youhave plentyof choice.However,there are some situations that needsome more tailoredexperiences.Andforthisyou're able touse SpeechSynthesisMarkup Language or SSML forshort. SSML allowsyouto create an improvedcustomerexperience byadjusting speed,pitch,andpronunciationof words,andmuchmore.We'll use the Pollyengine tocraft out SSML
  • 36. for our welcome prompt.Openthe configurationof ourPlayprompt,andcopy the welcome textinto your clipboard.Headovertothe AWS console,andhere we'll searchforPolly,orwe can scroll down ontoMachine Learningandclickon AmazonPolly. All the featuresandcapabilitieswithinAmazonPolly are available onAmazonConnect.Sothisisa greatplace to try out yourmessagingtosee how itwould sound.Let'shighlightthe preselectedtext,andpaste inourwelcome message,andlet'shearhow that sounds. - [Woman] Welcome toKay-i-net-itcoIncorporated,yourrenewableenergycompany. - [Narrator] Aswe can hear,the word Kinetisnotpronouncedcorrectly.Forthis,we canuse SSML to affectthe speech.If we clickonthe SSML tab, we getto see the standard textagain,thistime route and speaktext.Let'shighlightthe standardtext,andreplace thatwithourwelcome message.We needto nowadjustthisword Kinet.We wantitpronouncedasI'm sayingit.For this,we needthe developer guide. If we clickon the questionmark,you'll openanew window.If we scroll downtoSSML Tags SupportedbyPolly,thisiswhatwe want.Here,we can see a listof all the SSML tags that are supported by AmazonPolly,suchasbreak,emphasis,orphoneme.AndphonemeiswhatIwant,to affectthe pronunciationof Kinet.If we clickonthislink,we scroll down,we canactuallysee anexample.Let'stake a copy of this configurationtag.We'll headovertoPolly,andwe'll replaceKinetwithwhatwe've just copied.We doneedto change thisslightly.Solet'sreplace pecanwithKinet.Thispartisn'tpronounced, thisisonlyfor humanreadable text.The partthat's pronouncedisthisparthere.We needtochange that to be Kinet.Forthiswe headback overto the SSML Tags window,andif we clickon the Phoneme and Viseme TablesforSupportedLanguages,we selectAmericanEnglishLanguage,andhere we have the alphabet.Iwant Kinettosoundwithani-net.Forthis,we're goingto keepK,butfor the i-net,we needtoscroll downundervowels.Andhere we wantittosoundlike price.Sowe'll actuallycopythe ai. Let's copythat overback intothe AmazonPollyconsole.Andwe'llputthe K,followedbythe ai,andnow we needN-E-T.Let'sgo back overto the phoneticlanguage.We'll have alookforn.We'll keepthatas n. We'll scroll downtovowelsagain.Andthistime we wante.For the e,I want itto soundlike dress.So, I'm goingto selectthisletter.HeadovertoPolly,addthe n,paste inthe e,and finally the t.Now let's listentohowthat soundsback. - [Woman] Welcome toKi-nay-ecoIncorporate,yourrenewable energy company. - [Narrator] That's soundsmuchbetter.However,Iwanttoshow a pause inbetweenthe KinetEco Inc.,and the yourrenewable energycompany.Let'sheadbackoverto the PollySupported Textand let'ssee if somethingcanhelpusouthere.Back upto the top.Andwe want to add a short pause,sowe'll clickonthat one,we'll scroll downslightly,andlookatthe example.Here,we'll highlight the break,and we'll copythatoverinto ourAmazonPollyconsole.We'll paste thatin,butthree seconds isfar too long.We're justgoingto adjustthisto a 250 milliseconds.Now,let'shearhow thatplaysback. - [Woman] Welcome toKinetEco Incorporated,yourrenewableenergycompany. - [Narrator] That's much better.I'mhappywiththat.So let'sselectall the text,andcopythat back overintoour Amazon Connectmenuprompt.Thistime,we justneedtopaste thatin, butslightlyscroll down,andwe're actuallygoingtointerpretthisasSSML. We'll selectandpressSave.We now needtoSave and Publish our Contact flow. Call back in queue Addinga callbackoptionforyourcustomersisa good ideato improve customerexperience andsmooth out yourpeakdemands.Solet'sbuildouta new contact flow thatwill promptthe callerthe optionto requestacallbackevery90 seconds.We're goingtocreate a customerqueue flow andenablethis
  • 37. withinourKinetEcomainmenucontactflow.Let'sheadoverto Routinganddownto Contact flows.To create a newcustomerqueue flow,we selectthe dropdownbuttonhere andclickCreate customer queue flow.First,let'sgiveitaname of KinetEcocallbackinqueue.Next,we needtoadda looped actionprompt ontoour canvas.ExpandInteractand drag the looppromptsonto our canvasand connect it up.Let's nowconfigure the looppromptactionblock.First,we wantto playa message toour customers.Thiswill be TexttoSpeechandwe'll paste inthe firstmessage.Next,we wantthe customers to hearsome queue music,sowe'll addanotherlooptoour menu.It'll be an audiorecording,andthis time we'll playsome music.Andfinally,we wantthe optiontointerruptthismenuevery90seconds. We'll enable Interrupt,setthatto90, andchange it to Seconds.We've now configuredourloopprompt, so we can save thisconfiguration.We now needtoofferthe callbackoption.Forthis,we'll use aGet customerinputactionblock.We'll dragthisoverto our canvas and connectitup. We'll now configure thiswithour messaging.We simplypaste inourmessages.We now needtoscroll downandenable the optionforthe callerto pressoptionone,andwe can save our configuration.First,we'llconfigure the successroute.If the callerpressesoptionone,we wanttocheckthat we got the customer'snumber.To do this,we wantto seta callbacknumber.We scroll downtoSet,expandthe group,and drag onthe Set callbacknumber.We'll connectoptionone intoourSetcallbacknumberactionblock.We now needto configure ourSetcallbacknumber.If we enable the menu,we now have the abilitytouse the attributes. For here,we're goingtodo System,andourattribute isgoingto be CustomerNumber.If the customer presentstheirnumbertoConnect,thiswillthenbe used,andwe canuse that to provide the callback. We can nowsave and close that configuration.If we have the callbacknumberavailable,we thenwant to playa successmessage tothe customer.Let'sscroll upand drag a playpromptontoour canvas.We'll justslightlyadjustthe canvassowe can see the messaging.We cannow connectup Successand we can configure ourplaypromptwithour messaging.We paste inourmessagesandpressSave.Withthe confirmationmessagenowbeingplayedtothe customer,we now needtosetthiscallbackto a queue. We scroll downunderTransfer,expandthe group,andbringonthe Transferto queue actionblock.We can connectOkay to thisactionblock.Upon successof transferringtoqueue,we cansimplydisconnect. That nowcompletesoursuccessmessaging.If the customer'snumberisavailable,we'llplaythema thankyou message,we'll transferthemtothe queue,andwe'll disconnectthatparticularcall.Once an agentis thenavailable, the customerwillreceive acallback.We now needtocomplete the error handlingforourcontact flow.Forthis,I'm goingto keepitverysimple andkeepthe customerinthe queue.We're gonnascroll upintoour Interactsection.We'll draga playprompt ontothe canvas and thenanother,andfinallyathird.We also needaEnd flow / Resume actionblock.UnderTerminate / Transfer,drag thisontothe canvas. For our firstplayprompt,we're goingtoconnectthisup fromour Get customerinput.Soif a customerdoesn'tpressanyoptions,we're goingtoplaythema message and returnthemback to the queue.We can configure ourplaypromptby clickingonthe blue bar,selecting Textto speechandpastinginour message,save the configuration,andconnectup ourplay promptsto the endresume flow.The nextplaypromptwill handle the customerif there'saninvalidnumberorthe numberisnot dialable.We'llselectthese twooptionsanddragthemintothisplayprompt.We'll configure thisplaypromptforTTS and paste inour message,save the configuration,andconnectupour actionblockto the endflow.Finally,we needtohandle the errormessage incase the transfertoqueue fails.We'll connectupthe Transferto queue arrow intothe playprompt,clickon our configuration,Text to speech,paste inourmessage,save the configuration,andconnectup.We're now ready.We can go aheadand save and publishthiscontactflow.We now needtoconfigure ourmainmenutouse this queue.We goback overto our Routing,Contactflows.FoundourKinetEcomainmenu.Andif we scroll
  • 38. the canvas to the right,we want to drag our Transferto queue overslightly.Once it'sinthe position,we can disconnectthisconnection,expandSet,scroll down,andwe canSet customer queue flow.Dragthis ontothe canvasand connectit up.We can now configure thisqueue flow forournewly-published customerqueue flow,save,andpublish.
  • 39. 5. Metrics and Quality Overview of metrics and quality Metrics andqualitywithinAmazonConnectcanbe summarizedintothispicture.It'sworthnotingthat featuresandintegrationscontinue tobe builtandreleasedovertime.Let'sspendsome timelooking overthese inmore detail.AmazonConnectproducestwotypesof streamingdata.These are agent eventsandContactTrace Records,or CTRs for short.CTRs are writtenafterthe contact isfinishedand any linkedagenthasmovedoutof aftercall work.Both eventsare disabledbydefaultwhenyoucreate a connectinstance.Thisisbecause youhave to configure Kinesis,eitherStreamsorFirehose.Kinesisis an AWS service forhandlingstreamingdata.These twoeventtypesare usedbythird-partytechnology
  • 40. partnersfor servicessuchasqualitymanagement.Youcan alsocomplete yourownpost-processingon thisinformationandsave the recordsintoa database,suchas Redshift.Forcall recordingandreport storage,AWShas a service calledS3.All historical reportsandcall recordingsare storedinS3 at the locationspecifiedwhenbuildingthe connectinstance.Storage ischargeable.However,itishighly durable,encrypted,andunlimited.Youcan setretentionperiodonthe S3bucketusinglifecyclepolicies. Andfinally,nosystemisfoolproof.Andasyourrootinggetsmore complex,you're goingtoneedto troubleshoottomonthperformance.ThisiswhereCloudWatchandAWSservice comesintoplay.By default,yourconnectinstance sendsdatatoCloudWatchforitemslike concurrentcalls,throttle calls, etc.Contact flowlogshelpsyoutroubleshootyourcontactflow logic.Forexample,whatdidthe customerenter?Youneedtoset the loginbehaviorwithinthe contactflowsandyoucan logjust a small sectionif required. Enable call recording and playback Enablingcall recorderwithinourContactFlowsisreal simple.Let'sopenupourKinetEcomainmenu. Headover to routinganddownto contact flows.Let'sfindourmainmenuand openthisup.We wantto enable call recordingacrossall contacts.So we'll goand openset.We'll scroll downandwe'll dragover setcall recordingbehaviorontoourcanvas.We can setthe call recordingbehavioranywhereinthe canvas,but because Iwant to doit across all contacts,I'm goingto do it rightafterthe play prompt.I'm goingto disconnectthisconnectionandconnecttomycall recordingbehaviorandthenreconnectthat back up to the getcustomerinput.We can configure setcall recordingbehavior.We canchange it so that the agentand customersidesare recorded,the agentonly,orjustthe customer.I wantagent and customer,sowe'll selectthisradiobuttonandsave ourconfiguration.Now we needtosave andpublish. Callsthat are recordedbyConnectare savedinAmazonS3. Let's have a lookoverthe AWS console for the callsthat have beenrecorded.We gooverto our AWS managementconsole,we type S3and we selectthe link.Ionlyhave the one connectinstance.If youhave multiple,youwouldseewhichbucket
  • 41. was createdas part of the AmazonConnectinstance.Ican go intomy bucket,dropdownintoconnect, kinectecoinc,call recording,year,month,anddayandnow I can see the WAV filesof the testcallsthat I've created,butwe don't want to playbackupcall recordingshere.Backoverto AmazonConnect, we can go intoour metricsand qualityandopenourcontact search.We can search forthe calls we're interestedinandplaythembackrighthere.If we scroll downto the bottom, we'll simplyjustpress searchwithoutanyfiltering.Nowwe cansee all the callsthathave beenmade withthisinstance andif we scroll overto our call recording,we geta playbutton.We simplypressthisandwe can hearthe recording. Real-time reporting Whenyoufirstlookintothe ConnectUI,you're presentedwiththe dashboard.Thisisareal-time viewof the queueswithinthe system.Byclickingonconfigure,thisshowsusthe dashboardconfiguration.We have the abilitytoadjustthe time range.A trailingtwo-hourperiodworksgoodforme.We can also filterbyqueues. Atthe moment,I've gotall three selected,soI'mactuallygoingtojustselectService and SalesasI'm not usingthe basicqueue.If we scroll down,we can adjustthe performance metrics and the occupancy.We'll clickand apply,andthiswill update my dashboard.The dashboardwill update every30 seconds,or we can refreshthe page as required.The dropdownarrow nexttoconfigure allows us to save the dashboardas a name.I'll choose Save as and save thisdashboardas Sales&Service and pressSave as. Anddashboardhas beensavedsuccessfully.It'snottotallyobvious,butwe cansee our reportsavedby goingintometricsandthenSavedReports.Bydefault,the Real-time Metricsisselected. If we scootoverto Dashboard,we can see our newly-createddashboard.Fromthissame page,we can see the Real-time tabandanoptionto create a new report.Let's getback overto Real-time andcreate a newreport.We can see optionsforQueue,Agents,andRoutingProfiles.I'minterestedinseeingthe agentperformance.If Iclickon this,bydefaultIsee all agentsthat are currentlyconnectedtothe system.Aswithdashboards,Ican go intothe configurationandchange some information.We canfilter, adjustthe time range,and playwiththe metrics.I'mgoingto add agentname and save myreport.And nowI can see the full name of myagents.Great,that's lookinggood.A goodfeature onthisreport,and one that you'll nodoubttrip upoverduringyour testingiswhenyou're tryingtotestout of hours routing. If a user closestheirCCPbrowser,the sessionisnotclosed.Theyfirstneedtologoff.Byusing the dropdownnexttothe user,we can forciblyremove these fromthe system.Icurrentlyhave justone reportconfiguredonthisreal-time dashboard;however,Iwantto add anothertable.Byusingthe New Table columnhere,Ican scroll downto RoutingProfiles,andwe can configure anew reportrighthere in the same window.Icurrentlysee BasicRoutingProfile,Sales,andService.Iwanttoremove the Basic RoutingProfile fromthisreport.SoIgo ontoconfigure andundermy primaryfilter,againtochoose RoutingProfiles,andonlyinclude SalesandService andclickapply.We canexpandSalesandwe can expandService.Youmightnotice thatunderSales, the routingprofile hasthe Salesqueueandthe Service queue.Thisisbecause inoursalesprofile,we includedbothof those queues.Now Ihave the reportsas I want them.I'mgoingto save thisone.Scroll back upto the top,and nexttosave I'm gonna clock onthe dropdown.Ihave the optiontoclear,whichwill clearthe report,save as,downloadCSV,or share the report.I'm goingto share the report.I'm gonnaprovide aname of Service&Sales,andI'm goingto presssave.To ensure thisreportisshared,we needtotoggle the buttonhere topublish.This reportwill nowbe visible byuserswithinthe ConnectInstance thathave the necessarypermissions. Let's ensure we save thisfirst.OK,let'sheadovertoMetrics andQualityanddownto SavedReports.
  • 42. Let's clickon Historical Metrics.We can see our newlycreatedreport,andithasa publishedstatusof Yes. Manager Listen-in Manager Listen-inisveryuseful tohelpcoachnew agents.Toshow you thisI've positionedthe screens side-by-side.Toconfigure ManagerListen-inyouneedtoensure the call recordingissettoagentand customerand mustbe enabledforthe call.Aswe have alreadydone thiswe can skipoverthispart. The managerneedstohave CCP andManager Listen-inrightsenabled,which issetwithinsecurityprofiles and assignedtothe user.UsingManager Listen-inisreal simple.Let'sopenourServices&Salesreport that we have justcreated.Here we can see that Athiyaiscurrentlyona call indicatedbythe headset icon.If we click on thisCCPwill place anoutboundcall andwill monitorthe conversation.We cansimply disconnectfromthe monitoringbypressingendcall andback intoavailable. Historical reporting Historical reportsare heavilyusedwithincontactcenters.Andright withinconnect,we getthe abilityto create and schedule historical reports,withdatagoingback24 months.Shouldthe builtinreport's retentionnotbe asyou require,thenlookintostreamingthe contacttrace recordsto extendyourdata source like RedshiftviaKinesis.We canaccessthe historical reportshere viathe metricsandquality menu,anddownto historical metrics.We see the familiarqueuesandagentswe saw inthe real time reports,butthe firsttime,we see the phone numberreports.However,we now have adropdownon queuesandagents,andexpandingthisshowsadditional reports.Notall the reportscanbe savedsuch as an agentactivityaudit.Youneedto run thatone manuallyandad hoclyfor everyagentrequired. Let's go aheadand create a historical queue reportthatwill save andschedule onadailybasis.I'll move overto contact metrics,andclickon the report.We're providedwithastandardqueue reportwhich showsall available queues.However,Iwantto filterthisreport before Ischedule it.Clickingonthe configurationcogwill bringupthe menu.Iwantto change myinterval tobe 30 minutes,mytime zone to be Phoenix,andthe time range tobe yesterday.Ialsowantto filteroutthe basic queue.Sogointo filters,andonqueue,I'll onlyselectmyservice andsalesqueues.Once I'mhappy,Ican pressapply,and that will update the report.Great.NowIhave the reportas I wouldlike it.I'll goaheadandschedule this.Usingthe drop downoptionnexttosave,will bringupthe optionmenu.Move downtoschedule, and thenwe're askedtoprovide aname.We'll provide aname of "Queue DailyReport."Once we're happy,we'll presscontinue.Well nowIreceive amessage whichsaysthisreportwill automatically publishedtothe organization.Soanybodywiththe propermissionswill be able toview this.Once you're happy,presscontinue tocarry on. I wantthe reportsonce a day forthe previousday.Sowe'll generate thisreportdaily,everyone day,startingatone AM UTC, for the previousone day.We have a menufordeliveryoptions.Deliveryoptionsiscurrentlyalittle misleadingbyname.Whatthisis doingis justsettingthe locationforthe reportinyour S3 bucket.However,the reasonwhythisiscalleddelivery options,isthatyou couldbuildanS3 eventnotificationonthe reportbeingavailable,whichwould enable youtohave to reportto be sentoutvia email usingAmazonSimple NotificationService,orSNS. Thisextradeliverywouldrequiresome additionalconfigurationnotcoveredinthiscourse.However,I use thisin the future,andso I'mgoingto set a prefix.We'll setthisprefix as"/global/daily."Once I'm happy,I'll continue onandcreate my schedule report.Andnow myreporthas beenscheduled.
  • 43. 6. Lambda and DynamoDB Integration Personalize the contact flow Okay,it's time tohave a little more funandshow youhow openthe AmazonConnectplatform is.We're goingto buildonthe routingwe currentlyhave whichcanbe seenhere.WhatI want to do isfocuson the greetinghighlighted.If we know the caller'snumber,we're goingtoinclude theirname withinthe greeting.Whatthismeansisour customerjourneywilllooklikethis. We're goingto check oncontact connectionif we know the user'snumber.If so,we'll playthe user'sname withthe welcome message forthatpersonalizedexperience.If we don't,we'll play the genericmessaging.Sowhat'sgoingonhere?Atthe technical level,we'll be usingConnectto
  • 44. make a requesttoAWS Lambda.Lambda will thenqueryDynamoDBwhichwill holdour customerrecords.All right,let'shave some fun. Create a DynamoDB table We firstneedtocreate the dynamoDB table that will holdourcustomerrecords.Fromthe AWS console youcan searchfor dynamo.Clickonthe linkandit will openthe configurationpage. dynamoDBisa NoSQLdatabase.Itis serverlessandhighlyscalable.ItbacksAmazon'sPrime Day whichin 2017 had 3.34 trillionrequestsinone day,peakingat12.9 millionrequestspersecond. Before we buildourinfrastructure let'smake sure we're inthe rightregion.Onthe toprightI've got NorthVirginiaselected.Once I'mhappyI'll go aheadand press create table.We'll provide a name for our table,andthiswill be CUST_DB.The primarykeywe're goingto use isthe customer'sphone number.Sowe'll name thise164.We don'tneedto make any otherchanges. We'll scroll downandpresscreate.Andour table isnow ready.Let's clickoverto the itemstab and clickcreate itemsothat e164 data entry,paste inyour customer'sphone number,ensure youremove anyspecial charactersand anyspacesand make sure you leave the plus.We need to nowappenda columnforthe customer'sfirstname.We'll clickonthe plussign,expand append,andentera string.The stringcolumnisgoingto be calledfirstname.Andthe value is goingto be our customer'sname.Once you're happypresssave.Andnow our customer database isreadyto be usedbyConnect. Create a Lambda function We can nowcreate our Lambda functiontoclearour DynamoDB table,fromthe AWSconsole, type inLambda, andclick onthe link.Insure yourinthe rightregion,andpresscreate function. We're goingto author our functionfromscratch,so we'll leave thatoptionselected.We're
  • 45. gonnascroll downprovide name,we'll call thisgetcustomerdetails.The runtime isgoingtobe Python3.6. We'll create a role from ourtemplate,butwe needtofinda role name,we'll justcall thisLambda to Dynamo,underscore readonly.Underthe policytemplates,we're gonnascroll to the bottom,and selectthe BasicEdge Lambda permission.We needtoupdate thispermission shortly,butfirstof all let'screate the function.Great,now ourfunctioniscompleted,let'shead overto anotherAWS console inseparate tabandwe'll type inIAM.In here we're goingto update the role we justcreated.Solet'sroll and scroll down,andclickon the role we just created.We're goingto attach a new policy,andinthe searchbar justtype Dynamo.We're goingto selectthe readonlyaccesspermission,we'll checkthe box andattachthe policy.That's nowbeenupdated,goback overto the Lambda console,we cansee at the moment we only have CloudWatchpermissionsif we refreshthe page,itwill re-readthe policy,andwe getthe additional permissionswe needtoqueryourDynamoDBtable.Withour permissionsnow set, let'sscroll downandhave a lookat the functional code.Inyourexercise files,there'safile called Lambda Function,copyandpaste that underthe Lambda functionsection.Firstof all highlight everythinganddelete,andthenpaste inyourcode.Once yourhappypresssave.Withour functionnowsaved,let'shave aquicklookat the Lambda function.Whatwe're goingto do, we're goingto querythe DynamoDBtable.We're goingto bringback a variable code ani,which it's actuallygoingtolookat the address.Thisisactuallybeingtakenfromour testfunctionthat we'll doshortly.If we geta match from the customersnumber,withwhat'sinthe database, we'll returnthe firstname,otherwisewe'llreturnfalse.Youreallycanandshouldtestyour functions.We can dothat alreadyhere withinthe console.Sowe can lookontestwe'll create a newenvironment,withinyourexercisefiles,there'safile calledtestfunction.Highlightall the existingcode anddeletethis,andpaste inyournew code.Thisja centrequestisreplicatinga requestfromAmazonConnectundercustomerendpointandaddress,youneedtoputinhere your customernumberthatwe put intothe DynamoDBtable.Paste thisnumberinandagain, make sure any special charactersbeenremovedandanyspacesandinsure the plussignis included.We need toprovide aname forthe right testfunction,sowe'll justcall thistest.Once we're happy,we'll scroll tothe bottomand presscreate.Withour code now complete andour testfunctionready,we cango ahead andpresstest.The code isexecutedandwe've gotthe greenbar indicatingsuccess.If we scroll downtothe bottom, we can see the executionresults. We got a keyvalue pairof firstname,withthe value of Stephanie,resultandthe value of true. We're goingto use these withinourcontentsinroutine shortly,butfornow ourLambda functionisnowready. Install AWS CLI Before we can use our LambdafunctionwithinConnectwe needtograntsome permissions. Thisis done viathe AWS CLI.We're goingto install the CLIhere andin the nextvideogrant permissions.Openupanewtab and inyour browsersearchforAWS CLI.Clickon the Amazon linkandon the right handside youcan see the CLIs available fordifferentoperatingsystems. We have Windows,Mac Linux,orAmazonLinux.I'mrunninga Mac, so I'm gonnarun this commandin myterminal.Headingovertomyterminal I'mgoingto paste inthe command and justrun it.Type in my passwordandwatch itinstall.Withthe AWSCLI now completedwe now it's time toconfigure the AWSCLI. Before we dothiswe needtoheadback overto the Amazon console andcreate some accesskeys.Back overinthe AWSconsole,searchforIAM. Clickonthe linkandgo downto users.Highlightyourusername andclickonsecuritycredentials.Inhere we're gonnacreate some access keys.These will be usedtopipconfigure the AWSCLIandused to authenticate uswhenrunningthe command.Clickoncreate accesskey.Youonlygetone
  • 46. opportunitytocopythisinformationsolet'scopyandpaste this intoa textfile fornow sowe don't lose it.NowI'mgoingto show my secretaccesskeyand copy that overas well.Okay,with our keysnowcreatedwe're justgonnaclose the window.Headbackoverto my terminal.I'm goingto clearthe screen.We now needtoconfigure the AWSCLI. We justtype AWS configure and nowwe get the optiontoprovide ouraccess key.Paste inyourKeyID followedbyyour secretaccesskey.Give it a defaultregionname.We've beenusingNorthAmericawhichisus- east-1.Andenter.We'll leave the defaultoutputformatasnull.Andnow ourAWS CLI isready to be usedinthe nextvideo. Grant Lambda permissions Before AmazonConnectcanmake requeststoLambda,we must allow thispermissionto happen.The systemforour resource policyfire the commandline.Thispolicy'sattachedtothe Lambda functionandrestrictswhocan talkto it.The commandwe needtorun lookslike this. You needtwoitems,the ARN,orAmazonResource Name,forthe destinationLambdaandthe ARN of the source Amazonconnectinstance.Letme show youwhere youcan findthese within the Amazonconsole.ForLambda,let'search forLambda in console.Let'sclickon our getCustomerDetailsfunctionandtoprighthand side youcan see the ARN.The functionname is the last part.That's the bitthat we needtoput intoour code.Headback overto the console and thistime searchfor connect.WithinyourInstance Alias,clickonthe name andthe Instance ARN for connectishere and whatwe needisthe last part,just afterthe slash.Now we've takena copy of those two,let'sgo back overto our code.Asyou can see,I've putthe information togetherinourcode.I'm now gonnacopy andpaste this overto myterminal andrun the command.Pastingthisintomyterminal,we cansee I geta successmessage whichconfirmsthat I nowhave the abilitytoinvoke thisnumberfunctionfrommyconnectinstance. Lambda in the contact flow So I've createdour DynamoDBtable,ourLambda functionandgrantedall the required permissions.Let'snowbringthisall togetherandupdate ourcontact flow toplaythe callers name.I'm inthe KinetEcomainmenu.I'mgoingto now drag ontothe canvas the Lambda function.Godownto integrate,anddragover the actionblock.Connectitup by disconnecting the linkandconnectingthembacktogether.If youlookat the Lambdafunctionisincorrect, whatwe wantto do issendthe error to the normal customerjourneythatwaythe callerwill justget the standardgreeting.We now needtoconfigure ourLambdafunction.Forthiswe needthe FunctionARN.If we go overto ourLambda console.Scroll upto the top.We can actuallycopyour ARN.Paste it intothe box.Andwe can pressSave.We now needtocheck to make sure we get a resultback fromLambda.If we take a lookhere we got the check contact attributes.Dragit ontothe canvas. Connectitto the successfrom the Lambda call intothis block.For here we needtoactuallycheckto see whatthe external resultis.Backinour Lambda functionif we godownand have a quicklookat the code.We can see thatwe're returningto keyvalue pairs.The firstName,andthe result.If the resultistrue,we getthe firstName.If the resultisfalse,we don'tgetthe firstName.Sowe wantto queryresulttosee whatthe value is. Back overto our ConnectContact flow.We're gonnacheckresult.We're gonnaadda condition. We're gonna checkif that conditionequalstrue.We'll Save.Andif itequalstrue we wanttoplay the customersgreetingHowever,if Idoesn'tmatchthenwe want to continue onthe standard
  • 47. journey.Nowwe've connectedthatup,let'sactuallydoa playpromptwhere we playthe customersname.We'll draga playprompt actionblockontothe canvasand connecttrue to our playprompt.We can nowconnectthe playpromptup to the call recordingbehavior.We now justneedto come intoour playpromptconfigurationAndchange some settings.We wanttodo textto speech,sowe scroll down.We're gonnainterpretthisasSSML, so we selectthatoption Andwe want to paste inour text.Letme justexpandthisbox soyoucan see what'shappening. We have our speaktags,whichwe saw earlier.We have a Welcome backfollowedbythe variable.Thisisgoingtobe lookingatthe firstName keyvalue pairfromthe recentexternal call. We've got a short breakfollowedbyourstandardgreeting.We can thenSave this.Andnow we're readyto test.We do a Save & publish.That'snow successfullysaved.Sowe can go ahead and make a testcall.But justrememberitwill take afew minutestoupdate. - [ComputerVoice] Welcome back,Stephanie.ThankyouforcallingKinetEcoIncorporated.Please pressone for service ortwo forsales. - [Instructor] Perfect.That'sexactlythe customer'sgreetingIwas lookingfor.
  • 48. 7. Lambda and DynamoDB Integration Introduction to Lex AmazonLex isa service forbuildingconversationalinterfacesusingautomaticspeechrecognitionand natural language understandingtounderstandthe caller'sintent.These are more commonlyknownas chatbots.Theyprovide agreat wayfor data consumption anddataentryby understandingthe caller's intent,like ahuman-to-humanconversationanddeflectingcallsfromthe contactcenter.Some typical use casesfor chatbotsare orderinga takeaway,suchas a pizza,services,suchasIT helpdesk,doingself- service passwordresets,etcetera,bookingaservice,appointments,amendingandcounseling,butalso manydifferenttypesof dataentryscenarios.Andthisiswhatwe're goingtobuild.Here isour personalizedcall flow.Currently,we askthe callerto pressone for service ortwofor sales.Andthisis
  • 49. the area we're goingto change.The menumessagingisgoingtochange to be an openquestion,how can I helpyoutoday?We shall configure lengthstomatchto certainphrasesthat matchto eitherthe service intentorthe salesintent,butwe alsowanttoadd a thirdintentof submitmeterreadings.So what'sgoingon? Thisis a hierarchicoverviewof addingLex toour solution.It'sasimple integrationand we'll goaheadand buildthisnow. Build a Lex bot So let'sbuildoutLEX bot.From the AWS console,searchforLEX,click onthe link.Andlet'spressGet Started.We'll buildacustombot, sowe'll selectthatoption.Youneedtoprovide aname.We'll use KinetEcoBOT.The language will be USEnglish andthe outputvoice will be Joanna.Thisisunlessof course you've changedthe voice withinyourcontactflows.ButJoanna'sthe one that's providedby default.Sessiontimeoutwill be twominutes.Andwe needtoenterthe COPPA.Once you're done,press Create.Let'stake a fewmomentstoexplore the UIforLEX. We're currentlyonthe editor.Here,we get to add some intents,some slottypes,anderrorhandling.Settings,we don'tneedtochange anything. We've alreadyprovidedeverythingwe needrightnow.Channels.Thisiswhere youcanexpose yourLEX bot to differentchannelslikeFacebook,Kik,Slack,orTwilio.That'sbecause LEXcan be voice or text activated.Youcan builditonce and use it inmulti-channels.Andmonitoring.Monitoringisespecially useful forthe utterances.Within24hours,you'll geta count of any missedutterances.Thisisreally useful incase youneedtoupdate your sample utterances.Andfinally,onthe right-handside,we're got the textbot.This iswhere we can testour code before we publishit.Let'sgoback overto the editor. We needtoadd some intents.Forthis,I've createdthree foryoualreadyinthe exercise files.Have a lookinto07_02. If we clickonplus,we'll getthe optiontoimportour intents.I'll justbrowse tomyfiles. Highlightingthe collectMeterReadingsintentandjustclickonImport.I'll now addthe othertwosamples that I've provided.That'sthe Disconnectintent.Andwe'lladdthe lastone,whichisthe Make Payment intent.Let'sjustexplore thesebriefly.The collectMeterReadingsisgoingtoactuallyaskthe customerfor theirmeterreadingsfortheirgasand electricity.Thiswill be usedif the customerneedstophone inand provide some informationtous.The sample utterancesare what LEX isgoingto be listeningforto
  • 50. actuallytheninvoke thisintent.Soif I'mcallingin,if the customersays,I needtoupdate my usage or sendinmy meterreadings,thenthisintentwill be invoked.If we lookunderslots,thisiswhat'sgoingto be collectedbyLEX.Currently,we have elecReadingslot.Thiswill askthe questionof,Whatisyour electricityreading?It'sgoingtoconvertwhatthe customerssaysintoa numberandstore thisinthis variable name.We needtoaddanotherslotfor this.So let'sgoaheadand type ingasReading.The slot type will alsobe AMAZON.NUMBER.Fromthe available listof slottypes,justscroll downtothe bottom and selectthe number.Now,the prompt,thisiswhatLEXis goingto ask the customerto collectthat information.Whatisyourgas reading?QuestionmarkandpressEnter.We can see thatbothslotsare required.ThismeansthatLEX botwill be requestingthisinformationbefore itcancomplete the intent. Finally,we wanttodo a confirmationprompt.Just clickonthe checkbox andthenwe'll getthe optionto do a confirmationandthena cancel.I'll paste inmy confirmationprompthere.SoLEXisgoingto read back to the customer,Okay,great,yourgas readingis,followedbythe informationthe customer provided,followedbythe electricityreading.Andthenit'sgoingtoaskthemthe questionif thiscorrect or not. LEX will be listeningtothe customer'sresponse.If theyrespondwithapositive yes,thenthe confirmationwillbe completeandthe intent willbe returnedbacktoconnect.If no, the processwill needtostart again.This intentisnowready.Let'sgo and have a lookat the other twothat we imported. On the Disconnectintent,thisone'sslightlydifferent.We're notactuallyaskingforany informationand all we're reallydoisfilteringthe customer.If the customerphonesupandsays,I have founda better deal or I wantto leave,thisintentwill be matched.Andthenthe intentname will be flightedbackto connectand we can use that intentname withinourrouting.Let'shave a lookat Make Payment.It'sthe same as Disconnect.There'snoslotsto collect.We're reallyjustusingthisasa filterjusttoaccurately route the customerto the right channel.Let'saddanotherintent,butwe'll dothisone manually,so you'll see the full experience.OveronIntents,clickonthe plussign.Thistime,we'llcreate intent manually.Goto name,we're gonnacall thisone Faultand pressAdd.Thistime,we've gotblank utterances.We needtoprovide some sample utterances.So,Ihave a faultor I have nogas. We could carry on and I highlyrecommendthatyouprovide asmanysample utterancesaspossible.Butthere will be enoughforour testing.We don'tneedto do anythingelse withthisLEXbot at the moment,solet's build.Okay,sowe've gotan error message.It'ssayingthe specifiedvalue forrejectionmessageis invalid.Youmusthave a lengthgreaterthanor equal toone.Thisis actuallyincollectMeterReadings.If we scroll downto our confirmation,we cansee it'sdisappeared.We typedinthe confirmation,butwe didn'tput a cancel message in.Solet'spaste the confirmationmessage backin.Andovertocancel.So if the customersaysno, we'll say,Okay,we are returningyouto mainmenu.Andnow,we can go ahead, cancel that message,andbuildourbot.Andnow,our LEX bot isbuilding.It'll take ashortwhile forthe bot to buildandthenwe'll be able totestit. Test and publish a Lex bot Withour Lex bot nowsuccessfullybuilt,let'stestit.We'll close the successmessage andthenthe test bot hasopenedup.We can eithertype intohere orwe can use speechandspeakintothe browser.If I nowclickon the microphone Lex will listentome.Butthenonce I've finishedspeakingIhave to press the microphone againtosignifythatI've finishedspeaking.Sendinmymeterreadings. - [Woman] What isyour electricityreading? - [Instructor] 1092. - [Woman] Whatis yourgas reading? - [Instructor] 64. - [Woman] Okaygreat,your gas readingis64 and yourelectricityreadingis1092. Isthis correct? - [Instructor] Yes.Great,that's nowworked.The collectMeterReadingsintentwill be sentbacktoConnect alongwiththe gas readingvalue andthe electricreadingvalue,andyoucan use those inyour routingas required.Let'stryagain.Thistime we'll saysomethingdifferentandhopefullyLex will sendustoa differentintent.Iwanttoleave.There we go.The intentisdisconnect.The ReadyForFulfillmentjust meansLex has done everything thatshe needstodo.We've notaskedher to doanythingelse.Sothe
  • 51. disconnectintentwill be sentbacktoConnect.Withour testingnow workinglet'sgoaheadandpublish our Lex bot.We justsimplyclickonthe publishbutton,provideanaliasof MYBOT and presspublish.It'll take a fewminutestoupdate.AndourLex bothas now beenbuilt.We're goingtoneedthe botname and the aliasfor ournextvideo.Make a note and continue on. Add permissions to invoke Lex bot Nowthat our Lex bot ispublished, we needtoprovide permissionsforConnecttocontact Lex.To do this,we'll close thisscreenandheadovertothe Connectmenu.Clickonthe Instance Aliasname below and move downtocontact flows.UnderAmazonLex,clickonAdd Lex Bot andselectyour Lex bot from the drop downlistandpresssave.Andnow AmazonConnecthas permissionstorequestinformation fromLex. Add a Lex bot to your contact flows Nowwe've builtourLexBot,let'sintroduce thisintoourcontactflows.I've gotthe KinetEcomain menu contact flowopen.AndI'mjustgoingto scroll rightthrough the canvas.Andwe're goingto change our Get customerinput.Atthe momentit'ssaying,please pressone forservice ortwoforsales.We're going to change thisso that itactuallycalls the intentLexBotandallow the customertosay what theywant. Clickingonthe configuration.Whatwe needtodoischange thisslightly.We needtofirstof all,change the message.We're still goingtoplaya message butit'sgoingto be different.So, how canI help questionmark.Assoonas connecthas playedthatmessage,itwill be overtothe LexBottothen answer.Scroll downtobelow.UnderDTMF we kindaof gotthis configured.We needtochange thisto be Lex.So, well goaheadandpressLex.Now we needto provide the LexBotname.Now we call this kinetEcoBOT.AndaliaswasMYBOT. We didn'tneedtosendany additional attributesovertothe LexBots,butwe do needtolistenforthe intentrepliesback.Soif we clickon adda parameter.We now needtolistour intentsinhere.Youcan see those fromoverinthe Lex console.BackoverintoLex,that's these here.So,if we copythe firstone.Back overintoconnect,we can paste thatin.Then we needto go downand addthe rest.We've got disconnect,fault,andfinally,make apayment.Withthisnow configuredlet'spresssave.We cansee that ourGet customerinputbothas changed.We can now see the intentsandwe can now rootand handle those differently,basedonwhatthe LexBotunderstood. My collectmeterreadingsisgoingtogooverto service.Mydisconnectisgoingto go withsales.My faultswill goovertoservice.Andmake a paymentwill goovertoservice.Withthose now configured,I can save and publishmyapp.The contact flow has beensavedsuccessfully,butwe justneedtowaita fewmoments,foritactuallytobe published.Now let'smake atestcall,to experience the call flowfrom our customer. - [Female Operator] Welcome backStephanie,ThankyouforcallingKinetEco Incorporated.Howcan I help? - [Narrator] Make a payment. - [Female Operator] All ouragentsare currentlyhandlingothercustomers.Yourcall isveryimportanttous andwill be answeredinthe orderit was received. - [Narrator] Andthere we have it.Lex hasunderstoodourintent.Sendthe make a paymentintentbacktoour contact center.Andnow we've rooteditoverto the service queue,waiting for an agentto handle ourcustomer.
  • 52. Conclusion Well,thatbringsus to the conclusionof ourfoundational course onlearningAmazonConnect.If youlike whatyou've seeninthis course and thinkthatAmazonConnectmightbe a good fitfor projectsthatyou are workingon,there are some placesthatyou can go to fromhere.Be sure toreach out to your Amazonaccount manageror technical accountmanagerif you have one.It'll be a great place tostart planningyournextproject.If youdon'tthere are many Amazon consultancy partnersavailable thatcan helpyou.Andforthose of youwhoare more handson, I highlyrecommendthatyouspendtime learningthe widerAWSecosystem.There are manycoursesinthe librarythatyou can use to helpwith passingyourAWS associate exams.These will helpyouinunderstandingmore abouthow youcanbuild
  • 53. innovative solutionsandgreatcustomerexperiences.I'dalsohighlyrecommendthatyoustartlearning a programminglanguage.ForthisI'll choose Python.The LearningPythoncourse byJoe Marini isa great place to start. Andfinally,checkoutthe differentcommunitiesandresourcesaroundAmazonConnect. There are the forums,the LinkedIngroups,andof course the AmazonConnectdocumentation.There's alsoan AmazonConnectdemosite builtandmaintainedbyAmazon. Thisiswhere you'll findsome interactive demos,andunderreferencesyou'llfindthe attributecheatsheet.Take alookaroundthese resourcesandbe sure to share and contribute tothe community.Thanksagainforwatching,anduntil nexttime,keeponbuilding.