Understanding Amazon Connect Call Center Pricing!

Amazon Connect Basic Pricing Model

Even the most hostile competitor will grant that Amazon has changed the pricing game in call center technology.   “No license fees” and “pay only for what you use” are compelling strategies that would stop a man on a galloping horse!   Amazon typically summarizes the cost of its Connect call center as consisting of three components; the service usage charge, the cost of a ten digit voice number and the cost per minute of using that voice number.

Pricing Examples

An end-customer calls using an Amazon Connect US toll-free number in the US East (N. Virginia) region, answered by an agent on the Amazon Connect softphone. The call lasts 7 minutes.  There are 3 separate charges that apply for this call:

1. There is an Amazon Connect service usage charge, based on end-customer call duration. At $0.018 per minute * 7 minutes = $0.126

2. There is the day charge for use of the US toll-free number. At $0.06 per day * 1 day = $0.06

3. And there is an inbound call per minute charge for US toll-free numbers. At $0.012 per minute * 7 minutes = $0.084

So the total for this call is $0.27 (plus applicable taxes, fees, and surcharges).

This cost analysis is accurate but assumes that your call center is an isolated model with not integration with any other AWS Service.   Optional services, used to enhance your Call Center functionality and improve the customers experience have additional charges that are not reflected in the basic price example above.   To get a more accurate picture of the true cost of a call center we need to make some assumptions as to how an average call center is configured, noting the various service that may be required to implement the requirements of that call center.   Then we can look at the additional service costs and improve our understanding of the true cost of an Amazon Connect Call Center.

Real World Call Center Requirements

Let’s take a look at several very basic, yet very real world call center requirements and then evaluate the cost of the additional services.

  • Custom Call Routing

    • Most if not all call centers have some kind of call routing algorithm that usually require and external computational resource in the form of a database and the code or application that evaluates the database information.   For example, assume that we want to route calls based on the callers possible location using the Area Code displayed in the incoming caller ID.   Additionally, let’s assume that we want to evaluate the callers relationship with our company be determining if they are a new customer or an existing customer.  In both cases we would be looking up the callers incoming phone number in an external database to resolve either or both of these questions.  We would route the caller to the Agents that handle New  York, or route the caller to Agents that handle new customer or existing customers.   There would be any number of technical solutions for implementing this caller lookup, but for purposes of discussion, let’s just assume we will not spin up a Windows SQL Server in an EC2 instance, but use AWS Serverless solutions that include a DynamoDB table and some Lambda functions to operate on that data!
  • Holiday and “Ad Hoc” Closings

    • Call Centers operate on dynamic schedules that very often impact the handling of inbound calls.   Are we open or closed sounds like a simple decision, but it does require some additional “belts and suspenders” to get an answer to that question.   If we close on Holidays, we will need to reference list of days we are closed (read: database).   Some call centers enable supervisors to temporarily close a customer service queue for a team meeting.  Depending on the sophistication of this feature the supervisor might also create a custom prompt to be played to the caller during the team meeting.
  • Real Time Queue Metric Displays

    • Again, call centers typically display the status information of the various customer service queues that comprise the call center.   We want to know how many folks are waiting in each queue, how long they have been waiting and highlight the caller that has been waiting the longest.  When we answer a call we update that data set and when we terminate that call we update that dataset again.    Agents often want to see the status of their supervisor and team mates.  Are they “talking”, “idle” or in some “release” state?   AWS Connect has a library of API’s to help with the analysis of this information but it will require additional services to make use of that information in a way that has a positive impact on the call center stake holders.  (Read: Kinesis streams, DynamboDB and Lambda functions).
    • Perhaps you will want to run these recordings through transcription and translation services.  AWS has some exciting NLP and AI options that will impact that call center in astonishing ways.  Imagine English Call Center Agents being able to interact with Spanish, French or Chinese speakers!  Transcribing speech in realtime and popping agent prompts or recommended responses based on sentiment or key words used by the caller are all viable options within the AWS service stack available to an AWS Connect Call Center.
  • Logging & Recordings

    • Call Centers typically record phone calls for a variety of compliance and service improvement. Those recordings need to be stored somewhere along with your real time contact record trace logs (Read: S3 bucket).
  • Voice Analytics 
    • AWS has a service LENS which provides transcriptions of voice recordings and applies sentiment analysis on that recording.  Usually a third party provider in other solutions but now included in Amazon Connect with an additional charge.
  • Single Sign-on Options for Agent Login/Out

    • Cognito, SSO with SAML or other authorization options.
  • Custom Agent Dashboard and Real Time Display

    • Most folks will find the CCP or softphone that comes standard with your AWS Connect instance to be very useful for basic answer, transfer, hold and consult operations.  Getting additional information displayed to the agents however may require additional desktop display options.   For example, how do you retrieve and playback those phone call recordings?   Do Agents need to add a “disposition code” at the end of a phone call?   How is the queue and agent team status information displayed to the agents?  Do Agents work with channels other than voice?  Do they handle Text messages?   Chat sessions?  Social Media messaging?     This options will require an Agent interface that can display this information and enable the agent to interact with these other channels.

Real World Call Center Example

Granted the above requirements are very basic, but they are representative of the type of services that a call center would expect to be available and they also have additional service charges not covered in the basic AWS Connect Pricing Example we listed above.   Let’s take a real world call center example and then apply the additional charges that would be incurred if we were to implement the above requirements.    In this example we are drawing from an actual day in the life of an actual call center that is considering migrating to AWS Connect.

Daily 70 Agent Call Center Utilization:

  • Inbound Phone Calls for the day: 4959
  • Average Call Handling Time: 7 minutes per call
  • Total Minutes of use: 34714 minutes or 578.5 Hours
  • Base AWS Cost $624 (assume telephone carrier costs the same across all competing options and are not included)
  • Base Annualized assuming 261 working days = 9M Minutes or $163,086.00 per year in AWS Connect Usage Charges

Additional Service Costs

The most costly services in this very simple example would be DynamoDB and Lambda.    DynamoDB pricing has several components; the size of the Table for data storage (.25GB), DynamoDB Streams, Read ($0.09 per RCU-month),  Write Requests ($0.47 per WCU-month).   The pricing for Lambda is far from simple: A free tier followed by $0.20 per million requests plus $0.00001667 per GB-second of ‘compute time’ used per month plus the cost of the API Gateway or streams.Each incoming phone call will result in:

  • Lambda Call to DynamoDB Table for Routing Information
  • Lambda Call to DynamoDB Table to determine Possible closing
  • Lambda Call to DynamoDB Table to add caller to Queue count and update display
  • Lambda Call to DynamoDB Table to remove Caller from Queue and display when call answered
  • s3 Storage increase of 7 Minute recording Object (.023 per GB)
  • s3 Storage increase for Logs and Contact Trace Records (.023 per GB)
  • Agent Login/Out Call to Cognito or SSO SAML provider (.15 per 10000 sync operations)
  • Summary –
    • >19K Lambda Calls per day, 5M  per year
    • >19K DynamoDB Read Requests
    • >19 DynamoDB Write Requests

Other important service considerations

Advanced functionality like Natural Language Processing, Speech Recognition, Transcription, Translation, Voice Analytics, Workforce management, Polly and LEX are some of the other services that you will undoubtedly make use of in your call center design.  These will all be billed as AWS line items outside of the Connect usage charges.    The above Basic functionality Example is probably adding an additional $25 a day or $6K a year to the cost of an Amazon Connect Call Center based on the above call center stats!

Clearly, unless you have a team of software engineers on your staff that understand these AWS service in addition to their coding skills, you are going to need design and implementation expertise.

Again, though pricing can get complex and often has many components that are not easy to identify like data transfer, encryption and acceleration it is all more than manageable and very cost effective.   In fact all of the above functionality could be included in the use of a custom dashboard from Dextr.Cloud which would give the Agents and Supervisors all the real time status information they require, enable agent to agent chat, email, text, supervisor alerts, monitoring and coaching and a growing list of new features as the product development map unfolds!  This functionality could be fixed for a modest charge of $69 a month per simultaneous agent access.   Small price to pay for that list of feature, would you agree?

 

 

SUMMARY of COST CONSIDERATIONS

We see five areas for understanding Amazon Connect:

(1) Carrier cost = DNIS/800 as published generally .03 center per day for a DID number and .06 cents per day for a toll free number/

(2) usage cost for using the carrier per published price generally .0022 for DID and .012 for toll free

(NOTE – the above charges would be required of any solution you are considering, generally AWS will be less costly however)

(3) .018 connect minute service amazon connect  you are billed from the time call comes in to your call center until it terminates.  It does not matter how many agent you have as you do not pay for agent licenses as is the case with the usual cloud call center providers.

(4) other AWS services like chat (.004),  LEX (4000 speech requests estimate .004 per request or $16 ; lambda ( 1 Million request free per month then .00000002083 per request) /dynamoDB  (https://calculator.aws/#/)  and other service they may use like S3 for storage etc. (5) dextr (.003 per logged in minute)(edited)

We have an AWS Pricing Calculator that can help you with these more advanced calculations, just give us at call at 800-946-6127 and we will make it available to you.   We can provide you with seats in our demo call center if you would like to try both Dextr and AWS or we can build you a proof of concept call center in your AWS account for a modest fee.

 

 

Amazon Connect Configuration Best Practices – Part 3 After Hours Call Flow with SMS!

Providing options for callers to you contact center after normal business hours is always a good practice. Our standard “after hours call handler” makes use of several options:

  • Send Caller to Voice Mail or Message Center
  • Send a Text Alert to an on call team member
Download After Hours Call Handler with SMS notification Option
You must register on home page to download

The text notification step requires some additional AWS services including PinPoint, SNS and Lambda functions. For this option to work, you will need to setup an SNS topic and make use of PinPoint to get a phone number to associate with the call block.

In the above call flow block, we invoke the lambda function when the caller selects that they want a call back from the on call team member. Lambda then interacts with PinPoint and SNS to send a canned message “an after hours caller needs help” sending both the message and the contact phone number to the SNS subscribers. This is a very effective solution for integrating SMS into your contact flows and is ideally suited to “on call” notifications.

Amazon Connect Configuration Best Practices – Part 1 Main Greeting options

Every Call Center is in fact unique, but the all share a common theme that can be encoded for recreating deployments quickly. Generally we divide Contact flows up into manageable contact flows that compartmentalize call handling. For example we generally create a MainGreeting, QueueHandling and After hours Call Handling call flow and these three basic contact flow blocks provide some very powerful options!

Generally, we attach the incoming phone number to the MainGreeting Contact flow. This flow is very important as we use it to setup all the required variables required for whatever CSQ this greeting will front end. This contact flow will usually perform the following:

  • Set the voice to use for Polly based prompts
  • Enable Logging behavior
  • Enable Call Recording behavior
  • Set Agent Hold Behavior
  • Set Customer Hold Behavior
  • Set the Queue Hold Behavior
  • Set the Customer Queue
  • Set the whisper behavior
  • Set the Working CSQ
  • Invoke Lambda function to check for special closing
  • Check Operating hours
  • Prompt and Collect Caller Input
  • Transfer to Flow or Queue as required

These are all critical parts of the overall call flow and set the stage for call handling throughout the rest of this callers experience. Not burdening the the contact flow with all the queue options while awaiting connection with an agent, makes the flow more manageable!

If the caller can not immediately be routed to the next available agent, they are passed into the contact flow that describes the experience the caller has while waiting including the presentation of any options the caller might elect to initiate while holding.

DemoMainGreeting Contact Flow down load link!
You must register on the Home page to download the script

We will cover the Queue Hold options in the next post!

Amazon Connect voice prompts with POLLY text to speech.

One of the most challenging implementation tasks for an implementation engineer or application developer is getting the client stake holders to agree on customer audio prompts! Having implemented hundreds of call center solutions, having to wait for the client to get their IVR scripts together is the “black hole” of project management. So many other parts of the enterprise have their finger prints on the content of a customer voice prompt. From the call center managers to the legal department, everyone wants to comment on this implementation detail.

Voice Prompts can be a “speed bump” in your deployment timeline!

For the implementation engineer, it is without doubt the speed bump that slows down project readiness! Often the prompt is a source of data collection for “self navigation” through the “call tree” or IVR front end. “Thanks for calling, Press 1 for this and 2 for that” has some hard coding detail that can be easily effected by a simple prompt change!

Thankfully AWS has an embedded service that provides text to speech functionality. This means an implementation engineer can move ahead by popping prompts with text that can easily be changed as the rest of the enterprise catches up on prompt content, format and voicing. This service named POLLY, is a more than useful service and has been a life saver in more than one “instance”, excuse the pun!

Polly Programmatically?

Polly is not only useful for creating test prompts until the content and format can be reduced to a script that a professional voice artist can record, it can be used “programmatically”. For example, Dextr has an embedded application for automating closings, regardless if they are scheduled holidays or “ad hoc” closings for a team meeting called by a CSQ supervisor. Dextr will allow you to not only setup the calendar and time of a closing, but will enable you to enter the text content of a prompt to be played to the caller during the closing.  This might be a custom greeting for a holiday (i.e. we are closed for Christmas, or Veterans Day) or an on the fly prompt for an ad hoc meeting.

Polly Prompts on demand!

Many times, it is necessary to create a prompt on the fly!  Maybe you want to personalize a prompt by adding the callers name, or some customer specific attribute like an appointment time, or order number.  Common applications like reading back a bank balance are also made more flexible by using Polly.  Not just speaking back account balances, but making the call flow and content in an AWS Connect instance programmatically customized on the fly, and unique for each caller.

This strategy is a win/win for all stakeholders!  It enables a more rapid deployment of a call center context while enabling greater flexibility in the design, deployment and management of prompts.   Enabling Polly as a service inside your AWS Connect call center instance is an essential part of your implementation tool box and a software application development engineers best friend!

Lex a conversational voice interface for Amazon Connect call trees.

Historically touch tone “call trees” have over populated the IVR landscape prompting callers to “Press 1 for this and Press 2 for that”. This has been the standard since the first half of the last century! You would think that in the 21st century we would have a solution that can eliminate this kind of button pressing, sequential logic, menu after menu of options and hope the caller gets where they wanted to be!

Which would you prefer?

Think about it. What would you prefer as a caller? “Thanks for calling BoringCompany greetings, if you know the extension of the party you want to talk with, enter it now. Press 1 for Customer service, Press 2 for Technical support, Press 3 for another menu with even more options for you to select from”! Or would you prefer “Thanks for Calling, how can I direct your call”?

To achieve that simple interface takes a lot of technology, but fortunately AWS Connect makes use of an AWS service named Lex. Lex is a combination solutions that include Speech Recognition, natural language processing and artificial intelligence. Lex can prompt a caller with a friendly voice “‘how can I direct your call” and then understand the callers spoken response. NO more pushing buttons, no endless menus.

For example, Lex could even figure out what language the caller is speaking and respond according, no more “to continue in english please press 1”, which in and of itself is worth the price of admission.

What is an Utterance?

Lex is built on the concept of “utterances” which is nothing more than a spoke phrase to which you can create additional responses. For example, the caller might say “I need to check the status of an order” and Lex might respond with “is this a recent order or do you need to speak to your sales rep”?

Keep in mind that Lex has captured the Caller ID of the caller and could actually look up either the order or the sales person that took the order. Lex might even be able to greet the caller by name. “Thanks for calling Peter, how can I help you”.

What can a “ChatBot” do in a call center?

As a “ChatBot” Lex can enable callers to self navigate through solution options without ever speaking to a call center agent. Lex can book an appointment, change schedules, update status information, change passwords, update calendars, summarize the new, weather and sports and greatly enhance the speed of answer and call resolution.

If Lex replaces three call center agents, is that an increase in productivity? We think not, if it only gets the same amount of work done as before Lex was introduced to the call center. We increase productivity when we can redeploy those three agents to do other work!

As always we are happy to setup a “proof of concept” that applies Lex natural language processing and automatic speech recognition to your specific environment. Just click or call and we would be happy to help you!

 

Amazon Connect Custom Integration tools!

If you have taken the time to experiment with AWS Connect and the creation of a cloud call center instance, you know that the basic setup is achievable by a business analyst and no implementation engineer is required. This is good news for very simple, inbound call centers but if you are planning to connect with the rest of the enterprise, you will need some folks skilled in full stake web service development.

No Call Center is an Island!

Call Center as a business process and customer experience management, require that the call center be able to communicate with other information resources throughout the enterprise. The interface between the AWS Connect call center instance and the rest of your organization will must certainly require both middleware and API’s that make use of advanced software development tools within AWS!

Common integration requests that dominate the call center technology space include:

  • Customer Routing Database Integration;
  • Work Force Management
  • Voice and Screen Recording and Playback
  • Voice Analytics
  • Salesforce.com
  • Electronic Health Record
  • Website Integration (think MyChart or CoBrowsing)
  • Microsoft CRM
  • Microsoft Skype for Business
  • Custom Agent dashboards
  • Real Time Metric display boards

These are just a few of the common requests we see on a daily basis. There are also unusual requests for custom solutions that are unique to the business enterprise the call center is deployed in!are also unusual requests for custom solutions that are unique to the business enterprise the call center is deployed in!

Common AWS Connect Integration Tools!

There are a few tools that are essential for developing integrations in AWS Connect. Generally, you will always require Lambda a “function as a service” to unite the call center to any other service. Lambda is “serverless” so you do not need to worry about setting up a server and you can write your function in any of the popular programming languages including Node.js our particular favorite!  Unless you are interfacing with a CRM, you will need a database and we would choose a noSQL solution like AWS DynamoDB, another server less solution.  Lets assume you want to route calls based on the callers area code, so that east coast calls go to the Agent group in your hierarchy that is optimized for east coast callers.  Maybe you want to greet your callers by name. This would require you to pass the Caller ID on an incoming phone call to a function in Lambda that would look up the customer and find the name, then pass the name back to the call center and activate Poly, the AWS text to speech service, so that you can prompt the caller with “Hi <customerName> before continuing to route the call to an agent!  Maybe you want to display the callers name to the Agent when they answer the call, which would again require both Lambda and DynamoDB in addition to some custom code!

Custom Agent Display?

Sometimes it is necessary to create an entire Agent dashboard to handle information displays, team collaboration, key metric broadcast, recording retrieval and playback.   We created the Dextr.Cloud dashboard to provide such an interface.  This is an example of the type of integration that is possible with AWS Connect and the many services that exist in the AWS Cloud.    We are interested in learning more about your own call center integration requirement and invite you to give Dextr.Cloud a try and also to contact us with your integration “’wish list’.   We have seen a lot of requests and nothing suprises us anymore!  So please feel free to play ‘STUMP THE VENDOR” and we will see if we can help you or at least direct you in the right direction!

 

 

 

The Achilles Heel of all Cloud Based Call Centers!

The Cloud Call Center Problem Statement!

A very common call center requirement is the ability to route a call based on the DNIS number dialed.  This is simple enough when you have only a few DNIS numbers to manage, but consider this application:   Consider a central call center that provides centralized appointment scheduling for some 600+ medical offices.    The call center agents are required to answer an inbound call with a custom answer greeting that is based on the medical office that cares for that patient.   The solution in place today requires the cloud platform to have a unique DNIS for each of 600 medical offices.  When a medical office wants to take advantage of services offered by the call center, they call forward their phone to the unique DNIS number on the call center platform assigned to their medical office.   On an incoming ring,  the call center grabs the DNIS and uses that number to index a connected database to retrieve the  name of the medical office and then display it to the agents on call presentation so they can provide the custom answer prompt.

As you might imagine, maintaining and updating both the relative campaign and a database of DNIS numbers is not only a nuisance with many opportunities for an error, it is also not very scalable.  The simplest solution is the ability to normalize or change SIP Headers or obtain the RDNIS in a PRI connection.   Neither of these is an option in any of the many cloud based solutions we have worked with.

The CPE solution!

In a CPE based solution we can touch the boarder controller of the incoming SIP trunk and see the various headers.   In a PRI trunk you could also see not only the CID/ANI  but the DNIS and the RDNIS.   RDNIS is commonly used in a voice mail system for example, to know the correct mailbox to open so the caller does not hear a main greeting but a custom greeting for the mailbox owner.   In either the SIP or PRI environment, we would NOT need 600 DNIS numbers to solve this application.   We could see the RDNIS or the FROM SIP header and use that field to look up the correct answer prompt or medical office name in the database.  We did a complete tutorial on this SIP header manipulation to achieve this same solution though the application was a bit different.

One for all and all for one?

Another major shortfall with cloud based call centers is that you will find it very hard to make modifications that are unique to your call center.  Keep in mind that all the cloud based call centers, with the possible exception of AWS Connect, are solutions that encompass many different clients.   The cloud provider can not make a modification for your call center unless it is applicable to all their other clients.  Likewise, when they upgrade or add a new feature, you are getting the new feature and the upgrade regardless of your desire to participate!

Summary

The Cloud is an amazing resource but it is not a one size fits all.  You will need to understand your requirements and how they match to what is generally available from your provider.  You should also understand that you will be increasing your WAN connectivity requirements to include advanced options like Software Defined Networks and MPLS, BGP along with bandwidth increases and new firewall challenges that you would not have on a CPE deployment.   You will still have phone and video end points, power over ethernet switches, network access credentials, intrusion protection and all of the IT resources you would still have with the Call Center located on site.  There are many advantages to the cloud, but make sure you know what you are hitching enterprise with!