Last weekend, the football club Young Boys Bern hosted the third edition of their annual YB Hackathon. Once again, approximately 70 hackers participated in 12 teams to solve their assigned challenge within 24 hours.
Like last year, I was part of a team alongside Jonathan Külz, Lars Carius, and Christopher Gudde. The latter two unfortunately had to participate remotely due to Covid-19 regulations, which luckily did not impair our team spirit at all! We chose to work on the challenge posed by EWB, a local utility provider. Their problem was that their customer support unit was handling messages and support tickets inefficiently due to random and manual allocation of support requests. This reduced turnaround times for the customer and led to increased workload on support agents who would spend significant amounts of time researching the correct answers.
From early on we had a pretty clear idea on the functional components of our solution, which we succeeded in implementing. The complete pipeline can be seen below:
Incoming messages are automatically analyzed and tagged with the concerned correct business unit (e.g., water, electricity, internet) and given a sentiment score to determine if the customer is especially angry or discontent. This analysis uses natural language processing and partially runs on the Google cloud. Then, according to the message content and business unit, we match the message with selected answers from an FAQ database (provided by EWB) that are very likely to be relevant to the customer request. Finally, the message together with the suggested FAQ answers are assigned to an support agent who should be available according to the work shift schedule (provied by EWB) and has an expertise in the correct business unit. Through this process, we expect that workload on the customer support team is significantly reduced because our system already provides likely answers and assigns the requests to an agent who would be knowledgeable in the correct domain.
Due to the lack of an experienced front-end developer, we only had a very rudimentary web interface based on a python Flask server:
As a bonus, we also wrote a Telegram Bot that allows customers to directly message the EWB support through Telegram and receive a reply in the same chat. We packaged the Telegram Bot, the Flask webserver, and the processing module into a docker container and deployed it in the Microsoft Azure Cloud.
After 24 hours, we managed to present a live showcase of our support ticket classification on stage. We asked the audience to submit requests and demonstrated our solution live in action. Despite our rudimentary front-end, the jury was convinced of our solution and awarded us the second price of the YB Hackathon 2020.
The whole team would like to thank the organizers for a great hackathon!