VoiceFoundry Achieves AWS Public Safety & Disaster Response Competency December 4, 2019 by Kimberley Drobny Under: Blog, Business

As we close out 2019, we can look back at some of the year’s most extensive disasters, from tornadoes touching down in the Midwest to fires on the West Coast to some of the most powerful hurricanes along the Eastern seaboard. It seems there is no shortage of tragedies that test our resilience.  For those that must respond in a disaster situation, the ability to communicate is critical.  Communication systems can be tested and pushed to the limit and contact centers can quickly become overwhelmed as they attempt to meet the needs of callers. 

VoiceFoundry is focused on disaster response services, ensuring the availability of mission-critical contact center functions.  With the scalable, flexible and comprehensive capabilities of Amazon Connect, businesses can be assured that in the event of a natural disaster or human-error-related outage, it is still “business as usual” for customers.  This approach qualified VoiceFoundry to recently achieve the Amazon Web Services (AWS) Public Safety and Disaster Response Competency. 

With a comprehensive disaster response practice, VoiceFoundry is dedicated to supporting efforts to prepare and respond in the event of a disaster or unavoidable set of circumstances that might affect contact centers.  We are uniquely focused around customer experience, customer facing and contact center assets that leverage Amazon Connect and AWS services to ensure mission-critical support.  Our practice includes architecture planning, design, deployment and operational management of Amazon Connect and AWS services in support of a disaster response situation.  Our process includes a broad analysis of hundreds of impacting elements including integrations, global scale, human asset engagement, speed for conversion and economic impact.

AWS Competency Programs highlight AWS Partner Network (APN) partners who have demonstrated either a technical or proven customer success in key critical solution areas.  The achievement of the AWS Public Safety & Disaster Response Competency certification differentiates VoiceFoundry as an APN member that demonstrates technical proficiency and proven customer success implementing workloads focused on Disaster & Public Safety Operational Tools. To receive this designation, APN associates must possess deep AWS expertise and deliver solutions seamlessly on AWS.

VoiceFoundry is proud to be part of this newly launched competency in support of our customers that may require a quick approach to disaster response in order to ensure public safety.   Our business is driven to ensure the best customer experience in a contact center environment that leverages Amazon Connect and AWS services to ensure mission-critical support.  With over 100+ years of cumulative experience delivering exceptional contact center solutions and a rapidly expanding global presence, VoiceFoundry makes it easy for customers to quickly and effectively deploy or migrate to Amazon Connect for their contact center.  Click here for more information on VoiceFoundry’s Disaster Response Services.

Powerful Partnership Creates Powerful Customer and Agent Experiences November 19, 2019 by Kimberley Drobny Under: Blog, Business

There are many familiar and powerful partnerships – Batman and Robin, peanut butter and jelly; each partnership brings to mind the reasons why we love to see them together. The affiliations represent power, strength and the ability to solve a major problem the world might be facing.  In this case,  the newly announced partnership between Salesforce and Amazon Web Services is absolutely a match made to drive transformation in the contact center marketplace.

This partnership creates the ultimate in customer experience and promises to cause a disruption in the contact center market, the likes of which we have not seen in years. This combination is forcing a dramatic shift in the contact center landscape allowing the delivery of friction-less customer experiences.  Tight integration of Amazon Connect with Salesforce Service Cloud Voice allows customers to quickly integrate these two major services in order to meet the demands for a simple, unified and intelligent service experience.  The approach for a more unified customer and agent experience places phone, digital channels and CRM data in one central console.  From customer to agent interactions and all that is in between, the power of these technologies coming together in a more effective way sets the stage for a new approach to customer experience.

Why is this so important to us here at VoiceFoundry?  It’s simple.  We are one of the very few organizations in the world that has partnered with both Salesforce and Amazon Connect as a premier integrator.  The team at VoiceFoundry is passionate about the customer experience and our business is built on the design and delivery of solutions leveraging Amazon Connect and its many related services to drive a new level of customer engagement.  We look forward to working with this dynamic team in order to help customers create the next generation contact centers.

To find out more about how VoiceFoundry can help you take advantage of this powerful partnership, Contact Us today or check out our Salesforce CTI Integration page for more details.

To read more about the Salesforce and Amazon Web Services strategic partnership, click here.

Distance Makes the Heart Grow Fonder…But It’s Bad for Your Customer Experience! October 15, 2019 by Daniel Bloy Under: Blog, Technical

In an earlier Blog post we discussed the Architecture of Amazon Connect in some detail.  We concluded that a contact center does not have to be big and complex or take years and lots of dollars to create.  But what we didn’t talk about is where you should build your Amazon Connect Instance.

Just in case you’re new to Amazon Web Services (AWS), let me introduce some basic concepts before we move on.

Availability Zone (AZ)

Availability Zones (AZ) give customers the ability to operate production applications and databases that are more highly available, fault tolerant, and scalable than would be possible from a single data center.  Currently, AWS maintains 69 Availability Zones around the world – and they continue to be added at a fast pace.


Regions are made up of 2 or more AZs.  With this arrangement, AWS can provide “as a service” applications such as S3 (simple storage service) and Amazon Connect at a higher level of resilience. And you’re able to run your servers across 2 AZs, load balanced and highly resilient.

As the map below shows, regions are located across the world.

AWS Region Map Oct2019
AWS Region Map Oct 2019

With AWS you’re able to use services in any region. The typical approach is to use a location closest to your customers so you can provide the best experience.

Amazon Connect is provided “as a service” within the following regions as of October 2019:

  • N.Virginia
  • Oregon
  • Tokyo
  • Sydney
  • Frankfurt

The impact on voice quality

Moving data around the world is a vast and complex topic that I certainly take for granted. There are many elements that can impact voice quality such as:  headset, computer, local network (wireless/firewall etc.).  The distance between your agents and your customers also has an influence.

Distance typically means more latency. Latency is the time between when your customer says something to when your agent heard it.

Latency targets

When using online chat, SMS or social media, latency has minimal impact.  If it takes 1 second for a chat message to get to an agent, it’s not even noticed. However, 1 second in the voice world creates a very bad experience. 150ms (milliseconds) is the magic number for voice (or 300ms RTT).

For more information on latency, visit:

Impact of high latency

With 150ms being the upper boundary for high-quality conversation, 250ms is the upper boundary before we start experiencing significant quality impacts. This manifests itself in cross-talk. We have all likely experienced this when you talk over one another as you’re not sure if the other person has finished their sentence.

This leads to a bad experience and a frustrating conversation.

What can you do?

Plan, plan, plan and test, test, test.

In this Blog we’re only covering the placement of an Amazon Connect Instance.  However, the other factors involving the headset, computer, local network mentioned earlier are equally as important.

You should fully understand where your customers are located as well as where your agents are. I like to put the Amazon Connect Instance closest to where customers are found, however, there are many factors that may impact this decision.

Some Latency stats

You can get WebRTC stats by using the built-in Chrome tools. Place a phone call to your agent and navigate to chrome://webrtc-internals/ in a new tab. From my office WIFI in the UK, the images below show some test latency graphs (round trip times):


The example shows that from my UK office, on WIFI to Amazon Connect in Frankfurt, I was getting an RTT of 60ms, thus a one-way latency of around 30ms.

Customer Location

Customer location needs to be taken into consideration. You may have edge cases where customers will be traveling on the other side of the world. The latency is going to be higher for these edge cases than your norm. Factor this into your decision/testing.

Where to install Amazon Connect

Use Case 1

Customer Location: UK

Agents Locations: UK

Chosen Region: Frankfurt

Reasoning: This is the local region for EMEA.

Use Case 2

Customer Location: US

Agent Locations: US/UK

Chosen Region: North Virginia

Reasoning: Latency between US and UK regions is around 75ms allowing us to use a single Instance.

Use Case 3

Customer Location: AUS / UK

Agent Locations: AUS / UK

Chosen Region: Sydney and Frankfurt

Reasoning: The latency for a UK Customer to talk to a UK agent via Sydney is too great. Having 2 instances will require planning at the telephony layer and potentially data amalgamation in the back-end.

Other considerations

Some services such as LEX, Transcribe and Comprehend may form part of your solution, however, these may not be available within your chosen region.

Tools to help you

AWS Region Map:

Connect Latency Checker:

Troubleshooting guide: 

Inter-Region Latency: 

Know your customer and agent demographic!

In conclusion

The global infrastructure of AWS provides many great choices for deploying Amazon Connect. With the ability to create an Amazon Connect Instance within a few minutes you are able to rapidly test & learn, with almost zero cost. With a few upfront checks, you can set up your deployment for success.

Cloud Migration – Build on the Opportunities October 10, 2019 by Donna Penwell Under: Blog, Business

While creating the vision for your Contact Center in the cloud, businesses have an opportunity to consider other elements that can be added to improve the customer experience. Evaluating applications and services that can add value to the way customers interact with your company will keep them satisfied and ultimately, impact the company’s bottom line.


Cognitive CX -AI Powered Insights and Amazon Connect September 23, 2019 by VoiceFoundry Under: Blog, Business

VoiceFoundry’s Luke McNamara has previously written a Blog about the power of using AWS Lambda to access customer data. It’s one of a number of cloud services that make up Amazon’s Cognitive CX suite.  Luke continues his examination of the advances being made in the traditional contact center technologies, utilizing his 20 years in the industry to view the move from basic call centers to omnichannel customer experience platforms.

In this Blog Luke asks:  what would you do if your contact center could easily query your customer data?  For him, Cognitive CX it is about being able to easily access customer and operational data and use it to provide smart customer experiences.  It’s what marketers are constantly striving to achieve – providing a one-to-one personalized experience for each customer.

Continue to read his insightful thoughts on Cognitive CX here.

Contact Center Agent Notification – Secondary Ringtone August 20, 2019 by Joseph Mumford Under: Blog, Business, Technical

What happens when a Contact Center agent has their headset plugged in but steps away from their computer and then receives a call?  Or if the agent misses the browser notification that pops up at the bottom of their screen?  Wouldn’t it be nice to enable an additional notification ringtone that plays through a different audio source like your computer’s speakers?  If you are already utilizing a custom Contract Control Panel (CCP), the changes needed are minimal and don’t require altering how the CCP works.  Read on to see how!


  1. You will need to have a Custom CCP script that can easily be made by following the instructions at
  2. Ensure your Custom CCP script is utilizing the Event Subscription method { … });
  3. At least one new audio file that will be the secondary ringtone for your CCP. Since this will not affect the CCP, it can be any audio format and any length that is supported by your browser.

Adding an audio element

The first step is to add a new audio element to your HTML page.  Something like below:







This will display the audio controls useful for testing and seeing the play in action, you can hide this afterwards.  Change the file name on the “src” tag as needed, as well as the type of audio.

Check out for more information about the audio element.

Specifying Audio Output

To specify the audio output device, see the code example below:






























In this example, we simply created an HTML button that calls changeAudioDevice() when clicked, looping through the list of audio devices and displaying the current selection on a “p” tag.  The important part of this function is await audio.setSinkId(audioDevices[deviceOption].deviceId);  This actually sets the audio output source for that audio element.  There are many other ways you could implement this function so feel free to change how you cycle through the list and set the audio.

Below you can see a new audio output source after clicking “Set Audio Output” a few times.


CCP Integration

So we can now get an audio file on a page and select the output source.  Integrating with the CCP at this point is simple, we just need to invoke the PlayNotificationAudio and StopNotificationAudio functions within a few functions from the Connect Streams API

Once you have Connect Streams API included and can display the CCP, you’ll need to add our audio notification functions to the Event Subscription method

The Connect Streams API has several methods that are invoked during several state changes with the CCP.









That’s all you need to do to implement this basic feature.  OnEnded() is needed in case the agent misses the call, this function is called when the contact is destroyed and so it will stop the ringtone until the agent goes available again.

Next Steps

This is a simplified implementation of adding additional audio with a custom CCP and there is a lot more we could do to create a better experience for the agent.  See below for a few ideas to get started with.

  • Toggle switch to enable/disable secondary notification ringtone.
  • Use a dropdown to select the desired audio output source instead of a button to loop through them.
  • Save audio output selection as a user configuration so it becomes the default when using the CCP.
  • Allow agent to upload ringtones to an S3 Bucket or other hosting service for custom, unique ringtones for each agent.
  • Use a variety of ringtones and set a different ringtone for known contact phone numbers so agent is aware of who is calling before accepting.


Audio not playing – If your audio file is not playing on an incoming call, check the developer tools in the browser.  You may encounter “Uncaught (in promise) DOMException” when trying to play the audio file.  There is a feature of browsers meant to prevent auto-playing audio and video in new tabs and pop-ups.  The user must click or interact with the page first before the call to is invoked.  Check out for more information.  This could be solved by including a toggle for the notification sound forcing the agent to interact with the page first.

You can view the full source code used in this post at

Thanks for reading! — Joseph












Voicemail for Amazon Connect July 12, 2019 by VoiceFoundry Under: Blog, Business

Voicemail still holds a great deal of relevance within the modern contact center and is often fundamental to acceptable customer communication. VoiceFoundry delivers Voicemail for Amazon Connect as a vital element for our customers’ contact center operations. This solution provides both agents and supervisors the ability to access voicemail messages on the fly, from any device. Whether it’s desk phone, email, mobile device or desktop application, Voicemail for Amazon Connect can be received. Notifications are also sent to the AWS Connect custom control panel (CCP) or via email as soon as a customer leaves a message.

The Benefits

Receive email with transcribed voicemail message within your email client.

Although some might consider voicemail to be an old fashioned feature, it is still used as an integral tool in many contact centers.  VoiceFoundry’s Voicemail for Amazon Connect allows contact center agents and supervisors to either listen to or read a record of the message left by a customer. Each message is quickly and automatically transcribed to text and delivered by email or sent to the CCP with the audio file. Agents can then have the choice of reading the message rather than listening to it, allowing a more discreet method of assisting the customer.

How does Voicemail work?

VoiceFoundry Voicemail for Amazon Connect leverages a blend of AWS services including Kinesis Video Streaming (KVS), Transcribe, Lambda and DynamoDB to record, transcribe and deliver the message. The application records the message, stores the captured message in a designated S3 bucket and converts the record to text, which is then delivered via email, webpage or through a custom call control panel (CCP) within Amazon Connect.

  • Message recording based on real time audio streaming
  • Agent or queue based custom voicemail greeting can be recorded using recorded audio or Polly TTS
  • Voicemail notification via email or SMS
  • Manage messages with a simple web interface with the ability to delete, forward and even initiate a call back from the email
  • Email integration to receive a transcribed, text based rendering of customer voicemails
  • Simple deployment via serverless framework /CloudFormation
  • Combines a rich user interface for message retrieval
  • Extends integration capabilities with other standard email clients
Packaged Offering

VoiceFoundry’s Voicemail for Amazon Connect is offered as a stand-alone package that may belicensed and purchased on a per seat basis, or as a fully managed service. Both offerings include ongoing support subscriptions for future updates, bug fixes and compliance with AWS service changes.  For additional information Contact Us.

Setting up Contact Trace Records for Analysis with Amazon Athena June 21, 2019 by Joseph Mumford Under: Blog, Technical

Amazon Connect has excellent reporting features, both for real-time and historical analysis. Contact Trace Records (CTRs) are the primary source of data that Connect collects for every call that occurs within your contact center and are used for reporting and analysis.  These records are only stored for 24 months after creation, so they don’t last forever.

CTRs contain a lot of details about the call and one of the most important parts are Contact Attributes.  While these are not a necessary feature of CTRs, using them within your contact flows can yield a lot of useful data concerning the customer experience and record important events and details that occur during a call.  Amazon Connect does not support searching and reporting based on these Contact Attributes, however.  They can only be viewed when looking at the details of an individual CTR.

So how can we store permanently store CTRs and make them available for analysis with other AWS Services?  Keep reading to understand what services are needed and how to set them up to use with Connect.

AWS Services Overview

Amazon Athena

Amazon Connect

Amazon Kinesis Data Firehose

  • Amazon Kinesis Data Firehose is a managed data streaming service that will transport our CTRs from Connect to Amazon S3.

Amazon S3

  • With unlimited capacity and scalability, Amazon S3 is the best choice for storing our CTRs and it easily integrates with all the other services we need.

AWS Glue

  • AWS Glue is another managed service which stores the metadata and database definitions as a Data Catalog (database table schema) that we will use with Amazon Athena, based on our CTR data structure.

Amazon Athena

  • Amazon Athena gives us the power to run SQL queries on our CTRs in S3, using the Data Catalog from AWS Glue.

Implementation Guide

Note: Some configuration settings are not fully supported through CloudFormation so we’ll be setting up everything manually through the AWS Console.


If you already have an S3 bucket setup that you wish to use to store CTRs, just take note of the bucket name.  You can also use the S3 bucket that is used by your Connect instance to store call recordings and exported reports.  Otherwise, you will need to create a new S3 bucket.

  1. Navigate to the S3 Service Console in AWS.
  2. Click on the Create Bucket button.
  3. Enter a unique name for your bucket. Remember this must be a unique name world-wide.
  4. Click Create as the default settings are enough, the bucket will already be private.

AWS Glue

The next service we are going to set up is AWS Glue.

Amazon Athena
  1. Navigate to the AWS Glue Service Console in AWS.
  2. Start by selecting Databases in the Data catalog section and Add database.
  3. Enter the desired name for your database, and optionally, the location and description.
  4. Click on your newly created database. From here you can update the optional information if needed.
  5. When you click on Tables from the left-hand side, you will see all tables in that region. By clicking on your Database and then View tables, the console will automatically filter the tables to show only those for the selected database.

There are a couple of ways to create definitions for your table: manually, or with a crawler.  With the manual option, you can specify the table schema yourself.  With a crawler, you can schedule or run an on demand a job that can go through your data to attempt to determine the schema for you.  In this case, we will go through both options; we will setup the initial table manually, then add additional definitions using a crawler.

  1. Click on Add tables, then Add table manually.
  2. Enter your table name and select the database you want it to belong to.
  3. On the next page, select the S3 bucket to use as your Data Store. This will be the bucket that you wish to use to store your CTRs.
  4. For the Data format, choose Parquet. You then need to Define a schema by clicking on the Add Column.  Add the following columns and data types:
Column Name Type
1 awsaccountid string
2 awscontacttracerecordformatversion string
3 agent string
4 agentconnectionattempts string
5 attributes string
6 channel string
7 connectedtosystemtimestamp string
8 contactid string
9 customerendpoint string
10 disconnecttimestamp string
11 initialcontactid string
12 initiationmethod string
13 initiationtimestamp string
14 instancearn string
15 lastupdatetimestamp string
16 mediastreams string
17 nextcontactid string
18 previouscontactid string
19 queue string
20 recording string
21 systemendpoint string
22 transfercompletedtimestamp string
23 transferredtoendpoint string

Now you have a table that resembles the data from our Contact Trace Records.  Review and finalize your table configuration.  We’ll come back to Glue in a little bit.

Amazon Kinesis Data Firehose

The next service we will create is an Amazon Kinesis Data Firehose.  This will deliver the CTRs from Connect to S3.

  1. Navigate to the Amazon Kinesis Dashboard in AWS.
  2. Select Create delivery stream under Kinesis Firehose delivery streams.
  3. Enter your desired stream name.
  4. Choose the source of data, in this case, select Direct PUT or other sources. The other option is to get data from Kinesis Data Streams which is useful if you have other needs with the CTRs but in our case it’s not necessary.  Click Next.
  5. Under Process records, keep Record transformation disabled. Here you can invoke a lambda function to transform your data records prior to delivering to S3.
  6. We do want to enable Record format conversion. Select Apache Parquet.
  7. Next, we will integrate our new Glue database. Select your AWS Glue region, the Glue database and table we created earlier.  Select Latest for table version.
  8. Next, choose Destination. Due to enabling format conversion, S3 is the default and only option.  So, we’ll need to select the bucket we created earlier.
  9. For the prefix, you can leave this blank.  Firehose automatically distributes records using the following folder structure “YYYY/MM/DD/HH.” You can alter this if needed but that structure format will work for us.
  10. It is good to set an error prefix, such as “error/”. With this option, any records with delivery errors will get sent to this folder, isolated from other records.
  11. You can also specify a S3 backup destination which will store untransformed records. We’ll keep this disabled for now.
  12. Keep the default buffer size of 128 MB and set the buffer interval to 60 seconds.
  13. You can set S3 compression, encryption, error logging, and tags if desired.
  14. The final step is to create or choose an IAM role for Firehose to access S3 and any other needed services. Clicking the link will open a new page to create or choose a role. The default role is good enough, just change the Role name as needed.  Click Apply.
  15. Review your Firehose configuration and finish creating. It will take a minute or two to create.

Amazon Connect

Next, we need to configure Connect to send CTRs to your new Kinesis Data Firehose.

  1. Navigate to your Connect Instance in the AWS Console.
  2. Select Data streaming from the left-hand side.
  3. Click the checkbox “Enable data streaming” if not already enabled. This will display options for Contact Trace Records and Agent Events.  Under Contact Trace Records, Select Kinesis Firehose and select the Firehose we just created.
  4. Click Save and AWS Connect will update the instance and its own IAM role to access the selected Firehose.

We’ve now created all the Services we need; the only thing left is data.  If your Connect instance is already live, just wait a bit for new CTR’s to be generated otherwise, start making some test calls.  After you’ve got some new CTRs, check out the Amazon Kinesis Firehose in the Console.  Select your Firehose and click on the Monitoring tab.  You should start seeing some metrics pop up.

If it’s been more than five or so minutes with no metrics, you might want to check permissions as this is the most likely issue.  If you see data in DeliveryToS3Records, you are good to go.

Amazon Athena

Navigate to the Amazon Athena Console.  You don’t need to set anything up in Athena.  Athena automatically looks at your Glue Data Catalog and shows your available Databases you can query.  You should see your database in the drop down and tables underneath.  You can simply click the three vertical dots to open a small menu and select Preview table to run a simple query.  Or enter in the query tab:

SELECT * FROM "<your-database>"."<your-table>" limit 10;

Click Run query.  You should see your CTRs pop up in the results window below.  In the Results window, you can export your results as CSV.  Your CTR data can now be queried using SQL.  You’ll notice that currently, some columns have JSON strings in them.  Athena allows you to query keys within the JSON using json_extract() like this:

SELECT json_extract(attributes, '$.<attribute-key>') AS "<attribute-key>"
FROM "<your-database>"."<your-table>";

Visit for more information on Querying Data with Athena.
Going back to AWS Glue for a moment, we can now create a Crawler since we have data in our S3 bucket.  There are few more columns we can easily add to our table which will help speed up our queries as our data set gets larger and larger.

  1. Navigate back to the AWS Glue Dashboard.
  2. Select Crawlers from the left-hand side.
  3. Click on Add crawler.
  4. Enter desired name, tags and description are optional.
  5. Next, select Data stores as the Crawler source type. Choose your S3 bucket as the Data store.  You can add additional data stores on the next page, but we don’t need one.
  6. You’ll then need to create an IAM role. You can create a new IAM role directly on this page which is convenient.
  7. Next, you will need to create a schedule for the crawler. Since the structure of the CTR is unlikely to change, you can just choose Run on demand.  This will prevent the crawler from running unnecessarily and increasing costs.
  8. Now choose the database the crawler will write to. There are several options to choose from but for now, just select “Add new columns only” and “Mark the table as deprecated in the data catalog.”
  9. Review and finish.

Using the default configuration in setting up our table and crawler, there will be a small issue if you run the crawler first.  In our initial setup, the ‘compressionType’ will be ‘null’ on the database table and ‘none’ for our Crawler.  This will cause an error and the crawler will be unable to merge any new columns with the table.  To fix this issue, you will need to edit our table and add the tag ‘compressionType’ as none.

  1. Select your table and then select Edit table details.
  2. Scroll down to the Table properties and add the following key-value pair: ‘compressionType’, none.
  1. If we run the crawler now, we should have no issues and we should see that it updated our table. Click Run crawler.
  1. Look at the table properties now and you should see four new columns at the end, partition_0 – partition_3. This is not CTR data but a reference to the folder structure in S3.
  2. Edit these columns as Year, Month, Day, and Hour. Be aware of the type that the column is set to, the default will be ‘string’ but in this case you could also select ‘int,’ which is reflected with the following query.
SELECT "contactid", "year" FROM "<your-database>"."<your-table>" WHERE "year" = 2019;

Although not noticeable with small data sets, once we are querying our data lake with millions of records, the ability to filter by these partitions will greatly speed up our queries and reduce costs since Athena charges by data scanned.  In our case, this partitioning is built-in with Firehose and meets our needs, but you may have different requirements.

Check out for more information on working with source data and partitioning.


Amazon Connect has some great features to help you run a cloud-based contact center.  It is designed to enable you to get started as quickly as possible and manage your contact center with minimal effort.  Being a part of the AWS ecosystem, however, lets you leverage many other services so that you can get even more functionality from your contact center.

In a later post, we will dive further into data transformations and more complex table schemas.  The next phase would be to transform this data prior to S3 delivery where you can change these JSON objects to more structured and easily queried data.

Thanks for reading!  For further information on this topic or others, please Contact Us.

– Joseph

Architecture of Amazon Connect from 1 to 10,000 Agents…It Grows With You! June 4, 2019 by Daniel Bloy Under: Blog, Technical

Contact Centers have the reputation of being big and complex systems that take years to complete from the creation of the architecture to deployment.  The thinking is that only the wealthy can afford the fancy market-leading features.  Well, it’s certainly not true anymore.  Amazon is breaking the trend with Amazon Connect, where, in fact, you can get a basic Contact Center working in minutes and for less than you think!

But don’t imagine that this is some kind of second class version.  This is the same solution that the Enterprises use!

Simple Architecture

Simple Architecture

Here you can see what this looks like from an Architecture point of view… pretty simple right?  But don’t think of this as some sort of an inferior solution.  This has the same features that an Enterprise level business runs with but it uses the highly available AWS Infrastructure that scales on-demand and allows to pay only for what you use!  You get Telephony (Toll Free and DDIs numbers) along with IVR Menus, Call Queues, Reporting etc…and best of all you can add features as you grow.


This Amazon Connect solution is perfect for:

  • Small production contact centers (IT Helpdesk / HR etc.)
  • Organizations that are wanting to test and learn at pace.

Basic Architecture

Once you learn and grow with the Amazon Connect solution you’ll find more use cases for even greater features.  You may end up with something like this:


Basic Architecture


Ok, so we’ve added a few extra components here, but you’ll get some pretty impressive features:

S3: This is used to Store Call Recordings.  You have the option to Record Customer/ Agent or both and store these indefinitely. Audio is recorded in an Open format (WAV) so you can add tools later to analyze the information or just simply listen to them via playback which is available directly from the Amazon Connect UI.

S3: You also use S3 to save Call Reports, and, like the call recordings, you can save as many reports as you want for as long as you like. And using an AWS service called Athena, you’re able to query these flat files on demand at any time.

Lambda is a special service I highly recommend you learn about. Lambda allows code to be executed on demand and what the code does is up to the developer building it. In this scenario, we can use the data returned from the Lambda to affect the Customer Journey, provide information to the caller or provide the text for the messaging prompts. And it can integrate into other AWS Services, 3rd Party APIs or your own existing services.

DynamoDB: This is a NoSQL database from Amazon. You can store your customer orders, account information, have an administration database to affect special routing and more.  When used in the Architecture above, we are able to use the Callers ANI (Phone Number) which is sent from Amazon Connect to Lambda, which looks the callers order up in the database and provides the caller with personalized information! (Self Service) The information is Dynamic and Amazon Connect can handle it with its built-in Text to Speech Engine (so no need for complicated IVR messaging). You can also provide the caller some options to update the information and Lambda can update that in DynamoDB for you.


More Advanced Architecture


The great thing here is you get to see the value on a rapid development cycle.


Ok, by now you can see how you can start small and build on your investment. The great thing here is that you get to see the value on a rapid development cycle and you’ll start to drive your own wish-list as you see more value opportunities. So lets up the ante just a little…


Advanced Architecture


While this looks like a significant advancement, it’s still fairly contained. So let’s build on the previous model some more.

S3: This time we add a custom Administration Portal for your ‘Ops Team’ so that they can affect the routing via toggle buttons, close routing ad-hoc, play special messages (that they type into the portal) and respond to increasing demands etc..

Lambda: As shown previously, however, this time we also connect to SNS, Simple Notification Service. This allows us to send Mobile Notification, SMS, E-Mails etc.  This can be completed DURING or AFTER the contact.

LEX: This is the AI engine that drives Alexa. You’re able to provide natural conversational interactions for the whole journey or just parts of the journey.  Think about when your customer connects with you and the first thing they hear/see is:

Welcome back Donna.  I see your flight has been cancelled, would you like to reschedule?

Note I say hear/see… this is because LEX is a Voice AND Text Chatbot service.  You only need to code once and you can reuse that Chatbot within Amazon Connect (even export it to Alexa) and integrate it with your website / Slack etc…

Kinesis Streams: This provides the real-time streaming of all the Contact Trace Records (CTRs) data from Amazon Connect.  These are the results of the contacts from Amazon Connect. The data sits in streams waiting for a consumer, in our case the Lambda, to do something with it.

Lambda: As explained above, this provides post-processing of the records and can perform actions, like a post-contact survey, and sends the data onto Firehose.

Kinesis Firehose: Firehose is a variant on Streams which is more for batch type data movement, and is needed to feed Redshift.

Redshift: This is Amazon’s Enterprise Data Warehouse solution where you’re able to run queries on massive amounts of data and where your data scientists will live.

In conclusion

As you can see, a contact center does not have to be big and complex or take years and lots of dollars to create. With Amazon Connect:

  • You’re able to start small and grow.
  • No two implementations need to be the same;  you can create a solution just for you!


Note: Out of the box Amazon Connect has Service Limits, so make sure you’re aware of them.  Monitor for and increase as required.

For some customers, building and supporting the technology yourself doesn’t make sense. This is where VoiceFoundry can help, our Migration and Managed Service Offerings can ensure that you take full advantage of the Amazon Connect features and pricing without needing the in-house talent.



Doing a Cold Transfer with the Amazon Connect Streams API May 30, 2019 by Ivan Bliskavka Under: Blog, Technical

The Amazon Connect Streams API allows you to create custom interfaces for the soft-phone and provides many functions for interacting with the current connection. It is a powerful set of tools but some of the more sophisticated functions may not be so obvious. This blog post describes how to implement a cold transfer using the plain Streams API.


Amazon Connect Data Sources – Part 1 May 20, 2019 by VoiceFoundry Under: Blog, Business, Technical
In this Blog post, we’re going to take a look at the kinds of Data generated by Amazon Connect.  This will be the first of a 3 part series that takes a deep dive into this important element – Data. In Part 1 we’ll look at the 7 different types of Data generated by Amazon Connect and how you can assist in its creation. Part 2 will show how to get access to this Data in real-time via event-driven processes as well as how to use that data in real-time to trigger other processes. In Part 3 we’ll look at options on how to store this Data for analytics and reporting.
Why this is so important
Data within the contact center is a rich source of information. It can provide you with insight into why customers are calling, the performance of your IVR, repeat callers, customer sentiment and troubleshooting, to name just a few. Knowing what information can be generated by Amazon Connect is critical in helping you understand the architecture you require and how to design your contact flows and processes. So let’s get right into it.
Amazon Connect CTI Adapter for Salesforce – What’s New & Different? May 2, 2019 by VoiceFoundry Under: Blog, Technical
SalesforceVoiceFoundry Salesforce Capability

Before we jump into discussing the features of the newest release of the Amazon Connect CTI Adapter for Salesforce, we’d like to mention a little bit about how we might help your organization with Salesforce. Alongside AWS, we have helped to add significant amounts of functionality to the Amazon Connect CTI package. In short, we know it well. While the package is full-featured, your business may want or need something different. We have a deep understanding of the Salesforce platform and have dedicated, certified, Salesforce team members to help with everything from consulting and guidance to building a complete Salesforce solution for you. From custom screen pops to IVR-integrated workflows to Lightning and Visualforce application development, we have your Salesforce needs covered.


Get Insight from Your Call Recordings with Amazon Transcribe April 11, 2019 by VoiceFoundry Under: Blog, Technical

Amazon TranscriptionOne of the many things that makes Amazon Connect so powerful is the way it can integrate with other AWS services which then provide a rich baseline for our business applications. Amazon Transcribe is one of the newer services offered (it will be 1 on April 4th) and it adds an intriguing augmentation to the Amazon Connect Contact Center.

Rather than monitoring customer interactions by listening to audio files, Amazon Transcribe provides us with an opportunity to take the first step into Machine Learning and data analytics. These transcriptions can be further processed by other AWS services such as Amazon Comprehend or stored as part of an Elasticsearch cluster.


5 Non-Programming Items a Developer Needs to Know about Amazon Lex March 28, 2019 by VoiceFoundry Under: Blog, Business, Technical

chatbotAmazon has made creating a chatbot easy with Amazon Lex.  It is intuitive and quick to get going and there are some excellent blogs and white papers out there to teach you how to get started. However, these resources will only be appropriate to convey very simple ideas and have basic conversation with your customers. Here are 5 additional tips to help you out.


Agent Extension Dialing to Amazon Connect March 6, 2019 by Daniel Bloy Under: Blog, Business, Technical

When migrating from one system to another there are many business processes that can be affected, some of which cannot be easily changed. We have several customers who had this very scenario with regards to the agent extension. The routing of customers to agents within Amazon Connect is based around the concept of Queues.

For direct to agent routing, Amazon Connect uses a concept of Personal Queues. Personal Queues are the login name of the agent, which is typically an email address. Personal queues provide the ability to send a customer to a specific agent, however, we are still missing those important “4 digit extensions” that your customers use. In this Blog we’re going to show you a working solution along with instructions giving you the ability to build your own.


The Amazon Connect Quick Start Offerings February 19, 2019 by Daniel Bloy Under: Blog, Business

Its been just over a year since Amazon launched the Quick Start offerings for Amazon Connect.  Quick Starts are designed to be seamless and deployed in a few simple steps.  Originally presented with just 5 integrations, today you have 16 to choose from.  Just take a look at what’s offered:

Quick Start

Traditionally, integrations of this nature would have been a significant investment involving scores of people and many months of planning. While the Quick Start approach is not new, it’s certain to be new to the enterprise contact center space.  When you stop and consider what’s going on in the industry today, you can really start to see how Amazon Connect is going to differentiate itself in a busy CCaaS Market.


Goodfellas to Good Partners – Contact Center as-a-Service February 12, 2019 by VoiceFoundry Under: Blog, Business

A genuine Contact Center as-a-Service has finally arrived in the form of Amazon Connect.  In the past, a typical contact center sale could be categorized as anything but as a “service”.  If you needed to reduce the number of agents because of the loss of a contract or add agents during a seasonal peak time, it was difficult to negotiate the commercial and hardware constraints.  The balance has finally swung in the customer’s favor with new features which include significant savings over traditional cost per agent models.  (more…)

VoiceFoundry Mentors University Students to Employ Lex Chatbots & Amazon Connect – Win Award January 23, 2019 by VoiceFoundry Under: Blog, Business

Amazon ConnectIt’s no secret that universities have a constant battle keeping their curriculums up-to-date with the fast-paced development of artificial intelligence (AI) and automation. Royal Melbourne Institute of Technology (RMIT) is disrupting this institutional norm by preparing their students for working life through company mentorship programs. Companies such as VoiceFoundry, who develop innovative Contact Center technologies for enterprise, are working with students bound for Computer Science degrees to develop innovative and real-world business solutions. More businesses are looking for novel ways to engage their customers and deliver better service. Graduates entering the workforce who can demonstrate technology skills in Automation and AI are undoubtedly valued. VoiceFoundry is proud to be a part of the development of these skills.


re:Invent 2018 – ML & AI Steal the Show December 7, 2018 by Daniel Bloy Under: Blog, Business

re:inventAmazon re:Invent is one of many Amazon conferences held throughout the year, however, it’s the place to be to get up and close with AWS Product, Developer and Partner teams. Held in Las Vegas this year, the event featured over 50,000 attendees spread over 7 hotels, with 2 Expo halls, many day-long lab events, a builder fair, certification center, over 3500 breakout sessions and 4 keynotes… it sure was a hectic 5 days!

This year was filled with a mind-boggling slew of product and feature releases, which are increasing in cadence as Amazon reacts to customer demand and provides ways to secure and grow their dominance on the cloud.


Amazon Connect – Lambda and the Open Contact Center November 26, 2018 by VoiceFoundry Under: Blog, Business


After more than 20 years working with the traditional contact center technologies, Luke McNamara had seen the industry move from basic call centers to omnichannel customer experience platforms. So when we launched VoiceFoundry, he thought he had a good handle on the features and benefits of Amazon Connect and Amazon’s Customer Experience (CX) ecosystem. McNamara continues to learn in this space and the more he discovers, the more he’s impressed.  Read more about about why Amazon Connect is our core CX platform.