Amazon Connect Configuration Best Practices – Part 2 Customer Queue Flow
March 4th, 2019

Making the caller “comfortable” while waiting in queue for the next available agent is the primary role of a “customer queue flow”. Our standard practice is to provide a range of options that can be turned on or off as desirable for a specific CSQ. The main greeting contact flow discussed in Part 1 will attempt to hand the caller off to an available agent, but if none are available, the caller is moved to the customer queue flow.

The “customer queue flow” we typically provide does some initial setup and status checking:

  • Set Loop Prompts (Music and messages and time)
  • Check Queue Status
  • Check Call Back hours of Operation
  • Play EWT prompt
  • The Offer the Caller options (Wait, Voice mail and Call Back)

In our standard queue hold we check the queue status for “time in queue” of 3 minutes. We use this “poor mans” estimated wait time to provide an option to the caller if they are in queue longer than 3 minutes. We offer three options; continue to wait for next available agent, transfer to voice mail (or operator) and “call back”.

We also create a schedule for offering the call back option. When your call center closes at 5PM you may not want to offer the call back option after 4PM, so we check the schedule and if the caller is after the specified time in the schedule, we do NOT offer the call back but move to a block that only offers wait or voice mail.

DemoCustomerQueueHoldwithCallBack call flow download link

You must register on the Home page to download script

This contact flow also has the ability to prompt the caller to leave a call back number. This step requires some SSML in the text to speech block as we want to confirm the number the caller entered and give them an opportunity to correct any errors. First we prompt the caller to enter the phone number we should call them back at.

The Set Contact Attribute block is used to assign the callers input to a variable we can call on later in the flow:

In this example we are setting a destination key of “numberinput” and stuffing that variable with the system provided attribute “stored customer input”. It is important to set the destination key as any further use of this block will over write the stored information which you will need to reference later during the playback verification step.

This block reads the callers phone number back to them as an SSML object as illustrated above. Note that we reference the numberinput from the set contact attribute block as $.Attributes.