Создание CRM системы на основе 3х сервисов

Задача и требования

Суть проекта - это создание CRM системы под услугу, у которой есть свой БП (БизнессПроцесс). Требования к проекту: разработать систему на основе условно бесплатных сервисов и технологий, которые популярны на рынке.

Research and Development

Работа начинается с формирования ТЗ и плана работ.

  1. Изучение БП клиента
  2. Создание плана автоматизации взаимодействия между сервисами, которыми пользуется клиент
  3. Создание модели взаимодействия через центральный сервис
  4. Составление пошагового плана реализации проекта

Создание центрального сервиса

Команда изучила работу API сервисов и сформировала план взаимодействия с ними через центральный сервис по API, таким образом чтобы данные агрегировались и актуализировались на центральном сервисе, который в свою очередь будет отвечать за модификацию и актуализацию данных на всех зависимых сервисах.

Получение и отправка данных по API

Работа с данными через API - это классический способ получения данных по требованию, обычно данный подход используют для того, чтобы держать актуальными данные.

Два способа получать/отправлять данные:

  1. CRON или любой другой планировщик заданий
  2. Webhooks (ВебХуки)

В любом случае будет необходимо создавать алгоритм синхранизации, который запускать по требованию, чтобы быть на 100% уверенным, что сейчас у нас самые свежие данные.

Взаимодействие с HubSpot CRM через API и ВебХуки

Так как в основе проекта лежал уже существующий бизнесс процесс и задачей была автоматизация, то была воссозданна логическая структура WorkFlow, которую была настроили HubSpot CRM и использовалась для ведения лидов и сделок.

Взаимодействие с TeamGantt через API и ВебХуки

Процесс предоставления услуги от начала до конца включал разветвленный тех.процесс, который был сформирован по принципу блокирующих задач. Суть работы с гантом была в копировании шаблона проекта в моментк когда в HubSpot CRM отмечалось что проект в работе. Таким образом можно было разделить отделы и не иметь связующее звено.

Таким же самым образом при выполнении всех стадий предоставления услуги необходимо было отметить в HubSpot CRM, что услуга предоставленна.

Взаимодействие с Google.Disk через API и Google.AppScript

В процессе предоставления услуги по достижению определенных этапов в TeamGantt необходимо было создавать проект с набором папок предопределенной структуры в Google.Disk от определенного аккаунта.

У клиента были написанны собственноручно скрипты на Google.AppScript, потому как он предпринимал попытки автоматизации так как обладал определенными навыками программирования, но локальная отптимизация оказалась недостаточной. В процессе анализа данных скриптов было принято решение переработать их, потому как возможности Google.API позволяли сделать больше, они позволяли взять за основу динамическую структу файлов и папок на Google.Disk и не привязываться к жестко запрограммированной структуре, в формате как делал клиент ранее.

BestPractice

Создание взаимодействия между сервисами через центральный менеджер-сервис является BestPractice в работе с несколькими API. Данный пример демонстрирует потенциал возможностей, которые становяться доступы через подключения к API одних сервисов для реализации других сервисов.

Результат нашей работы

Клиент получил автоматизацию своего бизнеса. Новые возможности в разделении ответсвтенности и снижении необходимой коммуникации между подразделениями.

Не нужно переучивать персонал на новое ПО, потому как осталась важнейшая часть: использование привычных сервисов по привычному workflow и при этом нет необходимости в приобретения расширенной подписки для сервисов:

  1. HubSpot
  2. TeamGantt
  3. Google.Drive

Подход клиента к работе предполагал использование HubSpot в качестве CRM, TeamGantt для ведения проектов и Google.Drive для работы с файлами соответствующих проектов. Необходимо было добиться синхронизации между сервисами. При создании нового тикета на HubSpot должен был создаваться соответствующий проект в TeamGantt. При работе с проектом, все изменения, такие, как продвижение по майлстоунам, должны были отражаться на состоянии тикета в HubSpot.

Реализация такого веб-приложения потребовала детального изучения работы обоих сервисов и предоставляемых ими API. Была решена нетривиальная задача сохранения консистентности данных при синхронизации. Это помогает избегать случаев с высокой нагрузкой на систему из-за большого объема информации или сбоев в работе отвечающих за синхронизацию скриптов.

Для реализации возможности автоматического создания файлов в Google.Drive был задействован широкий спектр функциональности, предоставляемой облачной платформой Google.Cloud. За работу с файлами отвечал Google.AppScript, а проект Google.Cloud обеспечивал безопасность его работы.

Итогом нашей работы стало веб-приложение с простым и понятным интерфейсом, которое позволяет клиенту получать нужный результат, лишь сделав несколько кликов.