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.
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).
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.