On top of that, Amazon Connect integrates with AWS and 3rd party services:

AWS Lambda: customize your contact center by writing source code.

Amazon Lex: build a voice or chatbot to interact with your customers.

Amazon Kinesis Video Streams: record voice in realtime and process later (e.g., transcribe).

Salesforce: integrate with your 3rd party CRM.

Zendesk: integrate with your 3rd party CRM.

In short, Amazon Connect is designed to operate a contact center at a small or large scale.

More Use Cases

With a little imagination, you can find more use cases for Amazon Connect. Being able to define custom flows and the call AWS Lambda functions opens up many possibilities. A few examples:

Implement a voice bot accessible via phone (e.g., to request data or execute a transaction).

Implement a routing logic that forwards incoming calls to landline or mobile numbers (e.g., round-robin incoming calls to 2-5 mobile numbers).

Implement a blacklist to block promotional calls.

Amazon Connect is a programmable telephone system.

Pricing

With Amazon Connect, there are almost no fixed costs. You only pay for voice and chat usage.

Type Pricing Voice Usage $0.018 per minute Chat Usage $0.004 per message

There is a fixed fee for phone numbers. Prices vary according to region, type, and country — a few examples.

AWS Region Type Country Monthly Costs US East (N. Virginia) Direct Inward Dial United States of America $0.90 US East (N. Virginia) Toll Free United States of America $1.80 Europe (Frankfurt) Direct Inward Dial Germany $3.00 Europe (Frankfurt) Toll Free Germany $3.90 Asia Pacific (Sydney Direct Inward Dial Australia $3.00 Asia Pacific (Sydney Toll Free Australia $15.21

On top of that, you pay for the inbound usage of your phone numbers.

AWS Region Type Country Per Minute US East (N. Virginia) Direct Inward Dial United States of America $0.0022 US East (N. Virginia) Toll Free United States of America $0.0120 Europe (Frankfurt) Direct Inward Dial Germany $0.0040 Europe (Frankfurt) Toll Free Germany $0.0387 Asia Pacific (Sydney Direct Inward Dial Australia $0.0050 Asia Pacific (Sydney Toll Free Australia $0.0540

Outbound usage of phone numbers incurs costs as well. See Amazon Connect pricing for details.

I’ve estimated the costs for Amazon Connect at our consulting agency widdix. We expect potential customers and partners calling in from time to time.

Region: Europe (Frankfurt)

Phone Numbers: 3 Direct Inward Dial numbers

Voice Usage: 30 minutes per day (inbound only)

Type Monthly Costs Voice Usage $16.20 Phone Number Usage $3.60 Claimed Phone Numbers $9.00 Total Costs $28.80

I would like to emphasize that there are practically no fixed costs when using Amazon Connect. Pay-per-use only!

Lambda Integration

Amazon Connect integrates with AWS Lambda. Implement Lambda functions to extend the functionality and customize the customer experience to your needs.

Typical use cases for a Lambda function are:

Enrich the contact information by fetching data from a database or 3rd party service.

Interact with sub-systems based on customer input.

Built integrations with your CRM.

Send analytics data to a database or analytics platform.

I’ve used a Lambda function and a DynamoDB table to implement a blacklist.

The contact flow invokes a Lambda function. The Lambda function checks whether the caller ID is stored in DynamoDB. The Lambda function adds a Blacklisted attribute to the customer. The next step checks for the Blacklisted attribute and terminates the call for blacklisted customers.

Keep in mind the following limits when implementing Lambda functions for Amazon Connect:

The invocation timeout is 3 seconds per default and 8 seconds maximum.

There will be silence during the invocation of a Lambda function. Keep that in mind, when chaining Lambda function actions.

The duration of a sequence of Lambda functions is limited to 20 seconds.

The Lambda function must return a flat object of key/value pairs.

The result object must include keys that include alphanumeric, dash, and underscore characters only.

The result must not exceed 32 KByte of UTF-8 data.

User Interface

I do like the user interface to manage a connect instance. Getting started with Amazon Connect is simple, as the user interface is self-explanatory and guides you through all required steps.

The Contact Control Panel (CCP), the user interface used by agents to accept incoming calls, chat with customers, and initiate outbound calls, provides a solid experience as well.

There is one little snag: Amazon Connect supports Chrome and Firefox only.1

Management API and Infrastructure as Code

Unfortunately, Amazon Connect does not offer an API to configure your instance. Therefore, you cannot use Infrastructure as Code tools like CloudFormation or Terraform to spin up your contact center. That’s too bad and prevents us from deploying our contact center in an automated and tested way.

After all, there is a function for exporting and importing flows. Unfortunately, that is not even close to having a complete management API. Also, the export/import feature is still marked as beta.

SSO with SAML

There are three ways to authenticate agents for Amazon Connect.

The built-in user management. The AWS Directory Service (Microsoft Active Directory, Active Directory Connector, and Simple Active Directory). The SAML 2.0-based authentication.

I had a more in-depth look at the SAML 2.0-based authentication and was disappointed.

First of all, it is possible to use SAML 2.0 for authentication. However, you have to add users to your Connect instance manually. Otherwise, a user is not able to log in via SAML.1

In my opinion, SSO with SAML is not fully implemented.

Transferring a Phone Number

There are two options to add a phone number to your contact center:

Claim a phone number provided by AWS.

Transfer an existing phone number.

Transferring a phone number is an adventure. I’ve gone through the process for a few German phone numbers +49 . Keep in mind that the process varies from country to country.

Transferring a phone number starts with creating an AWS support case. No need to pay for AWS support, though.

Open the AWS Support Center. Click the Create case button. Select Service limit increase. Choose limit type Amazon Connect. Type in the ARN of your contact center instance. Select the region of your contact center instance. Choose Phone Number Porting from the list of limit types. Describe your transfer request.

AWS will send back a PDF that you need to fill out. The process of transferring a phone number seems to involve many manual steps. The support ticket went back and forth several times. In some cases, the AWS support team had to wait for answers from the Amazon Connect service team.

Overall, the transferring of our phone numbers took me almost two months. My advice is, therefore: plan enough time.

Missing Features

The feature set of Amazon Connect seems quite complete to me. However, I’m missing the following:

Chat Widget: So far, there is no easy way to integrate the chat channel into your websites. Besides some examples, there is nothing more than the API documentation for implementing the frontend part. It is even necessary to implement a little bit of backend logic. I’m expecting a ready-to-use widget that I can add to my website with a few lines of HTML/JavaScript code here.

At the moment, it is not possible to transfer phone numbers between Connect instances without contacting AWS support. There should be an API and user interface for that.

It is not possible to switch the authentication mechanism of a Connect instance right now (e.g., from built-in user database to SAML).

Amazon Lex should be available in the same regions as Amazon Connect.

Service Quotas

As usual, Amazon Connect comes with service quotas.

Default Quota Type Users per instance 500 Soft Limit Lambda functions per instance 35 Soft Limit Active chats per agent 5 Hard Limit Characters per chat message 1024 Hard Limit

See Amazon Connect Service Quotas for more detailed information.

A word about soft limits: it is possible to increase soft limits by filing a support ticket. Sadly, AWS does not provide any information about the upper limit for those soft limits. It seems to be an internal policy not to tell customers upfront about the upper limit. This is unfair and non-transparent. One should, therefore, understand the default quotas as an upper limit.

Service Maturity Table

The following table summarizes the maturity of the service:

Criteria Support Score Feature Completeness ✅ 8 Documentation Detailedness ✅ 7 Tags (Grouping + Billing) ❌ 0 CloudFormation + Terraform support ❌ 0 Emits CloudWatch Events ❌3 0 IAM granularity ✅ 10 Integrated with AWS Config ❌4 0 Auditing via AWS CloudTrail ✅5 8 Available in all commercial regions ⚠️ 6 SLA ✅ 10 Total Maturity Score (0-10) ⚠️ 5.4

Our maturity score for Amazon Connect is 5.4 on a scale from 0 to 10.

Summary

Amazon Connect is a programmable phone system and contact center solution. I like that there are almost no fixed costs associated with Amazon Connect. The solution is flexible, not only because of the integration with AWS Lambda and other AWS services. The biggest bummer: there is no management API and, therefore, no CloudFormation or Terraform support available. The contact center features seem to be stable and mature. However, the integration into the rest of the AWS ecosystem is mediocre (Tags, CloudWatch Events, AWS Config, …).