Computer lessons

Creation of CRM. Why you shouldn’t write your own CRM system from scratch Technology requirements

Sooner or later, any business is faced with the issue of implementing CRM. Today there are many solutions on the market for different niche tasks. At systems, entrepreneurs often decide that there is no ready-made solution for their business and that a CRM system needs to be developed.

In my opinion, this is one of the biggest mistakes you can make. However, for some reason, the thought of their own CRM comes to almost all entrepreneurs. I have seen many successful companies with a simple business process, but for some reason they decided that developing a CRM system was what they needed.

Example 1. Large companies that started in the 2000s

It all starts with the need to automate business processes and sales at a conscious level. 10 years ago there were no CRM systems for medium and small businesses on the CIS market, and most companies had to create home-made systems. There was practically no IT industry, and the technical department of an average-sized company was much more powerful than in modern startups. Thus, companies became involved in the development of their system, and it took deep roots into all processes of the company.

As a result, it’s 2008-2012. The beginning of the dawn of the IT industry in the CIS. Startups are springing up like mushrooms, developing CRM systems, mailing services and similar software for business automation.

In companies where they made self-written systems, the process was already underway, but since the main profile of these companies is not CRM systems or even an IT product, they began to stall in the development of their own systems. As a result, in terms of functionality they began to be much inferior to specialized startups.

Time passes, and our heroes become increasingly bogged down in their own processes. Their self-written system does not allow them to straighten their shoulders and move forward: they constantly have to adjust their functionality to the modern one, which appeared in fashion startups a long time ago. Although no, these are no longer startups, but confident IT companies with good investments.

As a result, it turns out that a self-written system consumes a lot of time and, most importantly, enormous resources of programmers.

If the CRM development they were doing was truly unique, then to hell with them, but no - they are reinventing the wheel, which a long time ago could be bought for $10 a month.

And the worst thing in this situation is that it is morally very difficult for company managers to abandon this system, since money was spent on it. You can hear a similar story from NetPeak employees at this video.

Can you imagine how a top manager approaches the boss and says: “Vyacheslav Grigorievich, a new system has come out, it’s very cool, and it can completely replace ours. As a result, what our entire IT department has been doing for 10 years can be thrown out and deleted from the server. How do you like this idea, huh?” In such a situation, Vyacheslav Grigorievich will ask a reasonable question: “Petya, fuck your mother, why didn’t you say this before? Why did we spend$100,000 to develop your system?”
Then “A-ta-ta-management” begins and the top manager flies out of work. Of course, I'm exaggerating, but I hope you get the gist.

The situation is exactly the same with managers. They cannot admit to themselves that they have wasted money. Deep down, every owner of a self-written system has in his head the idea that one day he will sell this system to other entrepreneurs. But this will never happen, and this system will eat up more and more money from entrepreneurs.

I told this about companies that were faced with the need for automation in the 2000s and, in fact, they are not to blame. At that time, there really were no CRM systems, and everyone automated their business as best they could.


Example 2. Small business that didn’t want to figure it out

But there is another story, about young companies. They suffer from their ignorance, and not from the lack of a product on the market. I have observed the following scenario many times.

The company has a need for automation, and management begins to search for a CRM system. They start googling and comparing. They come across AmoCRM, Bitrix24, Megaplan and others. Register in it. They look at the interface and don’t understand how to use it. They are trying to implement it, but nothing works.

As a result, they begin to look for a system for their “unique business” of selling building materials and, naturally, find nothing. The managers of such companies do not know that the CRM system can be customized. As a result, they come to the conclusion that these systems are somehow strange, the programmers are idiots, and they don’t understand anything about sales. And we are the smartest: we will write our own CRM system.

As a rule, such people have no experience in IT development at all. They take a programmer friend and say: “Vasya, look: here you need to make such a trick, it’s not difficult, right? Kind of like Amocrm and Bitrix24, just a little different. Will you do it? Naturally, freelancer Vasya says that he will do everything. Only a fool would refuse the opportunity to create a unique CRM system. They also told him that they would sell CRM to other companies in this industry, and Vasya would be made the managing partner of a future IT company that would go public and disrupt the market.

As you already guessed, this will never happen, both the inadequate entrepreneur and the inadequate Vasya will cut their system forever. CRM development will drag on for years and will only take time and money.

“And I’ve also heard more than once that using ready-made CRM systems is expensive and it’s better to use your own developments,” are you guys serious? What nonsense? If you do the math, you will understand that for 2-3 years of development you paid programmers a lot of money. And you will spend $1000 a year on CRM. You need to understand that good CRM systems have a huge development department, and, in fact, these people work for your business.

Which companies can create their own CRM systems?

First of all, these are SaaS companies and giant companies. This type of business has its own internal unique business processes, which conventional CRM systems are not designed for. Also, these companies have experience in developing IT products and have labor resources within the company who can write their own CRM.

Who shouldn't write their own CRM system?

Everyone else needs to look for solutions on the market and adapt them to suit themselves. Believe me, it seems to you that you have a unique business with unique business processes. This is wrong. 99.9% of all businesses in the CIS are templates, with a clear business model, and there are many software that are made specifically for your niche. You need to look for them, especially in the English speaking market. Everything was invented there a long time ago.

Have you ever thought about creating your own CRM system? Share your business stories about how you found a way out of the situation and what software you settled on.

Not long ago I needed to organize the simplest possible CRM for a small office. The main problem was that customer data was stored absolutely chaotically; it was not clear who called whom when, what was agreed upon with the client and at what stage the client order was.

Yes, today the number of CRM systems on the market is very large. There are options both as a separate application and as an online service with cloud synchronization. If you specifically set a goal, you can find a system for almost any request and wallet. But for my task, the functionality of most CRMs was either redundant or too expensive. Plus, I needed a solution that was as easy to implement as possible and would not require separate training or additional configuration.

What was originally required?

It was necessary to obtain:

  1. a single repository of contacts of all the company’s clients;
  2. access to online/offline storage 24/7 for all office employees at any time;
  3. the ability to view the client’s history;
  4. the ability to divide clients into groups;
  5. the ability to keep a client’s call history with comments about the conversation;
  6. the ability to access information on phones and PCs;
  7. the ability to edit/update information for all office employees (no restrictions on access rights were required);
  8. the ability to immediately see the client’s data and history on the phone screen during an incoming/outgoing call.

What was available?

  1. several inexpensive dual-SIM Android smartphones connected to CDMA and GSM operators;
  2. WI-FI in the office;
  3. an Excel database with customer data located on a network drive with shared access from all office PCs.

Neither PBX nor IP telephony were used in the office, since there was no particular need for them.

What was missing?

The workflow looked like this - clients were scatteredly recorded in the phone memory under different names, with some notes and so on. Some phones had recordings, some did not. In addition, there was an Excel file located on a shared network share.

When a client called, the employee specified the name of the caller, using the built-in Excel search, checked whether such a client was in the database and, based on the results of the conversation, wrote down the results in the same file.

To put it mildly, the process was very poorly optimized, and although the data was systematized in Excel, it was extremely inconvenient to use. In addition, if an employee left the office, he lost access to the file.

What did you need?

Since the cornerstone of the task was displaying customer data for incoming calls, it immediately became clear that we needed to look for a solution in the area of ​​Google -> Android. And such a solution was found almost immediately - free Google Contacts became it.

Almost everyone knows that Google allows you to sync contacts with your Google account, but not everyone knows that you can edit them not only from your phone. To access the Google Contacts web interface, you need to go to Gmail and select “Contacts” from the drop-down menu.

Additionally, the number of fields provided by Google Contacts is much larger than the standard full name-phone number. The most important thing for me was that Google Contacts allows you to create a separate block of notes for each entry.

  1. has all the necessary fields for contacts (even with some excess);
  2. it is possible to create groups and place contacts in them;
  3. has an interface for both smartphone and PC;
  4. allows you to import/export your contact database;
  5. data is automatically and quickly synchronized through your account - across all devices.

Thus:

  1. a new Google account was created and connected to all office smartphones and PCs;
  2. a customer card template was developed;
  3. several test contacts are created and saved;
  4. Using the export system built into Google Contacts, these contacts were exported to Excel;
  5. the “office” Excel file with contact data was converted to Google format (it’s very easy, just place the data correctly in the right columns);
  6. The new file has been imported into Google Contacts via the built-in Google Contacts import system.

Profit! The entire previously accumulated client base was placed in a Google account, synchronized on all smartphones, and for each client the following card was obtained:

  1. Client's full name;
  2. the group to which he is assigned is a quick “marker” of the client;
  3. all his contact details;
  4. life cycle of each order. The employee who performed the action is indicated in parentheses.

The photo is added either manually or pulled from Google+, along with the data specified by the user.

Taking into account the limitation on the volume of data output during an incoming/outgoing call, in order not to create unnecessary records, after the transaction was completed, records about the steps were deleted. We left only the result with key parameters:

Fly in the ointment and its solution

It would seem that this is happiness, take it, populate your contact database and use it. But it is known that every barrel of honey always has its own fly in the ointment. In this case, it looked like this - task No. 6 required displaying customer data and notes for them during incoming and outgoing calls. With all the power and truly convenience of Google Contacts, Google did not fail to put the blame on the phone - on the standard dialer screen of Android smartphones, only the First Name, Last Name and caller number fields were displayed. There were no settings that would allow displaying other additional fields present for the contact.

However, given the fact that the smartphones ran Android, the task did not seem so insurmountable. As a result of the search, the ““ application was found, which allowed all the necessary data to be displayed on the screen of a standard Android dialer for incoming or outgoing calls.

Call Notes Pro features

The application can:

  • display data from a customer card in Google Contacts on the screen of a standard Android dialer;
  • allows you to configure which fields will be displayed on the screen and in what order:
    • group;
    • company;
    • job title;
    • address;
    • Email;
    • Web site;
    • phone number;
    • contact note;
    • birthday;
    • calendar;
    • call type - incoming/outgoing;
    • number type - personal, work, etc.;
    • pseudonym;
    • location;
    • telecommunications operator.
  • display the time of the client’s previous call (if there was one);
  • work with dual-SIM smartphones;
  • the appearance of the displayed card is fully customizable - color, font, font size of each element, etc.;
  • the ability to create notes for a contact directly during a conversation;
  • the ability to hide the card so that it does not interfere with the use of buttons on the screen.

Let me note right away that the application is paid, but the price of $3 clearly cannot be an obstacle. The application was purchased, installed on all smartphones, with a previously connected common Google account in which all data is stored.

This is what the customer card displayed during a call looks like. You can customize it to your liking.

Result

After all the manipulations, the workflow began to look like this:

For an existing client:

  1. when a client receives a call, the employee immediately sees all the necessary data on the phone screen;
  2. after completing the conversation, the employee enters the results of the conversation and the actions performed via the Google Contacts web interface;
  3. The data is synchronized in a shared Google account and is available to all employees.

For a new client:

  1. after an incoming call from a client, the employee creates a new contact;
  2. enters all necessary data about the client and the call;
  3. adds the caller to the appropriate group;
  4. The data is synchronized in a shared Google account and is instantly available to all employees.

conclusions

The new logic has been implemented and has been working successfully for several months. There is much less chaos in work processes; client cards and work on them are stored in an orderly manner. Phone call conversion increased by 23%. Correct grouping of clients allowed:

  • immediately see when the client last contacted;
  • What group of clients is calling - new, returning, wholesaler, retail, etc.;
  • see how many leads are being processed, how many orders have been completed;
  • re-call customers who were interested in the product but did not place an order;
  • quickly respond to the client about the status of his order;
  • Don't waste time on incompetents.

I have been programming since 2008, initially I developed websites. But my opinion about sites now is not the best, from a development point of view, I will definitely write an article about this. For now, let’s return to how I started developing CRM.

It was a cozy evening on August 19, 2017, when I was contacted for the third time in a week about developing a custom CRM system. And then I realized that I simply couldn’t develop several projects from scratch at the same time. So I sat down and decided to write my own base for developing CRM systems.

It all started with the choice of design, since I myself prefer development and prefer not to open Photoshop and in no case do layout (fortunately, 8 years of development experience allows me to move away from layout), then I chose a ready-made admin panel template and began to develop my own CRM module based on the Yii2 framework.

The first step was to implement an authorization system: login, registration, password recovery, notifications and confirmations by email, recording the number of login attempts, reCaptcha and a ban for half an hour if there are too many attempts. In general, it turned out to be a pleasant and convenient authorization, which I now use in projects.

Next, two modules were created: lead collection and contacts, they are very basic and have the most standard fields: full name, email, phone, comment - something that can be common in all projects, the rest can be added individually.

Afterwards I decided that it would be good to have logging of user actions. This can be taken into account in future analytics. How do company managers work, where do they go, what actions do they perform, at what time is the highest activity. There is no analytics module in the database, since everyone needs their own analytics, but the foundation has already been laid. Speaking of logging, mail logs were also added to the admin panel - headers from SMTP operation and a section for tracking authorization attempts in the system, where login, time and IP address are recorded. It’s useful when this information is in plain sight; you can block the IP a little so that your soul can be at peace.

For myself, I implemented a parser inside the system from the first freelance site, where I often find orders. Now the list of new orders is loaded into the system automatically through a Cron task. I can make notes, reply to projects, or hide them. Each action is taken into account in further analytics, which allows me to evaluate the effectiveness of a given channel and, using this, adjust actions.

Clients come to us with the idea of ​​creating a CRM or ERP system or specific functional requirements. During a free consultation, our analyst conducts a preliminary audit to identify the processes and needs of your company, looks for possible solutions to increase speed, efficiency, convenience, and forms a vision for the future project.

Idea and consultation

Almost always, the idea that clients come to us with requires analysis and refinement. This work is necessary in order to clearly understand at the start what we have and in which direction to move, as well as to think through a strategy for creating the best product.

At this stage, we conduct market analysis of applications/web services on the selected topic, identify leaders and find examples of poor implementation, and determine the criteria for their success or failure. We study competitors' products from the point of view of interface solutions, end-user orientation, how the service fulfills its goals and objectives, and identify their advantages and disadvantages.

We project the acquired knowledge onto the future application, form an idea of ​​the final product, users and their goals, and as a result we obtain a vision of the future project, recorded in the project vision document.

After consulting with our specialist, you will have a precise understanding of how to make the project work.

Let's get to work!

The development team evaluates the future CRM or ERP system, and we draw up a preliminary commercial proposal for development.

After drawing up the project vision of the project, our development team estimates the approximate labor costs for implementing the product. Based on the tasks and technological limitations, an estimate is made of the number of hours required to develop your product.

Based on the assessment received, a preliminary commercial proposal is formed, which includes a description of similar projects implemented by our company, the composition of the development team and the professional level of each participant, the cost of the entire project, broken down into development stages.

The contract will be based on the commercial proposal in the future.

3. DESIGN, BACKLOG AND DEVELOPMENT CONTRACT

After discussing the details of the project with the product owner, the customer and the team develop the solution architecture, describe the algorithms and work scenarios in the backlog for the entire project. We design interfaces and possibly develop designs. After this, a contract is signed with the customer.


* product owner – project manager


The Product Owner is responsible for the contents of the backlog, its ordering and accessibility to all project members. He is also responsible for maximizing the value of the product and the work performed by the team, so he continuously analyzes the development process and looks for ways to improve the product. This role can be performed either by a person from the customer’s side or by an employee of our company.


**backlog – a list of tasks for the development team that fully describe the project


The document is a hierarchical structure of user capabilities and technical requirements, ordered by priority of implementation; the more important functionality will be implemented before the rest. Each Backlog item is assigned a description, a serial number, an estimate of the amount of work, and a value. This allows you to calculate the final cost of developing the entire product.

The contract, first of all, ensures complete transparency of the work being carried out for the customer and allows him to control the development process at each stage. All stages are prescribed separately, which allows payment for the work performed upon delivery.

The backlog is a flexible document that allows the Customer to make even major changes to the product during development, because most innovative ideas are invented during the course of the project. Additional functionality is provided in the form of add-ons. agreements to the contract, which indicate whether the implementation of the changes made will shift the completion dates of the project stages.

Determine, together with the client, those tasks that need to be implemented in the upcoming sprint.

The heart of Scrum* is the Sprint**, lasting one or two weeks, during which a potentially production-ready part of the product is created.


*Scrum is a flexible development methodology that we use to conduct projects

** Sprint stage within which a certain part of the project is implemented


Typically, the Sprint duration is constant throughout the development period. The next Sprint begins immediately after the end of the previous one.

A sprint consists of a list of what features need to be developed and a flexible plan that guides the work of the project. The resource for sprint planning is the Product Backlog.

The scope of work for the upcoming Sprint is determined during Sprint planning through the collaboration of the entire team.

When planning a Sprint, the team answers the following questions.

Currently, many entrepreneurs are concerned about the issue of comprehensive business automation, in particular, the implementation of a CRM system. Such interest in such solutions is determined, first of all, by the high returns from their use, as well as by the increased level of transparency of all the company’s business processes.

Today there are a large number of CRM solutions on the market (including “pseudo” CRM systems), which are created on the basis of various CMS, warehouse and accounting programs. Having sometimes looked at a dozen such systems, a certain part of businessmen comes to the conclusion that there is no ideal solution for their problems on the market and thinks about writing a CRM system for themselves from scratch. This article is dedicated precisely to such people who have already decided to take this bold action or are just beginning to think about it.

Extensive experience in implementing CRM systems in Russian companies allows me to highlight several key aspects among the reasons why you should not write a CRM system from scratch.

CRM project team

To write a complex information system you will need a staff of highly qualified employees. If you think that hiring just one programmer will be enough, you are deeply mistaken.

To work on the project you will need at least 3 people: solution architect, programmer, Maker-up designer. If, in addition, you want the created program to be convenient to work not only for your programmer, but also for other employees, you will need usability specialist. And in order for you to feel comfortable working in the program and not have to call the programmer with endless requests" fix the bug here"and questions" What is this debug message that popped up?", include in the team tester. Total: For a serious project you need 5 people.

If you decide to save money on someone, you may lose significantly on the quality of the product or not launch the project at all.

Another aspect is the qualifications of the hired personnel. If you have no experience in the IT field, then it will be quite difficult for you to find worthy candidates for your project team. After five years of working in the IT business, I can say frankly that every second programmer who comes to you for an interview will assure you that he is a genius in programming and his lines of code are in no way inferior to the poems of Pushkin or Yesenin.

Also don't forget about project manager, usually the entrepreneur himself assumes this role. But in the absence of experience in leading a group of developers, all good undertakings can come to naught. We leave the issue of employee salaries behind the scenes.


The way out of this situation is to contact an IT company, which will implement your CRM project within the specified time frame.

Time to implement a CRM project

Time is an important factor in any project, and an IT project is no exception. When planning a project, it is very important to clearly define the deadlines and stages of the project. It is also mandatory to record project milestones. If you do not control the progress of the project, it can drag on for months, and in some cases, years.


If you are not an IT specialist, then in 99% of cases you will hear the same thing from your employees: “I’m doing it” and then thousands of excuses as to why the project deadlines are being delayed: “I added a beautiful button,” “I sped up the work.” programs", "I have improved the order module." Your employees clearly understand that the longer they work on a project, the longer they will work for you and receive more money.

They will not care at all that you are losing time and, accordingly, money from delaying the delivery of the project. In addition, a situation may arise that by the time you finally manage to obtain the final version of the program, it will already be obsolete and more modern and scalable solutions will appear on the market. And your business will change during this period: people will change, business processes will transform. Or maybe you decide to start a different type of business altogether.

Documentation

One of the important components of any project is documentation. You will need at least 2 types of documentation: for developers and for users. If you think that your programmers will be happy to write them, you are mistaken.

Every programmer is confident deep down in his soul that his code is so beautiful, transparent and flawless that no documentation is required. And even a child can work in the program - " Why document anything else here? We have the perfect program"In modern IT companies, this responsibility is assigned to technical writers who describe the program code and also document in detail the functionality of the finished program.

Experience in implementing a CRM system

Another important aspect when developing a corporate information system is the positive experience of project implementation. This experience cannot be bought, it accumulates only in the process of work. Accordingly, when developing a system, your project team will repeatedly step on the same rake, they will endlessly “reinvent the wheel,” etc. As a result, the entrepreneur may not get what he wanted. In this case, there will be no one to make a claim - " We all worked together. We wanted the best, but it turned out as always"The advantage of cooperation with an IT company is precisely gaining positive experience in implementing similar projects.

Risks of a CRM project

When implementing any project, there are always certain risks that you should not turn a blind eye to. The biggest risk is losing the core of the team. It may happen that after a certain period of time working on a project, due to some unimaginable circumstances, the key programmer on whom everything rests leaves you. At the same time, as a rule, it leaves behind an unfinished program, which is 100 times more difficult for another programmer to understand than to write the same thing from scratch. Therefore, when hiring, you should pay special attention to how much a programmer can understand someone else’s code.

The next risk is directly related to the operation of the program. At a certain stage of development, it may become clear that the functioning of the program under certain conditions (large database, large number of users, etc.) becomes simply impossible - the program begins to freeze and produce various errors. If the problem cannot be resolved promptly, the project can be considered a failure or additional time and money will be required to upgrade the system core. When purchasing a ready-made circulation solution, these risks are reduced to zero.


In conclusion, I once again want to emphasize the idea that developing a CRM system yourself is much more difficult, longer, more expensive and riskier. If you have the task of implementing an information system, it is better to turn to professionals. You can easily spend the saved effort, money and time on developing your business.