Contact Center Outbound Call Tracker

By Sean Woodward on 5/12/2021 in Projects

There came a time when the contact center was asked to make outbound calls to a number of customers to follow-up for specific reasons. The desire was to have as much human-to-human contact as possible. The contact center may receive lists on an ad-hoc basis, but they did need a way to split the work up without causing duplication of work, and eliminating as much manual effor as possible. Their first attempt at doing this was with an excel sheet in Teams which does have the capability of real-time collaborative editting, but it still lead to problems.

I developed this application "from soup to nuts" as a full stack developer.

Working with the business we came up with a standard format of an input excel sheet.

I made the web app such that they could upload a spreadsheet that was in that format and it would insert requirement records based on that project. They could choose to have multiple spreadsheets per project, or just one spreadsheet per project if they like. They could also add as many spreadsheets at any time that they like. Once a spreadsheet was uploaded they then had the page load the list of requirements. They have row selectors were they could choose to assign those items to specific individuals, or they could just share the project link with the people that they wanted to jump on and start making calls, and when they clicked a row, that person would automatically lock that record.

This application was designed using .NET Framework. The most unique thing about this application is that we obtained true real-time row-locking and reporing using SignalR Hubs on the server, and the appropriate SignalR javascript libraries as well as React on the client side. This application is hosted in a Load Balanced environment and so a Backplane for SignalR was necessary. My company does not have Redis at this time so we selected a SQL Server Backplane for SignalR. That way regardless of which server they were connected to, when the application told the client to refresh the data it would happen for all clients on all servers. Because the data was rendered using React it intelligently only re-rendered portions that were necessary. Plus if someone had a check box marked on a row during the refresh, that check mark would stay checked during that state update.

The application has made it's way in to production on March 17th, 2021, the first use case of an outbound call campaign began on May 3rd, 2021 and May 6th, 2021 to contact 4,280 customers. Each day they only spent 4 hours untilizing 38 people to contact these customers. The business said that their old process of distributing these lists out in excel would take weeks for agents to complete since there was no real-time tracking or follow though. So the same amount of work that used to take weeks to do, now only takes 4 hours to do.