Amazon Connect Emergency Notification System

Emergency Notification?

There are a number of use cases for an application that can process a list of contacts to be notified by voice message of an impending event.  The event may be an emergency or  a notification of a community activity of interest to the list subscribers.   Even an appointment reminder falls into this category, so it is not necessary to have an actual ’emergency’ to have a requirement to mass notify a subscriber or customer group.

Basic Functional Spec

We had need of a “campaign dialer” like a solution and we found that all the parts we needed were available in AWS and Amazon Connect.   We hammered out a basic functional statement that had the following features:

  • The application requires the admin to authenticate;
  • A facility exists to record a new message to be played by the dialer;
  • The Dialer had to be able to simultaneously dial a large number of list members by contact group code;
  • The called individuals could enter a response code  to enable a transfer or follow up action (press 1 to transfer to an agent, Press 2 to reschedule,  etc.)
  • All contacts would be coded as notified even if they hung up, to eliminate redials.
  • A facility exists to reset the database in preparation of a new campaign.

The resulting solution contained the following modules:

  • Dialer Setup Module: (Authorization to use the notification system; Menu to reset database,  record new outbound voice message and initiate outbound campaign
  • DynamoDB table to contain the subscriber or customer list with associated fields to support the application (subscriber name, zip code, result code, etc.)
  • Lambda functions to read/write subscriber database and record audio to prompt file
  • Administrator notification of campaign dialer status through SNS

The solution is coded with four contact flows that enable group alerts to be sent simultaneously.  The AWS services used include Amazon Connect, DynamoDB, Lambda, Kinesis and optionally SNS. Depending on your contact center soft limits, the dialer will contact a minimum of 50 subscribers per phone call.  The following video details the configuration and the entire application is available in the DrVoIP.com store including the lambda functions and sample DB configurations.

 

 

“Do it yourself” kit for deploying an advanced Amazon Connect Instance!

Dynamic Call Centers?

We can dynamically reconfigure our contact flows, the experience a caller has when calling our contact center.   To do this, we us DNIS (i.e. dialed number information services) essentially using the number the caller dialed, to index a configuration database and return all of the options we need to route an care for the call.   Rather than “cut and paste” contact flows, modified for each queue, why not just use one contact flow that can be reconfigured on the fly?  DNIS is a system attribute in Amazon Connect, it can be passed to the contact flows as such and used to route the caller.   In this solution we provide everything you need to quickly implement a very advanced, flexible and scaleable voice only contact center.

We provide a complete “Do It Yourself” Amazon Connect Contact Center

Core features of this solution include the ability to reconfigure greetings, menus and options based on the DNIS, the number the caller dialed ot reach your call center.   Other features include the option to Directly Dial an Agent, or to have IVR option menus.   Queue hold options include “call back”, leave a voice message for follow up that is queue specific.   Contact flows check staffing, hours of operation and  include after hours call handlers.

What is in the DIY Kit?

In addition to several video tutorials to help the non-engineering professional build out the contact center, we provide all the contact flows ready for you to import!  We provide the lambda functions used to index the configuration database and the dynamodb table descriptions. Each contact flow is heavily commented to enable easy modifications of options and prompts.  Tech Tip videos for installing the voice mail system;  custom agent dashboard and  instructions on how to configure other AWS services that the contact center requires.  Finally, we throw in an hour of technical support to answer your questions!   You will find the package in the DrVoIP.com store!

 

Agent Step-by-Step Guide

Amazon Connect Agent Scripts?

We have been very impressed with Amazon Connect’s growing move into an embedded CRM.  Customer Profiles and Cases are powerful capabilities that are now integrated in the “pay only for what you use” cloud based contact center.  Recently, Amazon has added “step-by-step” Agent guides!  This powerful new functionality brings “one call” customer problem resolution from concept to reality.    It offers a unified experience for contact center agents to access the tools they need to address customer calls effectively.  Each phone call can generate  a screen pop of information resources.   These information or action resources can be tailored  for each queue.  This sample screen shot illustrates what might be presented to an Agent in an Airline who might handle reservations and claims for lost luggage!

Step-by-Step Agent Guides

Using the existing contact flow designer, you can configure “cards” (picture above”) that prompt the agent through how best to handle a customer request.  You can create detailed views, forms and confirmations that kick off back end actions!  No longer is it necessary to open a separate  browser tab to update your CRM, this can all be handled by the back end functions lunched from the guides.

Give us a call to setup a demo or to discuss how this amazing new set of productivity solutions can assist in achieving your contact center vision! – DrVoIP@DrVoIP.

Can you Delete an Amazon Connect Contact Flow?

Out of the Box?

AWS has configured the contact center to work out of the box.  Add a phone number, define at least one agent and using the default contact flows, you can be taking phone calls in minutes.   The contact center features will be minimal, but they work without having to have a engineer do everything.  A reasonably intelligent business process professional should be able to configure a working contact center.  The price you pay for this however, is that you are not able to delete contact flows within the Amazon Connect dashboard.

Why Default Contact Flows?

If you look at the “out of the box” contact flows you will note several contact flows that are Default configurations.   These default contact flows are used unless you specify the use of another contact flow of your own creation,  For example you will see a “Default Outbound” which is used for every outbound phone call made by the contact center.  This  contact flow announces to the called party that the call is being recorded before it transfers the call to an agent.  If you do not want that behavior you need to replace this Default Outbound contact flow with one of your own creations.

You can not delete it!  Why? Basically to keep you from doing something that would crash your call center!  The default contact flows enable rapid deployment of a minimal contact center.   Folks who do not know what they are doing could easily delete something that the system otherwise makes use of, causing a problem that is a direct result of inexperience and ignorance.

Accumulating Contact Flows

After working with the product for a bit, you realize that you can not just delete a contact flow.  You can rename it and reuse it with changes but you can not delete it from within the Amazon Connect dashboard.   At some point, these trashed contact flows accumulate and make navigating your configuration more challenging then most of us want to deal with.  So what is to be done with these unwanted contact flows?

You Can Delete them?

As you gain more experience with the Contact Center you will learn that using the command line tools, you can in fact, delete a contact flow. ( If you do not know what the Cli interface is, or how to make use of it, you most likely should not be trying to delete contact flows)!

Download and install the AWS Command Line Interface (Cli).   This advanced tools can be installed on a Windows, Mac or Linux machine and is used to provide access to advanced configuration options that require some level of software engineering experience.  You will configure your Cli with your account, secret access keys, region and optional profiles. Using this tool you can delete a contact flow, for example.

The following format is used through the Cli to delete a contact flow:

aws connect delete-contact-flow –instance-id YOUR-INSTANCE-ID –contact-flow-id YOUR-CONTACTFLOW-ID

The following video clip show you this in action!

Again, don’t fool with the Cli if you are not comfortable as this is a powerful tool and with it comes great responsibility!

(Call us if you need help! – DrVoiP@DrVoiP.com)

 

WTF is a DNIS Map?

Route by DNIS?

A common call center request is to provide a custom greetings or route a call to a Customer Service Queue (aka CSQ) based on the number the caller dialed.   DNIS or “dialed number information service” is usually the solution to this request.   Typically you create a database table in which the index is the DNIS.  In this way we can pull back all the information we need to greet and route the caller.  The solution consists of mapping a DNIS number to a contact flow that has a lambda function that looks up the greeting and routing details in the database referenced the function.DNIS MAP

Assign the incoming DNIS number, actually all incoming numbers should hit this contact flow, and we do the usual setup.  Turn on logging which is very useful during testing and you can turn it off later to save a few pennies.  Set up recording, preferred voice and then invoke the lambda function that will retrieve the desired greeting and routing information.  It is a good practice to set the contact attributes so that you can easily reference the returned variables in subsequent contact flows and to make them available for the CTR records and potential screen pops.

Contact Attributes

Clicking on the “Set Contact Attributes”  call flow step in this example we get the following:

Contact Attributes You can see that the lambda function is pulling back two variables from the associated database tables: queueId and flowId.   in the above contact flow, after we set the contact values, obtained from an “External” database  we”transfer to flow”.   The external flowId points to the flow we want this DNIS to be used for follow on call handling.

The flow will eventually transfer to a queue, which we obtained from the same “External” database. Like the flowId, the queueId is now a “user defined” value. No reason you could skip the “set contact attributes” step and just use the $,External.flowId but by the assignment and the use of $.Attributes.flowId we associate the value with the CTR and make it more easily available for screen pops etc.

(see the blog on should I route to a queue or route to a flow?)

Additionally we could also pull back any other information we might want that would change based on the number the caller dialed. For example a customer greeting.   Did the call the Kin-sue Knife help line or the Hotel reservation line?   Maybe this is an Executive suite application in which the operator has to answer “thank you for calling <yourcompanyname>.

Advanced DNIS Routing

It may be that we want to route the caller to an IVR Menu of options based on the DNIS. You can easily handle this by the flow you route the caller to, but do you really want to do the newbie “copy and save as” to repeat the same contact flow for each DNIS?   There is now reason why the database can point to a generic IVR flow.  The generic IVR menu would have menu options that are variables that might be named “optionOne”, “optionTwo” etc.   These options would be defined in the database and in this way, each DNIS could point to the same IVR based contact flow but the menu prompt and all the options would be obtained via the lambda function from the referenced database.

This solution along with the Lambda function and Video tutorial is also available in our online store!

As always we would be glad to assist with this solution just click or call! – DrVoIP@DrVoIP.com

 

 

 

 

Amazon Connect adds a CRM package?

Is Amazon building a CRM Competitor?

Amazon Connect continues to innovate and is adding new features at an accelerated rate.   They do not seem to be leaving any flesh on the bones for other third party providers and seem to be taking aim at the CRM market.  There are two new features that address the most common request of call center supervisors: can we pop a screen with info about the caller on call presentation to an agent?   Historically, this was done by integrating the CRM or Practice Management system with the call center though a complex web of connectors, API’s, Internet Gateways and the other RESTFUL tools that populate the wonderful world of inter-networking.  (See the DrVoIP article: What do you mean Integrate?)

Here is a summary of these new features:

CUSTOMER PROFILES

This feature enables you to assign a profile to a caller. A profile is a form that you create that contains the usual contact data.   When that caller enters the system  again, we can greet them by name and also “pop” the profile to the agent on call presentation.  The profile is filled with data extracted  from two locations:  First, your caller history which is basically the CTR database of all the callers that have contacted you through the call center.  Secondly, it can draw data from your CRM or Practice Management database.   AWS supports a growing list of these databases which today include Salesforce, ServiceNow, Zendesk and S3.    You can also output data from a CRM or Practice management database into an S3  bucket in the call center and this can be tapped by the customer profile feature as well.

CASES

This feature enables you to open a “case ticket” during an active phone call that is associated with an above “customer profile”.   You can see existing open tickets, create new tickets and you have the ability to “assign” the ticket as a task to another team member along with due dates and follow up actions.
These features are “permission” based and assigned to your agents through their security profile.  The use case for these features should be obvious.   AWS is basically developing its own CRM and Practice Management solution and this is just the first release of what will undoubtedly become a very powerful solution in the management of you practice.  We can’t wait for the WFM option!
We are happy to set this up for you,  so please click or call! – DrVoIP

Deploy an Amazon Connect Contact Center for $195?

Pay Only for what you use

We have been working with Amazon Connect since the product was introduced back in 2017.   “Pay only for what you use” is a very attractive economic principle!  We note that a lot of folks login into AWS and spin up a contact center and then though they get it working, it is featureless and they need help.   We have built  “proof of concepts” contact centers over the years many of which have matured into full blown, fully feature contact centers complete with CRM integrations and custom agent dashboards.  Sometimes, in the sale process, it is just easier for everyone to just take a seat in the call center and learn by experience.   The technical team and the business teams all get to use the product and gain useful insight into how Amazon Connect can be a winning customer engagement platform for your business.

Historically, we had offered access to a demo system with your own incoming phone number and call routing solution.  Just give us a few basics and we setup your incoming greeting and add your agents.  Your agents log in and you are off to the races.   This helped the business folks, but not the technical folks.  We needed another solution.

The Amazon Connect Deployment kit!

Enter our complete Amazon Connect inbound voice call center!  For about the cost of an hour of technical support you can build out a fully usable call center.  We provide the contact flows to support inbound call routing direct to a target customer service queue (CSQ).  Optionally, you can route incoming calls to an Integrated Voice Response (IVR) system that provides menu options for caller selection.    The options available to callers waiting for the “next available representative” include receiving a call back when an agent becomes available, leave a voice message or continue to hold.  There is an “after hours” call handling solution along with an error handler.  All the basics.

Video Tutorial for the non-technical Business Manager

The kit includes all the contact flows ready for download and importing into your AWS account and instance.  Along with this kit, we include a video tutorial that will not only coach you along, but provide the background you need to understand the configuration options.   A non-technical business professional should be able to have this solution fully operational and working in about an hour.

 

So, invest $195 and stop wasting time.  Visit the Store!  You will learn what works and what you need to achieve your Contact Center Vision.

Email DrVoiP@DrVoIP.com

 

Adding Video to your Amazon Connect Contact Center

Why Video?

If a picture is worth a thousand words then a video is an encyclopedia of information!   I remember a team building exercise in communications in which all the team mates sat with their back to the grease board at the front of the room.  Each team mate  had a blank sheet of paper and a pen on their desktop.   Another team member drew a simple share on the grease board and then described it verbally to the rest of the team.  Instructions included how to orient the paper and a verbal map of how to replicate the grease board drawing was narrated.   It was amazing how many different versions of the illustration were created by the team with verbal descriptions from the team artist!  No two alike!

So now put yourself in a technical support contact center listening to your caller describing how they have the yellow cable plugged into the thing next to the other thing?   How more effective would it be if the help desk technician could see the wifi router the caller was trying to install.    One call resolution time would be reduced,  average holding time would be reduced and SLA’s would improve as agents spend less time listening to caller descriptions and more time seeing issues enabling them to handle more calls and solve more problems more quickly.

Mobile Video Chat!

Enabling a link on the company website that opens a chat session with a customer service representative in your call center has always been possible with Amazon Connect.   Now with the aid of AWS Chime, you can escalate a keyboard chat to a video call complete with audio!  You can also push the chat link out to IOS and Android devices, making it possible for mobile video solutions.    Insurance companies could see real time accident reports.    Contractors could quote jobs more quickly, reducing time by eliminating site visits in favor of  video ‘meet ups”.   Telemedicine is also a rich vertical for video in the call center.

Video for Amazon Connect Contact Centers

Integrating video into your Amazon Connect contact center is relatively straight forward.   The solution makes use of a custom CCP, Chime SDK and a bit of serverless code on the back end.    Agents are alerted to an incoming request through the Amazon Connect chat facility using LEX to orchestrate the dialog and gather preliminary data from the caller.  Once the chat is connected between the caller and the agent, both have buttons to escalate to video.

REQUEST  A DEMO

If you would like a demo of this functionality, send us a request and we will send you a link. DrVoIP@DrVoIP.com

 

 

 

 

 

 

 

Powerful Amazon Connect Call Back from Queue Configuration Strategies!

The Amazon Connect Call Back from Queue Dilemma!

Assume you have a call center that follows the sun from coast to coast!  You team starts in NY at 7AM EST and ends in California at 7PM PST.    You offer call back options to callers waiting to speak with an agent.   A caller enters the queue at about 6PM PST and leaves a request of a call back when an agent becomes available.   The call center closes at 7PM PST but the call was not yet handled by your contact center.  The next morning, at 7AM,  Agents start the new day and the first call presented to an Agent is from the call back queue, the call left over from last night.  The outbound call is dialed, and your Agent is now speaking to a very angry Customer in San Francisco where the time is no 4AM PST!

The Call Back Queue Problem

Once a caller is sent to the call back queue, there is nothing you can do about this!   Let’s look at some options that we might apply to better control this call back activity:

Call Back From Queue Configuration Options

First, let’s create a switch to turn off call back requests during times outside a 10AM-4PM window.    This is a simple “check hours of operation” step in your queue hold flow.  Check the current time, and if it is outside the window, your contact flow will not offer the  call back option to callers.    This will keep callers from being left in the call back queue over night at the end of the working day.

Optionally, we can still offer the call back, but use the time window to determine if we should route the caller to the call back queue.  We can still offer the call back, but if check the time and find it is outside of the window, we do NOT want to send the caller to the call back queue.  Remember once the caller is in the call back queue, we lose control of the call back!   Using Lambda and DynamoDB, we can write the callers request to a call back list for later processing,  rather than putting them in the call back queue.    We can then develop a watch dog timer, that scans the call back list and when the call back window reopens, we can stuff the caller request into the call back queue.

These options will offer a greater degree of control over the call back process, but what about that San Francisco caller?  How do we make sure we are not calling folks back in the wee hours of the morning?   We need to add additional logic to our function and additional attributes to our database items.   We can look at the area code of the caller requesting the call back, then compare the area code to a time zone map.

 

How can we improve these configuration options?

Clearly you can ask the caller what time they would like to be called back.  That would work and can be an additional attribute in your database items.  You would still use the above configuration options, but also take note of the time range the caller wants to be called back.

Check for existing call back requests!

Your call back configuration should also check to see if this caller has already made a request to be called back?  If you run a call center,  you know folks call in and request a call back, hang up, wait a few minutes and then call right back in and impatiently request another call back as if that might speed up the process.   We need to check our database of call backs and make sure this caller is not already subscribed to a call back request.

Check the caller’s phone number?

After requesting a call back, your configuration should note “I see you are calling from 1-844-4DrVoIP, is that the number you want us to call you back at”?    We can then confirm that number, or ask them to answer another number.

How to get to an Extension number?

The standard call back strategy is to dial the number and hope the target caller is reached.  Unfortunately, more times than not, a receptionist or voice mail IVR answers and wants to know how to complete your call.   Your configuration may need to not only ask for the number to call back on, but an extension number of name of an individual to ask for when the call back is dialed and answered by other than the person who requested the call back!

These are simple but powerful ways of taking the Amazon Connect call back engine and adding features and functionality to achieve a level of control over the call back function.  They distinguish a call center configured with little though to the call back strategy form a call center configured to maximize customer interaction success!

If you would like some help configuring these options, give us a call at 844-4DrVoIP or email and we would be eager to help you! – DrVoIP@DrVoIP.com

 

 

Building an “Appointment Reminder and Phone Tree” using Amazon Connect!

The Phone Tree Concept

Phone Tree’s are have a wide range of use cases from emergency notification alerts, to social function meeting announcements and even appointment reminders!   The generic functionality of this “Phone Tree” application, however, is similar in each use case.  Generally, we want to place an outbound phone call to numbers that are in a database, play a recorded announcement, prompt and collect digits, update the contact list and even allow the caller to be transferred to a live agent, BOT or message center.

Example Application: meeting alert and dinner reservation!

In this example we want to contact all the members of the club and inform that that a dinner meeting is planned for a specific data and time.   We want to know how many members will attend both the dinner and the meeting.   The recorded announcement might be something like ‘The White Hat Hacker club will meet this Friday evening at the clubhouse at 7PM.  Dinner will be served at 6PM and a reservation is required.  Please press 1 if you are planning to attend the meeting and the dinner, press 2 if you are attending the meeting only, or press 3 to indicate you will not be in attendance at this meeting”.     We also want to report the results of this survey to the meeting management via an email when all contacts have been notified.

This functionality could easily become an appointment reminder for a medical clinic.  The clinic wants to alert all patients that have an appointment for tomorrow to be reminded of that appointment.  This would use the same Phone Tree application and work the same, but the message might be a bit different: “This is Doctor VoIP’s office reminding you that you have an appointment tomorrow. Please press 1 to confirm the appointment or Press 2 to speak with a scheduling co-ordinator”.

Basic Configuration elements:

To get his application working we are using two major contact flows, a dynamoDB table containing the numbers to be dialed and three lambda functions.  The lambda functions include the outbound dialer API, the reset database and the update database functions.   The contact flows are used to validate the credentials of the dialer administrator, reset the database for fresh calls and to initialize the dialer function.  The second contact flow is the contact flow that plays the outbound announcement, prompts and collects digits and then updates the database.

  • DynamoDB Table – Minimally the table contains the number to be dialed and the status code.  The dialer looks through the table list for entries that have a status code of zero.   The table is updated with a new code based on the digits collected from the caller, or it marks the table with a status code of 3 to indicate the caller was contacted but did not enter any digits.
  • Lambda dialer function ( DrVoIP-InitiateOutboundCampaign)  (i.e.  – reads the database and once the caller is dialed, transfers the caller to the contact flow that plays the announcement and collects the responses.
  • Update database function – each phone call requires the database status code to be updated,
  • Reset the database to zero  function – Sometimes the list may be used more than once.  For this reason we want to clear the current status code before initializing the dialer. Clearing the database resets all entries to a status code of zero.
  • Contact flow Authorize Dialer – this is a simple contact flow that first asks the caller to input their ID number and PIN.  This is done to validate the caller is authorized to initialize the dialer.  Once validated, the application asks the caller to press 1 to initialize the database to zero or press 2 to initialize the dialer.   Pressing 1 launches the reset database function to mark all entries with a zero status code.  Press initializes the dialer and enables all entries with a status code of Zero to be contacted.
  • Contact flow Announcement – this simple contact flow plays the announcement to the called party and prompts them to enter a digits in response.   The digit is used by the update database function to set the status code equal to the digit entered by the caller.
  • SNS – Simple Notification System is used to send a summary of the dialer results to anyone subscribed to the SNS notification.  In this application we are using SNS to send an email to the meeting managers with a count of dinner reservations!

Improvements?

The application described above, works well and gets the job done!  Sweet and simple, but what can we do to improve this application?   Currently the outgoing announcement is hard coded in a ‘Play Prompt’ contact flow step.   We have the option of enabling this to be a contact attribute that reads in a new prompt each time!  Optionally, we could implement a “record to file” solution enabling someone to call in to the authorization contact flow and record a new announcement!

The dialer database is also manually maintained.  It would be useful to enable either the table to be uploaded or to have a web administration interface so that folks do not have to have access to the AWS Management console to make use of the application.   If you are using a CRM package, it might be better to have linkage to an external database.

 

Give us a call and we can implement this application or talk about building you a modified version!  – DrVoIP