Develop an OTRS system for automating the work of the technical support team

Our company provides comprehensive development services and we have been automating various processes for large platforms for quite a long time. One of the challenges of large, successful platforms is how quickly they scale up. One of the first departments to expand is the customer support department.

One of our clients, a large financial platform providing payment solutions for stores, needed to optimize costs in the technical support department.
Hundreds of thousands of stores have already been connected to the platform, and the load on technical support with such a number of counterparties is truly impressive. That's hundreds of technical support requests a day. These include both calls and correspondence in chats and emails.

It is worth clarifying that the client has already used some automation of his processes, at least he has already used the OTRS ticket system. But the system had significant drawbacks, which required a huge number of manual steps. This and finding information about a client or counterparty - all this is stored in a separate application or a separate database; try to find a store or order associated with this customer; find development tasks or bugs related to this request. All this took a huge amount of time.

Negative consequences include an increase in support staff and a long wait time for problems to be resolved. It was also necessary to take into account the importance of storing customer data on the side of the financial system.

The solution to this problem is to refine the OTRS and integrate it with different parts of the system.

First of all, we analyzed what improvements would help our client improve the process.

The display of information in this case plays a decisive role. For example, if a client calls, you can try to find information in the CRM client database by phone number or email. You will also need information related to the client, for example in the company's bug tracker. Additional analysis helped us figure out what improvements needed to be made in the interface part, because open ticket system solutions offer a rather limited interface. Hot keys and hints were also useful.

Having started implementation, we analyzed the current solutions on the market and calculated possible options. It is not surprising that, taking into account the desired improvements, it was much more profitable for the client to implement their own solution, rather than try to modify existing ones, taking into account the fact that a huge layer of ticket systems was immediately discarded due to the requirement for data hiding.

Moreover, there was enough information so that any other employee could immediately begin to act without additional actions. The connection with the internal bug tracker helped us not to be distracted from searching for a possible solution and issuing a status for an existing application.
Information on open tickets was also sent to the user’s personal account, so that he could also find out the status of the problem himself or supplement it with any data.

Development:

The Intelexity team implemented an elegant solution by combining React as the frontend and java as the backend. From the front end point of view, we developed an interface on which information about the client, his payment information, a small payment history, as well as open tickets were conveniently located, for which the related correspondence with the responsible employee was immediately displayed, to whom, if possible, the call or correspondence was sent.

  • At the time of development, chat bots were new and we worked with simple cases to help in choosing the topic of each ticket.

To implement this functionality, the backend was written in java, using the Spring Framework, and integrated with a whole bunch of internal systems. This is, first of all, telephony. Currently, Asterisk is still the leader in the open source telephony market, although there are many other solutions that can also be used as voip. This could be FreeSWITCH, 3CX and many others. The backend could transfer the call to the appropriate employee, make an entry in the call log and, if necessary, save the telephone conversation. The second communication channel was e-mail, for which an email client was connected to the server, internal algorithms such as Levinshtein Distance, TF-IDF in conjunction with Cosine Similarity of the server linked correspondence into topics for relative ease of search. The emails also changed ticket statuses, making it easier to filter by open tickets. Integration with the CRM made it possible to display information on the current user, and integration with the bug tracker made it possible to display open bugs for development and the ability to create new requests for development. They, in turn, were already processed by the development team.

To ensure high speed of message processing, SLAs were also added, which notified the relevant responsible persons about delays in processing, for possible optimization of the process.

The employee employment assessment system helped balance the load and eliminate downtime on the line and in the mail.
A reporting system was also created to evaluate the work of both individual employees and the entire department. For example, based on successfully processed tickets, trends in quality and speed of processing applications. All this helped level and configure the system for greater efficiency.

QA:

Despite the fact that the system was an internal development and was aimed at internal users, testing had to be given no less attention than any external system for clients, because Correct operation of the complex is the key to high productivity of the technical department. For convenient storage of test cases, as agreed with the customer, we used Jira with the X-rail plugin and the GitLab plugin. This combination helped to quickly find in which part of the code the bug was found, and therefore quickly fix it.

DevOps :

To quickly deliver fixes and new features to the product, assembly lines were developed based on gitlab. Gitlab is one of the most convenient solutions on the market for storing and deploying code. The ability to write quite complex assembly processes is an absolute advantage, thanks to which we were able to implement a full CI/CD process with automated testing of both the code itself using SonarQube and dependency check analyzers, and docker images that will be installed on the server, trivy scanner . The orchestration was performed by the lightweight k3s.

As a result of the adopted set of measures, the efficiency of the customer support department has increased many times over. The speed of problem solving over the phone has increased and call time has decreased by 60% on average. The speed of closing applications via mail was also dramatically increased by 47%. Most often, the problems consisted of finding previous correspondence and correspondence that were most relevant in meaning. The number of calls to technical support overall decreased by 15%, due to the reorganization of information in the personal account and the connection of a chat bot that could answer common questions. The cost of processing the application has been reduced by 30%.

The efficiency of the department was also increased by identifying overloaded and underloaded specialists. For specialists who systematically fall short of the SLA, refresher courses were conducted, which also had a positive impact on response rates.

We were able to significantly improve the efficiency of the technical support team for our client by automating the ticket system and integrating it with other client subsystems. And also due to the correct reorganization of user documentation.

The positive experience we have gained makes it possible to increase the efficiency of your company's user support service through a unique development tailored specifically to your needs. Don’t put off your decision until tomorrow - save and grow today with Intelexity.