Businesses should think about their efficiency. Our company is not an exception. To improve the efficiency of solving business problems, our company needed a system for automating the workplace of employees. 17 years ago, the right system like Jira didn’t exist. We asked ourselves, whether to develop a system from scratch or use our own solution on CS-Cart and modify it to the needs of the project. With a staff of experienced CS-Cart developers, the choice was evident. Some functions were already there: order processing, customer registration, etc. It only remained to integrate systems for mutual settlements with clients, correspondence, setting tasks for developers and generating reports. We took the CS-Cart platform as a basis, adding the missing functionality. As a result we have made a full-fledged system for managing all business processes of the organization from originally an eCommerce platform.
Integration with multiple subsystems: 1C, Jira, hosting panels, Omnidesk messaging system, CRM, Pipedrive, and Bitrix.
Design development and integration
Development of subsystems for sales, licensing, upgrade and control of licenses for add-ons
Platform upgrade to the latest version
Implementing the project
Here we will tell you how we created the project from scratch.
Multiple system integration
Initially, we developed many subsystems from scratch and integrated them into the system. As time passed, new systems replaced them. We introduced highly specialized ready-made solutions – Jira, Pipedrive, Bitrix, Omnidesk, and 1C Accounting System – instead of developing similar systems from scratch.
This allowed us to reduce spendings and use the experience of other companies to solve specific tasks (control finances, communicate with customers, or manage projects).
We have replaced a part of subsystems with analogues and integrated them with the main platform. For example, after the advent of Jira, we stopped developing the same functionality in Helpdesk, and integrated the system with Jira. As Helpdesk remains the base system, and the default functionality of Jira is not enough for us, we continue to generate production reports in Helpdesk. With the help of Omnidesk, we have implemented an omnichannel approach in business processes. Now we can process user messages from different messengers on our platform and keep a common history of correspondence.
Finally, +7 subsystems have been integrated into the end system:
- Customer communication system.
- Task tracker (correspondence and all development tasks, including the result of the work, are attached to the order). All this information is grouped by clients and projects for which statistics can be tracked.
- Text search to help managers find the information they need.
- Mail (tickets, statuses, opening, closing a deal, assigning respondents, and messaging)
- Hosting (for secure sharing of access to the server).
- Billing system (managing all orders, making payments, and creating sales reports).
- A storefront to sell licenses for add-ons.
As mentioned above, Helpdesk grew out of the CS-Cart platform. First, we installed the platform as is and got to work. The first clients appeared. There were tasks that the standard functionality of the platform did not cover. New challenges forced us to develop an appropriate solution. Let’s discuss every integration step by step.
The first developed solution was the Helpdesk add-on (which later developed into the Helpdesk system). As the client base grew, a customer management system was required, linking communication with orders and tracking customer history. That is how we came to the idea of developing our own Helpdesk system for customer communication and support.
Helpdesk took the CS-Cart platform as a basis. Then, it was improved with a system for communication with customers. In the developed help desk, all communication is based on email. There is a mail server that processes emails. Helpdesk connects to the server and picks up messages from users, forming a ticket system with identifiers and distributing messages to managers. As the system was used, the functionality was enhanced with the functions of reopening messages, the ability to answer and comment on the user, pulling up information on the client and orders.
The work on improving the system did not end there. We continued to work on client projects. Operational needs have arisen. Where to set a task for development? How to plan work? How to link data about clients and present it in one place? How to generate reports, calculate profitability?
In the Helpdesk itself, we have programmed our own task assigning system so that we could set development tasks from an order via the communication system with control over the timing of work. Thus, 15 years ago we implemented and integrated our task tracking system (similar to Jira) into Helpdesk.
Years passed. The system has grown. Problems related to the amount of information received began to appear: many clients, many orders, a large amount of correspondence. Databases didn’t cope with such a flow of information. The Helpdesk team has started to optimize processes. The first issue that required an immediate solution dealt with the search across the system. Managers often need to find an answer using a keyword or data for a specific customer. Over the years, an impressive volume of correspondence has accumulated. Search optimization was implemented based on Sphynx, known for its contextual search. We selected this product according to the request (word search), integrated it over the database, and solved the problem with text search improving the managers’ performance.
Queue management system
As the project developed, the number of integrations increased, the volume of transmitted information became bigger, and the business also grew. Technical difficulties began to appear, the system could no longer process such volumes and began to “freeze”. After analyzing the issue, we found the problem and its solution. We organized queues and delayed processing of requests. Together with queue monitoring, we got a tool that allows us not to block the work of employees waiting for the processing of other requests to finish, and to respond to increasing loads without downtime. Critical cases when the storage size on the disk or queue is exceeded are escalated up to a call to a DevOps specialist.
In addition to developing client projects, our developers began to develop software solutions that are ready for use. To implement them, we opened a store. Clients received a personal account to view orders and communicate with the manager. Now customers can message directly in Helpdesk, and not only through email. Users can find an add-on on our marketplace: go to the site, select an add-on and pay for the order automatically using a convenient payment method. After making a purchase, an order and a ticket are automatically created to communicate with the manager and discuss the details of this order.
Further, we began to sell add-ons by subscription. For copywriting reasons, we introduced the licensing system. Helpdesk assumed the task of generating a license and monitoring its life. The license data is displayed in the personal accounts of users and in the dashboard of managers. If the license expires, Helpdesk automatically creates a ticket for the manager, who then contacts the client and asks about license renewing.
Thus, the system, initially developed for internal purposes, gradually grew into an online store with a user’s personal account, where the client could view the entire history of messages and orders and contact the company to resolve issues.
The add-on development direction was growing. To enhance the product right protection, we introduced source code encryption.
We have integrated the add-on store with the marketplace of the CS-Cart original developer. The integration was launched for data and license exchange.
Billing and reports
Later, the Help Desk system got the functionality of invoicing and automatic currency conversion. The order information is tied to users, and areas of responsibility are divided among specialists.
The reporting system can generate multiple reports in different segments (by clients, by employees, by sales, by product, etc.) for different stakeholders: directors, sales department, marketing, and HR department.
Single Sign On
All integrated systems are placed on different domains. We have a site simtechdev.com integrated with Helpdesk. The site has a Get a free quote form to contact managers. The form is also connected to Helpdesk. The add-ons’ marketplace is implemented separately from the Helpdesk site. Since the sites are placed on different domains, there were difficulties with sessions. There are certain authorization rules that don’t allow you to log in to one site if you are logged in to another one. This was just our case. We have developed a solution that allows the manager to enter a login and password on one of the domains, and work on the entire project without additional authorization.
System design and upgrade
Over 17 years of the Helpdesk existence and development of its base, the CS-Cart platform, has gone far ahead. The system has undergone many changes so that it has become more difficult for developers to maintain the old functionality. We decided to update the system to the latest version. Upgrading a system with so many integrations and dependencies took a year. During this time, we have refreshed the core of the platform, moved some of the functionality, updated or abandoned the rest of the functionality if it was not relevant anymore.
New integrations required changes to the existing system interface. We have introduced the missing UX/UI elements to make using the system convenient and intuitive for the user. On the frontend, we applied one of our own themes. This is one of our advantages: we test and use what we produce for our own needs, and then we offer it to our customers.
After the upgrade and redesign of the system, all integrations and all Helpdesk data remained safe and sound. The platform has become more resistant to vulnerabilities and loads. Users got a modern interface with a lot of features.
The project has become very popular within our company. We implemented the required solution in accordance with the emerging business needs. Our team selected the technology stack and integrated the solution depending on the problem at hand. First, we analyzed a problem, and then selected the necessary product and staff.
The work was scrum. Backlog formed. A number of stakeholders (from the sales department, accounting department, production department, and add-ons development department) prioritized tasks depending on the degree of involvement in the final product. After each sprint, the changes made were tested on test servers. Some of the tests were done manually, some were performed automatically using Codeception. The product was demonstrated to the end consumer – users of the Helpdesk system. Instructions for using the updated system were prepared for employees.
Recently, Docker has been used for virtualization, containerization, and continuous deployment of applications. The platform allowed us to quickly test and upload applications, run the required number of containers on one machine.
Helpdesk as a customer support system has grown into a full-fledged ERP system. After integration, the platform allows you to manage orders, products, counterparties, communication with customers, accesses, deals, setting tasks, reports and analytics in one place.
Downtime reduced after introducing
the monitoring system
Customer response time reduced
thanks to the ticket system
and automatic ticket reopening
thanks to the smart search system
thanks to the queue
Sales grew thanks to the introduction of the add-ons’ marketplace and licensing system