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

 

 

 

 

Dextr has a new Agent Performance Widget!

The Dextr agent dashboard for Amazon Connect has always had a real time metric display on its home screen.  The screen provides real time updates on queue related metrics.  An agent typically sees the performance of the team they are a member of while a supervisor can have a global view of all queue metrics.   If you are a member of multiple customer service queues, you can select which ones to display and monitor.  Dextr also provide a “live look” feature that showed calls in queue by caller ID and queue.

 

Dextr has released a new “widget” for the dashboard that now display Agent performance metrics.   This widget displays all of the metrics necessary for a supervisor to establish agent performance governance.  From individual call counts handled, through average talk times, handling times and a full range of statistics by agent.   All available on the same dashboard screen as the queue metrics providing a single pane of glass solution for even the most demanding contact center supervisor.

 

Dextr can be added to your existing Amazon Connect Contact Center instance in about 15 minutes.   If you do not have an Amazon Connect instance we can build you a state of the art inbound contact center complete with optional direct inward dialing, queue based voice mail, text messaging, email routing and chat.  We deploy globally and we deploy virtually, so do not hesitate to call us for Amazon Connect design, deployment and ongoing support.  Dextr is a subscription service with a cost of $1 a per day per agent and is available in all AWS regions that support Amazon Connect.  Dextr is setup on a “simultaneous agent” access and is not a named license!   – DrVoIP@Dextr.cloud

Give Amazon Connect Phone system features with “Dial by Name” functionality

Press 1 for…. Why?

It is the 21st Century and there are two technologies that are still in use: Fax and DTMF Call Trees!   Why, I am not sure as there are so many more effective technologies available to replace them.  Why we still have caller “self navigation” by “Press 1 for this and Press 2 for that” is one of the great mysteries of life in the 21st Century  (the other is why are folks still sending faxes)?   I get that Speech Recognition used to be so very expensive that it could not be adopted by but the largest enterprise organizations.  Today however, thanks to services like LEX in the AWS ecosystem, there is no longer any economic deterrent to the rapid adaptation of Speech recognition to the basic IVR based call tree.

Phone System or Call Router?

Amazon Connect is not a phone system in the way that Ring Central or 8X8 is a phone system.  Amazon Connect is a call routing solution with telephony functionality that enables call answering, screening, routing and queuing services to be applied using “rules” and “contact flows”.   You can configure a variety of AWS services to significantly enhance the basic call routing engine to achieve superior functionality within a reliable, resilient and elastic cloud based architecture.  Now instead of saying “Press 1 for this and Press 2 for that” we can say “Hello, tell me how I can route your call”?

Amazon Connect Dial By Name Contact Flow

One of our most popular configurations is a “Dial by Name” functionality that we enable on our LEX based, Speech fired automated attendant.   “Thank you for calling DrVoIP, my name is LEX and I can route your call if you speak the name of a function like sales or support, or say dial by name”.    Now that is a powerful caller experience and significantly functional while providing a memorialized  customer experience that differentiates your enterprise from those companies stuck in the 1980’s with DTMF IVR automated attendants.

Building LEX solutions into your Amazon Connect instance is not that complex though it will require a considerable amount of trial and refinement.  If you want to do a dial by name IVR you will also need to be a competent software engineer and have an understanding of both lambda functions and dynamoDB data structures.  (Better yet, contact DrVoIP and we will do it for you)! LEX will prompt your callers to provide spoken input like someones last name, but you will need a lambda function to take that input and use it to index a database structure.  The database will contain the target information you will transfer your caller to.

Interestingly enough,  you can transfer a call to a phone number or the ARN of a Queue, Contact Flow and Prompt.  This makes it very possible to route calls to individual agents within the contact center or to a service in your call center.  The processes requires:

DynamoDB – Table to hold endpoint contact data

Lambda Function – Interaction between Contact Center and LEX

LEX – Speech recogntion BOT to ask callers who or what they want

The new Contact Flow will greet the caller and prompt them to “speak” the name or function they are calling for.    The Lambda function will take the Intent from LEX and pass it to DynamoDB which will return the endPointID that the caller should be transferred.    Not only does this functionality increase the personalization of the customer experience, it significantly reduces the complexity of constructing contact flows by using a dynamic configuration end point ID.

The DrVoIP.com Youtube Channel has a great deal of material on these subjects including a basic configuration and advanced configuration tutorial updated for 2020.   This site also has training materials.

Contact DrVoIP@DrVoIP.com

 

 

 

Amazon Connect – A Voice Mail Solution!

What no Voice Mail?

One of the surprises you get when working with Amazon Connect is the fact that, out of the box, there is no voice messaging capability.   However, given the rich library of services available in the AWS ecosystem, you can most certainly configure a solution that will get the job done!    Amazon Connect has built in recording capabilities and both logs and recordings are saved in an S3 bucket, so it would seem that the basic ingredients are there for configuring a voice messaging function.   Lets take a look at several different ways of implementing this functionality without breaking the bank in professional software development services!

Option 1 – High Voice Message Feature Content with Transcription, Email and SMS delivery options

This Voice Mail service is built on several AWS services but is rich in features and functionality:

  • Each Agent will have their own Extension number
    • This enables folks to leave a voice message for a particular Agent;
  • Voice Messages can be Transcribed and Encrypted;
  • Voice messages can be emailed or sent as an SMS (Text) message;
  • We create a Web Interface to administer voice mail options (i.e. set agent extension number, delivery options

There is an additional AWS cost as the solution will make use of Lambda Functions, DynamoDB, SES, SNS, Cognito and CloudFormation AWS Service options.   Amazon estimates that this will have a cost of approximately .03 cents per voice message.

We offer several configuration Options:

  1. A separate phone number that is used for this function exclusively.   Caller dials the VM number and is asked to enter the extension number of the Agent (we could also create a spell by name option).  The system will then attempt to send the call to the Agent and failing to connect with the Agent, the system will take a voice message for that agent and deliver it based on the options set by the administrator.  Delivery options are email or SMS.  The message can be sent as a WAV file or it can be transcribed to text.
  2. Continue to use your normal call flow and set one agent (or create a fake agent) to accept messages for the Queue they are a part of.  During the period in which the caller is holding in queue for the next available agent, as they might now do, they are offered the usual options, expect we replace the option to leave a voice message that you currently now transfer out of the system, to the agent nominated for queue mail.  Clearly the email address could also be an email address of a distribution group so the message goes to many others.
  3. LEX speech recognition “dial by name”.  The problem with extension numbers, is that callers will need to know them or you will  have to create a directory system.   Enabling “thanks for calling I can route your call in you speak the name of a team member or a function like sales” is way more impressive and provides a much better customer experience.

We offer a flat fee deployment option of $395  ($595 with dial by name option) to existing clients.    We will need AWS Management User Access with a User that has System Administration permissions as we have to access all of the AWS service above to configure the solution.

Option 2 Cheap and Quick: The Basic Recipe

We configure a Voice Messaging solution for call center queues very easily using the following formula:

1 – First Create a Queue with a creative name like Voice Messages!

2 – Second Create a Customer Whisper Function to act as the front end greeting for your voice mail box.

The Whisper function is going to provide your mailbox greeting and even the Beep!  This Whisper, set to play to the customer (rather than the agent) is played to the caller as they are connected to the Agent user.

3 – Third Create a User with an appropriate name like VoiceMail-Sales.

We want the user to be assigned a routing profile that contains only the VoiceMail Queue!  Also note that the User MUST be set to Auto-answer as this is the key to making this work the way we want it to work!

4 – Lastly, create a contact flow to integrate the above into a simple, but workable voice messaging system.

 

The contact flow can be very simple or you can make it a more complex by adding options like return to main menu!  The goal  however is to offer the option to leave a voice message or route a caller to voice mail if the caller arrives after hours.  Nothing to sophisticated here.   We set the Recording behavior to record both the caller and the agent.  We then set the Whisper flow, the Queue and then transfer the caller to the queue.  The queue will contain only one User in this example, but if you anticipate a lot of traffic, you could actually create multiple users with the same basic configuration essentially creating multiple voice mail boxes.   You can also create different users and voice message queues to accommodate various different queues.

The caller will be transferred to the VoiceMessage Queue which will then select the only User in that Queue, who is logged on and available.  This user was setup was setup with “auto-answer” so the behavior is to answer the call, play the Whisper to the caller as they connect to the Agent.  The Whisper contains the prompt “Sorry we are not here to answer your call but at the Beep please leave your voice message and we will follow up first thing next business day.  BEEP”.

The caller will then speak to the “agent” and the conversation will be recorded and saved to your designated S3 bucket!

Retrieving Voice Messages

The basic tools available to you  for retrieving your voice messages require a minimum permission of Call CenterQuality Analyst or Manager, as you may not want to make users Administrators!  Just log into the Amazon Connect dashboard and head over to Metrics and Quality and then select Contact Search.  Here you can set up a number of filters. For example we can search for the VoiceMail Agent configured above and also set the date range of interest, typically Yesterday!   This will bring up all the contacts handled by that agent and you can then hit the playback button under the Recording column.

Variations on a Theme

One of the user interfaces that makes this strategy a bit more useable is to use the Dextr.Cloud Dashboard.  The Dextr dashboard has an Activity screen that enables a Supervisor or Agent with the proper permission, to sort by Agent.  Then the playback button is right in the Dextr dashboard and there is no need to sign into the Amazon Connect dashboard to play back recordings.

Summary

We are struggling to find things we can’t do in an Amazon Connect contact center instance!   The rich library of AWS services makes it possible to solve any call center goal you might development you might define as a requirement. If you can imagine it you can make it happen!  Then again, you can always call on us and we can do it for you! – DrVoIP@DrVoIP.com

 

 

 

Amazon Connect Call Center Planning

Basic Amazon Connect Configuration  Overview

Creating an Amazon Connect cloud based call center is relatively easy for a non-technical business process manager to implement.  You do not have to be a software engineer to get a basic inbound call center operational in a remarkably short time, often less than an hour.   Setting up a basic inbound call center however, is generally not going to meet your over all call center functional requirements and you will need some software engineering assistance from not only experience call center professionals, but from engineers who are certified and experienced in all Amazon Web Services!  A Call Center will generally require some integration with CRM solutions, or databases that can provide custom routing based on customer historical interactions.     You may also want to replace old world phone trees or Interactive Voice Response (IVR) systems with modern Chat Bot options!   Why “press 1 for this, or press 2 for that” when the natural language speech processing is available.

What Information do we need to setup our Call Center?

Generally a basic startup inbound call center deployment starts with a Call Flow Plan.   To help you better understand the concept of “Call flow”, lets walk through a basic Amazon Connect configuration:

  1. First you will need to create an Amazon Web Service Account.  This is very simple and though there is a free tier, you will need to put in a valid credit card to open the account.
  2. Once you create the account as the root owner, you will then need to go to IAM and create a user account that has permissions to create an Amazon Connect instance and also to access the various other services your call center may need.
  3. This new user should then login and find Amazon Connect and launch a new instance in the Region you want to make use of (i.e. US-East)
  4. Once the Instance is created you will do the following in this order:
  • Claim a Phone Number – You claim a number through Amazon and it can be either toll free, or a direct dial local number of your choice
  • Establish your Business Hours of Operation – When are you open and when are you closed?  Global or by Customer Service Queues
  • Create Customer Service Queues (CSQ) – Technical Support, Customer Service and Sales are typical examples
  • Create Prompts – What does a caller hear at each step through the call flow?  You can do these in TEXT format for conversion to speech and then later, when firm, record with human voice
  • Create Contact flows (Call Flows) – Answer Call, Play Prompt 1, Get caller input, route to caller choice, queue if no agent available. Here is a short video we created on the importance of good call flows.
  • Create Routing Profiles – Queues are placed in these profiles. Users are put in Queues together they determine who handles what callers
  • Create Users and assign them to Routing Profiles

This information will be the basic configuration required to build a very basic Inbound call center.  With this information complete, Agents will be able to log into the customer service queue they are assigned to handle.   You should be able to call your claimed number and be routed through your flow to an available agent.  If not agent is available, callers will queue and listen to the care prompts you have provided.   All this is captured in both real time metrics and historical reporting.

Moving from a Basic to an Intermediate Call Center

You basic call  center will have many additional requirements that will generally require a more experienced design and implementation engineer to become involved!  So lets revisit the items under step 4 above and look at the options that might exist beyond that basic configuration:

Claim a Phone number – Generally you will call forward your existing number to this new call center number.  Optionally, you can “port” or move your current number directly to Amazon.   More importantly, you will generally have more than one phone number.   Phone numbers generally terminate in either an IVR or directly into a CSQ.   Ideally if you can assign a phone number directly to a CSQ you can avoid prompting callers to select from a menu and this is always a better solution.   Why “Press 1” for Spanish, if you could publish a number that is always speaking Spanish.   If the Caller is going to be prompted by an IVR, the question is what does that menu of options include?  Someone has to write this out so that the various outputs can be mapped to required call flows.  The next question is should this be a “Press X” type of IVR or would a natural language speech interface be more appropriate?  What would you prefer to have your callers hear? “Please press 1 for sales and 2 for service” or “Thank you for calling, how can I direct your call”?   Amazon has a service named LEX (you may have heard of his sister Alexa) that can be added to replace or augment the old “Press” option menu!

Business Hours – Seems straight forward, you list out your work days and your closed days.   The real question is do all CSQ’s fall under the same time calendar? Or is Technical Support open on days and times when the Sales line might be closed?  If so you will need to create a business hours time/calendar for each CSQ in your deployment.   You might also want to create a business hours schedule for when we stop offering callers the call back option.  For example, we are open from 9-5 Monday through Friday.  However, at 4:30 we do not want customers holding for an Agent to be offered the option of a call back.  This would require a dedicated business hour schedule for that function.

Create CSQ’s – Clearly each queue has to have a unique personality, schedule and agent pool.  The call flow for each queue may be different.  Some options offered callers to Technical support may not be offered to callers to the Sales line!  Just create a list of queue names to become part of your call center call flow.

Create Prompts – Generally we encourage the creation of prompts to be among the first items on your “to do list”.  Thinking through the message your callers hear as they self navigate your call center can help you plan  your call flows more effectively.    Amazon offers a service that is build into Amazon Connect named Polly!  Polly is a “text to speech” engine and a great tool for developing prompts.  We prefer to use this solution until we debug your call center call flow and everyone agrees the prompts are exactly as required. Then, even though Polly has many excellent voices to choose from, you can then have these scripts professionally recorded.   We can help you with that as well!

Contact Flows – This is the basic blue print for how your call center works!   It is a series of building blocks that define the customer experience from the first incoming ring, until the last interaction and call termination.   Each Phone number that enters the call center needs to have a diagramed “call flow” that shows the various steps the caller is to navigate.  It might look something like:

  • Call is received after business hours and hears “You have reached us outside of our normal business hour M-F 5-9.  Please hold and we will transfer you to the message center”.
  • Caller is answered with prompt “thank you for calling, you call will be recorded for service improvement”;
  • Caller is routed to IVR Tree: “Please Press 1 for Sales and 2 for Service”
  • Caller that Presses 1:  Capture the Caller ID and use that to look up the caller in Salesforce.Com and then transfer the caller to the next Available Agent in the Sales CSQ along with the SalesForce screen pop.
  • Caller that Presses 2; Is transferred to another IVR menu: “Please Press 1 for new order, or press 2 to check the status of an existing order”.   Caller that Press 1 is sent to SalesNewOrders CSQ.  Caller who presses 2 is transferred to another IVR: Press 1 if you know your order number”

Clearly this would be better drawn as a “organizational chart” but we think you get the  basic requirements of a call flow.  When working in Amazon Connect your call flows will be graphically constructed and look something like this:

 

Create Routing  Profiles – Call profiles are used to match callers to a queue or a list of queues.   So a phone number might point to a contact flow that offers the caller a choice between Sales and Service.   Choosing Sales, for example will route the caller to a profile that contains a list of Sales Queues and priorities.  You might say route the caller to Sales and if they are not answered within 60 seconds route them to customer service priority queue for handling.  Call profiles enable the list of queues, the order of queues and the priority of queues for this reason.

Major Functional Feature Enhancements

It is rare to find a call center that does not have a requirement to integrate with a CRM package like Salesforce.com,  SugarCRM or EPIC.    Often enterprises will have a custom database on their internal network that contains customer specific information that can be used to assist in routing callers, or providing additional screen pops to agents.   Chat Bots are also becoming important in off loading typical requests to an automation process that speaks natural language!   Did you know that Amazon Web Services has a range of services that include transcription, language translation and language comprehend?  You can run your voice recordings through a transcribe utility that you can then “key word search” to help improve agent productivity.  Or run that same recording through a language translation service that can take input in one language and create out put in another language.  How about TEXT messaging and Email Options?    Not all customers want to call, some may want to send an email or text message to the next available agent.  The functionality of your call center is shaped only by your imagination!  If you can envision it, Amazon Connect can implement it!

Other Useful DrVoIP Amazon Connect Subject Matter Posts and FAQ page!

We have yet to find a Call Center requirement we could not implement with Amazon Connect and the every growing library of Amazon Web Service solutions!  If you can imagine it, we can implement it.   Let’s put our heads together and construct a call center that meets and exceeds your call center requirements!   Contact DrVoIP@DrVoIP.com, or Call 844-4-DrVoIP – and ask for the Doctor!