📜 ⬆️ ⬇️

There is a job for chatbot: virtual assistant help desk

Chat bots from an exotic feature of online stores are increasingly turning into a useful tool, especially in the corporate sector. Recently, we created a chat bot that makes it easier for our support team to work with requests from one of the major clients.

Why did you need a chat bot when working with just one company? It's all about size. The client is a very large online store that needs round-the-clock technical support of the IT infrastructure, notification of problems, processing and execution of incoming requests within the shortest possible time. The latter is especially important, given the daily audience of the client and the volume of trade.

However, the high requirements for quality and speed of processing applications by technical support specialists were in conflict with all sorts of routine and distracting factors. Engineers had to constantly switch between completely different contexts, which increased the likelihood of error and reduced productivity. And this, in turn, is a direct way to increase the number of applications.
')


Well, and besides, applications can often be performed much faster if you speed up the flow of information about various events. In practice, the duty shift of the Service Center needed to be notified about the receipt of a new application, the engineers had to log in to the order management system and search for the right one, while they were tied to their workplace.

Therefore, the desire to partially automate our workflow for a long time did not allow me to sleep;). I wanted to think of a way to remove part of the routine from the engineers, to reduce the number of distracting factors during the execution of applications. It was also desirable to inform engineers and managers as quickly as possible, but at the same time so that they do not have to sit at computers and spend time on authorization and searching. I wanted to combine the client's application management system with our monitoring system.

As a result, a solution was found - we decided to create a chat bot that would send notifications to specific employees or groups. They decided to write in Python, and as the medium they chose Telegram as one of the most common instant messengers that can be integrated anywhere. In addition, Telegram clients are available for almost all platforms, except for some Nokia 3110, so all support staff can immediately receive notifications to their computers / laptops / smartphones / tablets.

The chatbot was an “initiative from below”, resources and working time were not allocated for it, so they made it after hours, which took a lot of time. So what was implemented?

First, we integrated the chat bot with Assyst, the customer ordering system . Now it is not necessary to notify the duty shift on the appearance of a new request or incident - the chat bot throws a message to the appropriate group.






The message indicates the application number, the name and surname of the engineer who worked on it earlier, the urgency and the three action buttons. You can immediately see the description, accept an application for a group or for yourself. If a specialist has previously worked on the application and she returned to the group, the bot will notify the responsible officer and send a comment with which the application returned.

So engineers are now much faster in their returns, and the person in charge is always known.

We also added alerts about applications that have less than a day left before the deadline. Such alerts are sent several times a day to the engineers was convenient to plan your work day, and at the same time not to forget about any task. The message indicates the application number, the responsible officer and how much time is left before the deadline.


The chat bot was integrated with the application management system using two versions of the REST API, new and legacy . Technically, there is nothing complicated in this API: POST and GET requests, parsing and data conversion.

Also, our chat bot is able to manage some server recovery tools and notifies the client when the servers are up again .

The chat bot checks the performance of the servers based on data from the monitoring system, and promptly reports any problems with a particular server.


In this case, the bot provides the ability to collect heap- and thread-dumps, at the output providing the dump-files for subsequent transfer to the development team.




The key points here include automatic check of free space in order to exclude the possibility of stopping a business application, determining the PID of the process and adding read permissions to enable downloading of files.

Using a chat bot, an engineer can run a server reload script .
If the engineer decides to restart the failed server, the bot sends a message that changes in real time, displaying the restart steps.






Within the script, a whole bunch of automatic tasks are performed.



Finally, another task that our chat bot solves is the preparation of a report and the prediction of the timing of technical support tasks . What is it and why is it important? Suppose some kind of application for technical support involves the execution of several subtasks that can be performed both sequentially and in parallel. The task itself is an XML file with a list of subtasks. And on different days, the list of these subtasks may be different. The engineer is asked: “When will it be ready?”, And how can he answer this? This situation is perfectly described by the Gantt chart :



How we answered the question about the completion date of the work before the introduction of the chat bot:


Chat bot greatly simplified our life: it automatically determines the start time of work, the list of subtasks (implemented using recursion and the lxml module), determines the status of each subtask with corresponding database requests (implemented using cx_Oracle ) and builds a forecast based on average statistical data on the duration of subtasks for previous days.






Perhaps, this functionality was the most difficult for me: I had to tinker a lot with calculations and data processing.



Our chat bot works only two months, but it is already possible to sum up some results of its work.

Firstly, the response time of technical support to incidents and requests decreased - the implementation rate of the OLA (Operational Level Agreement, the agreement on the levels of operational support) improved by 80%.

Secondly, on average, each engineer began to fulfill more than 5% of applications. 1200–1800 applications are fulfilled per month for this client, 20–70 per day.

Thirdly, the experts began to spend less time on routine procedures like tagging applications: in order to set the response time in Assyst, you need to press a few buttons and wait for the download, and press the button in Telegram and the application is marked.

We found the chatbot experiment successful and in the future we plan to clone the bot for other working groups (already implemented for the SAP BI group in terms of working with the bidding system), we want to transfer the functionality to other platforms (Skype, Slack, Whatsapp and Viber) and add new automation processes.

Alexey Egorov, Senior Application Administrator, Jet Infosystems

Source: https://habr.com/ru/post/350318/


All Articles