A technology company based in Singapore partnered with Elinext to build a CRM application as part of its family of business management software.
The client has been operating in three main domains: international sales of technology products, national immigration support services, and sales of software and digital services to national food and beverage companies. Each of the three domains has been unique in its business nature and operational cycle.
The company did not have a single digital tool that would allow managing sales and customer relationships for each of those domains. As a result, it was wasting money, struggling to analyze sales, and losing opportunities.
When the need for such a tool became pressing, the company sought out a developer to build it. After checking out several developers in the Asia-Pacific region, it came across us in Belarus.
Our strong communication skills, transparency about processes, expertise in business analysis, and experience in CRM development made us the perfect fit for the assignment.
The client described the product they wanted as a web CRM and an accompanying mobile app. They also planned two uses for it: as a software as a service (SaaS) for all Singaporean small-to-medium-size companies and as an in-house application.
Elinext pitched in at the very beginning of the project, participating in business analysis and design.
Our team approached the project using Agile methodology, collaborating with the client’s two engineers. The scope of work was structured into two-week sprints at the end of which we rolled out new functionality. We collected additional features in a backlog, sorting them by priority. The priorities were set through our sprint-planning meetings with the client.
The client asked us specifically to use open-source solutions wherever possible to avoid unnecessary expenses. To meet that requirement, we used a .NET Core tech stack based on AWS microservices. We also made sure that each microservice could be scaled as the user base grows.
The CRM’s user journey begins at the landing page featuring the product’s essentials, news, and company information. From there, the user can sign up or log into the system. Prospective customers can sign up with their Facebook or Google accounts to play with the trial version of the CRM.
Once in the system, the user sees the CRM’s main menu panel and workflow dashboard featuring upcoming activities, events, tasks assigned, and the user’s performance indicators. We made the customer dashboard customizable and associated the information in the main window with the user’s role, as specified by the administrator.
The user interface includes five major entities:
Leads and Contacts
Leads and contacts are entries for customers at various decision-making stages. Those entries are organized in lead lists and contact lists respectively.
CRM users can add and delete entries to and from the lists, write a summary for each list, and search lists using filters. Each entry has fields designated for details like lead/contact owner, name, company, source, status, contact information, industry, number of employees, revenue, and others. Lead entries can be converted into contacts when their status changes.
Contact entries feature additional information like interaction history, birth date, picture, tags for grouping entries and campaigns the contact is a part of.
We have also set up accounts for a wider range of relations including customers, partners, integrators, competitors and others. Accounts work similarly to leads and contacts, with a few additional features. Users can pick the type and industry for each account from a drop-down menu and specify a parent company if there is one.
As business relationships develop, you need to keep track of those developments. To help our client and their customers with that, we enabled deals. Deals show relationships throughout each stage on a status bar, focusing on details like close date, value, contacts, and activities. Entries also feature product and price books and competitor information.
We organized deal lists in Kanban view to simplifying analyzing and managing deals.
Further, we ensured easy access to documents accompanying deals. Users can add documents by simply dragging and dropping them, and view a list of documents uploaded and shared with them.
Finally, for executing and tracking sales, we introduced campaigns. CRM users can see a list of campaigns they are part of in the same way as with leads. Each campaign has a name, start and end dates, a budget, and an owner.
We visualized campaign progress across all stages as a status bar. The status bar features information like campaign type, budgeted cost, actual cost, expected revenue, expected response, and more.
It was also essential to provide insights into how salespeople and management perform. We met that need by building dashboards and reports.
We have built a sophisticated CRM system with a lot of nuances that are not apparent at first glance but that represented a challenge through the development.
The client and its customers can customize the CRM to fit their needs thanks to the wide range of settings we have enabled. Administrators can edit components like user accounts, permissions, roles, profiles, product and price books, screen layouts, data fields, and others.
The adjustable architecture based on microservices (as opposed to typical monolith architectures) will allow the client to adapt as the product’s user base grows.
The project was built in 2018, when using a combination of .NET and AWS was still a fresh idea for optimizing expenses. Those technologies are open source solutions, which means that they are free for the client to use.
This project has taught us a great deal about estimating and managing clients’ expectations when building complex products. On the other hand, our team was able to share its expertise with the client through collaboration, making it mutually educational.