I am sure some of these things already exist with a different name or are probably present in those mega expensive enterprise solutions that companies sell and companies buy but here are some ideas I have recently been thinking about.
Consider the live chat based support that is present on a lot of websites these days (Examples: lulu.com, backcountry.com). The idea is that if you want to talk to someone, you can start a chat right then and there rather than call customer support and spend 15-20 minutes on hold. It is a plus for the company also since they no longer need to maintain a call center (or outsource it). This is specially attractive for startups who cannot afford to spend a lot on customer support.
So how I imagine it must be working is that there is somebody sitting on the other side of the comp and probably talking with one or more customers at the same time. They would have many chat windows open or many tabs open, one for each customer. I would guess that even a trained support person would not be able to hold more than 4-5 customers simultaneously. What happens if more users are looking to chat than the available support staff can handle? Do we run into the same "please hold" thing?
In short, I have been wondering what tools we can build which would help optimize the ratio of customer to support staff in the chat based support scenario. One option is a chat-bot which I have heard deployed in some places (or are all these companies using chat-bots only and I am wasting my time?). How good are they, I have no idea but I would guess not a lot. And even if they are, they can be effective only for starting the conversation. At some point of time or for certain types of conversations, we would like a human to kick in. So let us think about the problem of one support person and many customers.
First thing would be to save the support person from the problem of switching focus between windows. I think a better interface would be like a chat room with the difference that only support person can see everyone and everyone else can see only him. Since we don't want to mix up the conversations, we can have the chat window separated into panes but one single message box to send messages to all of them. It should be possible to choose the panes by putting some markup in the message itself rather than switching focus explicitly. The @ notation that is used as a convention in public chat rooms can be used here: "@sunder I am not going. @ram that is a cool idea". Software should take care of sending the first message to Sunder's window and second to Ram's window. There can be IDE style completion which presents the drop-down of all the active user ids as one starts typing the @ symbol.
To push it a little too far, information filling tokens can be allowed which would be replaced with the actual information pulled form the database before finally sending the message. So a message might look like: "@Sunder We received your last payment on #last-payment-date# and your current balance is #due-amount#" which gets populated before sending in. This will save the effort of working with another application that pulls up the data and then transferring the data manually to the chat application.
A second and more tentative thing would be to have a mix of chat-bot and human where chat-bot can identify and handle parts of the conversation that are routine and human can chip in with the rest. So if a customer wants to know his account balance, it should be possible for chat-bot to handle that directly. Or the chat-bot can generate the text for the human and not send it directly. So as soon as one types @sunder, chat-bot can suggest the response to be sent and human can decide what to do ( although this may become more intrusive than helpful ). In fact by feeding on the chat transcripts of one human, chat-bots that generate text in his style should also be possible.
Any thoughts and pointers are very welcome.Update: liveperson is a company that provide these softwares but don't know if they have these features or not.