Back to Homepage

Project Manager:

Group Members:

Overview:

Waiting on the phone for customer service is a slow, tedious, and antiquated process. The worst part is not the waiting, but rather not knowing when your call is going to be picked up. We are proposing a system to make telephone customer service a more pleasant, transparent, and effective process.

From the customer's point of view, our system would work like this:

Using the data we collect, we can also present the client (e.g. Dell) with analytics regarding their customer service. They could view important information such as the distribution of wait times per hour throughout the week, the average wait time/rating of a given call center, the average wait time/rating of a given representative, etc...

Our system provides the customer with a more transparent, interactive, experience, making them more satisfied with their service and the client with more satisfied customers and important information about their service quality.

Functionality

User Scenarios:

Customer on Hold

User calls a company's help line and is promptly put on hold. The customer is in a rush and wants to know how quickly they will be serviced, so they go on to our website. On the welcome page they enter their number and an information page comes up. The page displays the company they are on hold with, their current number in the queue, expected wait time, and other information about the company. The customer will see their expected wait time, decide to stay on the line.

Customer who wants to avoid hold

Customer needs to call a company's help line but wants to avoid as much time on hold as possible. They go to our website and search for the company. The companies information page comes up with charts relating to call traffic and average hold time. Using these charts the customer strategically calls the company and quickly finds solutions to their questions

Client who Cares About Customer Satisfaction

A Company who values costumer service will come to our website and login using their company id and password. In addition to seeing what a customer will see, the Company can also see how many calls each of their employees take, their average call times, and their approval rates.

Design

Code Repository and Hosting

We will be using Git for our code repository and will be hosting it on bitbucket. While we work, we will be using Heroku to host our project until we can acquire a more permanent hosting solution.

Front End

Our front end will be primarily HTML with Javascript for the interactive features. Ajax will provide automatic rapid updates to the dashboard information so the user does not have to reload the page. We will use JQuery make our interactive features nicer both visually and interactively.

Back End

Our back end will be done in Python and Django. This will handle the logic for presenting an API to the client, storing the relevant information in the database, and generate all of the relevant customer and client-facing analytics.

Database Architecture

We will be using MySQL for our database and will be interfacing it through Django. The Django admin interface will allow us to manually setup the database structure and alter it during testing. Here is the structure of our database:
Company:
Customer:
Call Testing:
Review:
Representative:
Call Center:

Milestones:

Risks and Open Issues:

We rely heavily on invox but are unsure that it has sufficient flexibility in terms of API to do all of the analysis that we want to do. It seems like it should, but we have not yet explored the product completely.

A common operation during customer service calls is to transfer to a more appropriate line: elevating to managers, switching from purchasing to support, or any number of other horizontal changes within a company. Our current infrastructure does not easily support this.

Most companies will likely not want us to be able to access customer phone numbers, and having the login ID on the web interface be entirely through phone number makes any records very insecure. Simply hashing these phone numbers may not be sufficient, and we would like to still be able to track call history for a user, so we cannot just use the session number. We need to figure out a better solution for this.

Many modern customer service lines allow users to 'schedule' an appointment, such that the customer service representatives call back when someone is available. This feature seems like it would be good to implement, but would again require different infrastructure and database updates.

Back to Homepage