Amazon Connect – Is today a Holiday?
September 30th, 2019

Is Today A Holiday?

Having deployed hundreds of CISCO UCCX and ShoreTel ECC and other Contact Centers, checking to see if today is a holiday seemed to be the "minimum daily adult requirement" for contact center management.  In fact one of the most popular scripts on the net for CISCO UCCX was named "HolidayCheck"!    In fact we used this script to provide an XML tutorial  on the DrVoIP YouTube channel.  Checking a list of holidays to deal with periodic contact center closings is usually a standard feature in most call center applications and telephone systems. Amazon Connect, however, does not provide a "holiday check" out of the box!   If you want one, like many other features in Amazon Connect you are going to have to create it by writing your own function.  The good news is that the wealth of services in AWS makes this a very simple task using nothing more than a Lambda function!

Contact Flow - Invoke Lambda

An Amazon Connect contact flow would do the normal "check hours" to figure out if the caller was hitting the system during "on hours" or "off hours".  If the call arrived during normal business hours, then the next step would be to check and see if today was a holiday.    The contact flow adds a simple "invokeLambda" function to make this determination. To simplify the lambda function, we include the list of holiday's as an object array within the environmental variables. We determined to create a simple lambda holiday check function using the fewest lines of Node.js code as possible!  In fact there is no need to invoke the function by passing in a date.  You simply invoke lambda and it uses the javascript date() function to parse through your list of holidays comparing todays date with the individual list items.   What we want returned is a simple "true" if today is in fact a "holiday"; or a "false" if today is not a holiday!  Very simple!   The branch step in your contact flow will be based on this simple boolean value returned from lambda.

Improving the function

Now that we know if "today is a holiday" we have the basics in place.   Improving the function has endless possibilities.  For example: The basic function assumes a full day closure.  What about half days. It would also be desirable to have an ability to play a custom audio prompt based on the specific holiday closure. Clearly you can make the administrative interface much more acceptable to a call center supervisor while eliminating the need to let non-development professionals access the AWS Console.  In the basic function, updating the holiday schedule would require folks be able to access the lambda functions directly to update the environmental variables.    Creating an S3 bucket as a static website host, with a simple HTML interface to enable system administrators to update the holiday list from year to year would be an obvious improvement.   This option would open the door to allowing supervisors to close a queue for a team meeting.

Summary

Amazon Connect is an element of a very large ecosystem in which the available services enable you to create a contact center that can meet your wildest imagination!   If you can "see it"  you can make it happen!  Optionally, you can call on DrVoIP and we will make it happen for you! The Lambda Function is available here. The function is written in Node.js and is built out using the Serverless framework which you will need to make use of, to deploy the function in your own Amazon Portal: First you have to configure an AWS CLI profile in order to deploy here is steps to configure it: step 1: Open terminal step 2: Execute command "aws configure --profile <profileName>" it will ask for input key id, access key, and region Next here is steps to deploy service: step 1: Open terminal step 2: Get to project root directory step 3: Execute command "serverless deploy --aws-profile <profileName>"