How-to AWS Tutorial

Voice Drop for Amazon Connect

Several of our customers ask us ‘how can we provide agents the ability to leave pre-recorded messages on a customers’ voicemail system’. This is also known as Voice Drop.

In this article, we cover how this can be solved using Amazon Connect.

What is Voice Drop?

Many companies require the need to make outbound calls to contacts and if the agent gets a voicemail, they want to leave an automated message. This frees up the agent to do other work. Therefore when an agent gets a voicemail, after the beep, they press the ‘Voice Drop’ button. This disconnects the agent from the call, and the phone system will leave the message and then disconnect.


What types are messages are left?

When a system is leaving a message they are 2 types of messages that really can be left. One that uses TTS (Text To Speech), or one that uses recorded audio.

When to use TTS

TTS is great if you want to provide an automated, yet personalised experience. For example:

“Hello, Mrs Ahmed, this is Your Company leaving you a message regarding your recent order. The table will be with you tomorrow between, 9-11am. If you need to change this simply return our call”

This provides a high degree of personalization, with reference to the customers, name, item and delivery slot information. As Amazon Connect uses Amazon Polly for TTS, there is a range of languages and personalities that can be used, including the impressive NTTS languages.


When to use Recorded Audio

Recorded audio is great for an ‘account management’ interaction. The pre-recorded audio would be recorded by the agent themselves.

“Hello, this is Sophie from Your Company, I tried to call you today. Please can you call me back on my direct line 01 2345 6789, thank you.”

Whilst this provides less customer-specific information, the customer can call Sophie back on her direct dial.


Can I have the best of both worlds?

Yes, this can be achieved. There are some considerations that will come out during planning/scoping this out.

How can I achieve this with Amazon Connect?

Amazon Connect provides significant value out of the box, that enables customers to focus on the customer/agent experience. As Amazon Connect provides several APIs we can create the experiences above.



VoiceDrop Architecture

At a high level:

  • Agents will use an Extended or Customer CCP .
    • This provides the necessary UI changes for the agent to see the Voice Drop buttons
  • API Gateway and Lambda
    • This provides the ability to process the API requests that are triggered by the agent when they press the Voice Drop buttons
  • Amazon Connect
    • Providing the telephony
    • Contact flows
    • Prompts
    • APIs

The magic here is the way we use all of the above together to create the Voice Drop feature. By using the set disconnect flow action block, we are then able to ‘catch’ the customer leg when the agent disconnects from the call, and perform some additional treatment.

Simply by doing the set-disconnect flow, this will not create the experience we need, the reason being, it gets executed for every call, even if we spoke to the customer, got a voicemail or just ringing phone. And this is not the experience we require.

Enter the updateContactAttributes API from Amazon Connect. This API, allows you to update metadata about the phone call in real-time, and this is how we tell the disconnect flow, whether to play a message or simply disconnect the caller. But how can the agent set these contact attributes? Enter the Extended CCP.


Agent Extended CCP

Amazon Connect provides a WebRTC client that can be used within Chrome or Firefox and allows agents to make and receive phone calls, along with handle inbound chats. This softphone is called, Contact Control Panel or CCP. Amazon provides an API to be able to customise the features and capabilities of the CCP. (For more information see here:

My personal favourite for creating an extended CCP is to use another service called AWS Amplify. Amplify provides the ability to create and host web and mobile applications with integrations with other AWS services such as Cognito (for Auth) and API Gateway. By using Amplify we’re able to build out an extended CCP like this:


The whole bottom bar is new and provides additional features and capabilities that we’ll discuss in future blogs. So let’s see Voice Drop in action from an agents perspective

(Below is an animated GIF on loop)

VocieDrop GIF

What changes have we made?

  • We have used the Amazon Connect Streams API to listen for Outbound Contacts and then when connected present the agents 2 additional buttons
  • The 2 additional buttons allow for 2 different experiences.
    • Voice Drop 1 will play message 1 within the contact flow
    • Voice Drop 2 will play message 2 within the contact flow
    • If the agent doesn’t want to play a Voice Drop they can simply press ‘End call’
  • When the Voice Drop buttons are pressed,
    • An authenticated API call is made to the API Gateway,
    • The API Gateway validates the security and passed onto Lambda
    • Lambda reads the provided details from the client (Agent Desktop) and updates the contact attributes
    • Upon successful response from API Gateway, the extended CCP then disconnects the agent from the call. This leaves the Amazon Connect contact flow to play the required message.

As you can see this process is quick, secure and easy for the agents to follow. You are able to customise the buttons however you require, even listen to keyboard presses if needed to trigger them. It’s all JavaScript providing you with great flexibility.


This is just one of the many ways in which we help our clients create the agent and customer experiences they require. If you’d like to discuss this with us, please get in contact.




Ps. Don’t forget you Amazon Connect service quotas!