This article is all about customer service – both external customers and internal. The importance of keeping the external customer satisfied is pretty clear – if the customer isn’t happy they will give their business to someone else. The importance of a happy internal customer is a bit more subtle; if they are unhappy with your work they may decide not to come to you and do things themselves. This could result in decreased productivity which will adversely affect the companies performance. The following example illustrates how taking care of your internal customers can directly impact your external customers.
I was approached one day by a manager in our customer support group seeking some help. The company was starting a pilot program where our best customer support agents would proactively call customers with frequent calls to our support offices and try to resolve their issues. The agent was given a customer to work with but before calling the customer they researched all of the calls the customer made and what issues were reported. The agent then formulated a solution, called the customer and fixed the problem. This involved having the agent being assigned a list of customers, researching the issues (this involved utilizing two different applications), calling the customer and reporting the results. This data was then compiled and analyzed. The system being used was Excel-based – the supervisor received a list of customers in a workbook, he then divided that list amongst his agents by copying and pasting into separate workbooks and sending them to the agents. The agent then called the customer, recorded the data in their spreadsheet and at the end of the week mailed the workbook back to the supervisor who copied and pasted the data into a single workbook for reporting. My task was to automate the process of dividing up the data and then re-compiling it at the end of the week. This was not too different from other things I had done and so I told the manager she would have something in a couple days. I was busy and didn’t give the project another thought that day. The next day I did think about it and I called the manager with an update; I didn’t want to do her project. I told her that I wanted to build a web-based application that covered every aspect of the program – from compiling customer names to assigning them to agents and ending with reporting. She was thrilled and I had no idea what I was getting into.
The first thing I needed to do was to understand what I had gotten myself into so I held a meeting with all of the stakeholders. I had them explain the entire process to me and then went around the room to ask them what they would like to see the application do. I told them to think about what they want, not what they thought was possible. The one thing that everyone wanted was to have all of the information in one place. There were two different places that they had to go to research the customers problems and then they had to take notes and put the information in the spreadsheets. I decided to start with page layout. This was helpful not only in getting immediate buy-in from the customer (in this case the managers and agents) but it also served as verification to me that I am on the right track. My first challenge, after deciding on what pages I needed and what they were going to look like, was to find a way to give the agents access to these other applications while inside mine. My initial thought was to put this information in an iFrame but ultimately decided to use the ASP.NET “Literal” control. The challenge was to get the outside application to run inside mine and automatically call up the proper customer information. I didn’t have to worry about passing login information because I was opening this connection as read-only. It took a lot of running around and talking to a string of people until I finally got to the person who could provide me with the information, and permission, necessary to make the connections. During this time I was also working on the back-end database – after all, what good is all of the data if you don’t have a place to put it? I got out my whiteboard, colored markers and got to work laying it all out. The tables, stored procedures, outside data connections, permissions, etc…. if it was database related, I did it.
I held meetings twice a week to keep everyone up-to-date and get feedback. The meetings were kept short because I didn’t want to take time away from the work the agents did and I find short meetings are far more productive than long ones. Each meeting found a few changes or additions made but all were relatively minor and it wasn’t long before I had something for the group to test. I loaded some data and had some of the admins and agents run through some tickets. This was when we discovered that we didn’t take into account over-seas customers. Some of the tickets came from customers in England and since the agent was authorized to refund some money in certain cases, we needed to convert pounds to dollars before saving the record. It would have been easy if there were no fluctuation in the currency market but there is. It was decided that the conversion rate would be updated once a day and this was done by the database. This is the only aspect of the project that I did not do myself – I solicited help from a co-worker and he set it up for me.
When the completed application was rolled out to production it was well received by everyone. We had screens for the administrators to assign tickets, add and remove agents from the project and run reports. The agents had their own interface where they could look over their workload, select a ticket to work on, research the root cause and connect with the customer. The project was great success and was heralded as playing a big part in reducing churn (a measure of customer turnover) by 20% in 6 months. The following is an excerpt from a LinkedIn recommendation given to me by the project manager:
“He worked with me on creating a customer satisfaction response platform for one of my projects and delivered a solution which was top class in terms of user experience and design and better than what best in class companies were already using at the time. He was actively engaged in developing the requirements and gave lot of attention to minor details that could impact or enhance customer/end user experience.”
It can be difficult at times being the only developer on a job but I think it makes you a better developer, at least that is my experience. It forces you to look at every aspect of the project and not just your little part. It has made me better able to handle rapidly changing requirements and deadlines as well.
Filed under: ASP.NET, Excel, Microsoft Office, SQL Server, VB.NET, Web development Tagged: customer service, Programming
