jeudi 3 septembre 2015

How should I design a realtime operational data monitor for a call center?

In a call center with 1000 agents (in 10 agent groups), all agents call customers and offer something related with a campaign, and they save the result of their call (customer accepted the offer or not) using the same web application, to a SQL Server database.

I need to design a monitoring application in which supervisors and the agents themselves can see the progress so far, from the beginning of the day. Like so :

  • Agent group, campaign, successful call count / total call count
  • Agent group, agent, successful call count / total call count
  • Campaign, total call count
  • Etc.

I am planning to use an in-memory Sqlite database with a web service. The application that the agents use will send the call result (agent group id, agent id, campaign id, result id, is successful) to the web service, and the ws will enter the data into Sqlite dimension tables that I will create. Sqlite must handle many write requests coming at the same time with a very good locking mechanism, or I should use a queue to write incoming data one by one in an order, in a second thread. But if I use a queue, writing a windows service may be more proper.

Monitoring applications will query the web service in 30sec-1min periods, and the web service will return the requested data in the suitable dimension table.

Am I in the correct path ? What is the best practice for designing such a data monitor ?

Aucun commentaire:

Enregistrer un commentaire