Creation of a CRM system based on 3 services

Task and requirements

The essence of the project is the creation of a CRM system for a service that has its own BP (Business Process). Project requirements: to develop a system based on shareware services and technologies that are popular in the market.

Research and Development

The work begins with the formation of TK and a work plan.

  1. Studying a client BP
  2. Creating a plan for automating the interaction between services used by the client
  3. Creating a model of interaction through a central service
  4. Drawing up a step-by-step plan for the implementation of the project

Creation of a central service

The team studied the operation of the API services and formed a plan for interacting with them through the central API service, so that the data is aggregated and updated on the central service, which in turn will be responsible for updating and updating the data on all dependent services.

Receive and send data by API

Working with data through the API is a classic way to get data on demand, usually this approach is used to keep data up to date.

Two ways to receive / send data:

  1. CRON or any other task scheduler
  2. Webhooks

In any case, it will be necessary to create a synchronization algorithm that can be run on demand to be 100% sure that we now have the latest data.

Interaction with HubSpot CRM via API and WebHooks

Since the project was based on an existing business process and the task was automation, the WorkFlow logical structure was recreated, which was configured by HubSpot CRM and used to conduct leads and deals.

Interaction with TeamGantt via API and WebHooks

The process of providing a service from beginning to end included a ramified technical process, which was formed on the principle of blocking tasks. The essence of working with the gant was to copy the project template at the moment when it was noted in HubSpot CRM that the project was in work. Thus, it was possible to divide the departments and not have a link.

In the same way, when performing all stages of the provision of the service, it was necessary to note in HubSpot CRM that the service was provided.

Interaction with Google.Disk via API and Google.AppS script

In the process of providing services to achieve certain stages in TeamGantt, it was necessary to create a project with a set of folders of a predefined structure in Google.Disk from a specific account.

The client wrote scripts on Google.AppScript with his own hands, because he made automation attempts because he had certain programming skills, but local optimization was not enough. In the process of analyzing these scripts, it was decided to process them, because the capabilities of Google.API allowed us to do more, they made it possible to take the dynamic structure of files and folders on Google.Disk as a basis and not be tied to a hard-coded structure, in the format as the client did before.


Creating interaction between services through a central service manager is BestPractice working with several APIs. This example demonstrates the potential of the capabilities that become accessible through connections to the API of some services for the implementation of other services.

Result of our work

The client received automation of his business. New opportunities in sharing responsibility and reducing necessary communication between departments.

There is no need to retrain staff for new software, because the most important part remains: the use of familiar services according to the usual workflow, and there is no need to purchase an extended subscription for services:

  1. HubSpot
  2. TeamGantt
  3. Google.Drive

The client’s approach to work involved the use of HubSpot as CRM, TeamGantt for managing projects and Google.Drive for working with files of relevant projects. It was necessary to achieve synchronization between services. When creating a new ticket on HubSpot, the corresponding project in TeamGantt was to be created. When working with the project, all changes, such as promotion in milestones, should have reflected on the ticket status in HubSpot.

The implementation of such a web application required a detailed study of the operation of both services and the APIs they provide. The non-trivial task of maintaining data consistency during synchronization was solved. This helps to avoid cases with a high load on the system due to the large amount of information or malfunctions in the scripts responsible for synchronizing.

To realize the possibility of automatic file creation in Google.Drive, a wide range of functionality provided by the Google.Cloud cloud platform was used. Google.AppScript was responsible for working with files, and the Google.Cloud project ensured the safety of its work.

The result of our work was a web application with a simple and intuitive interface that allows the client to get the desired result with just a few clicks.