Синхронизация записи из Клиентикс CRM в amoCRM


В данной статье рассмотрим пример синхронизации записи из Клиентикс в amoCRM.

Авторизация сервиса Клиентикс в MoreKit

Добавление Клиентикс CRM как сервис в MoreKit

Для начала необходимо добавить сервис Клиентикс в MoreKit, чтобы стали доступны функциональные блоки.
Для добавления сервиса необходимо перейти по ссылке https://klientiks.ru/clientix/settings/account, слева выбрать раздел API. Если галочка «Включить api» неактивна, активировать ее.

Создание процесса в MoreKIT.

Создаем процесс в MoreKIT с типом «Другое».

Для получения данных из Клиентикс CRM в MoreKit нам необходимо создать процесс с типом «Другое», на который мы будем отправлять события из клиентикс

После создания процесса копируем ссылку в первоначальном блоке, она нам понадобится для указания URL, куда по которой Клиентикс отправит нам Webhook по событиям

Настройка отправки webhook из Клиентикс CRM

Установка webhooks

В Клиентикс CRM переходим по ссылке https://klientiks.ru/clientix/admin/eventHandlers
Здесь необходимо установить необходимые события, при наступлении которых из Клиентикс будет отправлять запрос в сервис MoreKit.
В ссылке будут присутствовать необходимые переменные, сервис позволяет назначить их.
В примере ссылка будет следующего вида:

  • Событие «Запись клиента на прием»
    https://ep.morekit.io/xxxxxxxxxxxxxxxxxxxx/?webhook_type=new_visit_record&client_id={{#client}}{{id}}{{/client}}&name={{#client}}{{name}}{{/client}}&phone={{client_phone}}&status_id={{#appointment}}{{status}}{{/appointment}}&visit_id={{#appointment}}{{id}}{{/appointment}}
  • Событие «Перенос визита, изменение длительности, изменение статуса»
    https://ep.morekit.io/xxxxxxxxxxxxxxxxxxxx/?webhook_type=change_visit_record&client_id={{#client}}{{id}}{{/client}}&name={{#client}}{{name}}{{/client}}&phone={{client_phone}}&status_id={{#appointment}}{{status}}{{/appointment}}&visit_id={{#appointment}}{{id}}{{/appointment}}

Проверка событий в MoreKIT

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

Переходим в «События» в нашем процессе в MoreKit. Мы должны увидеть события из клиентикс, их количество будет зависеть от того, сколько записей мы создали и сколько раз мы изменили запись.

После того, как мы убедились, что события нам приходят, можно приступать к выстраиванию логики процесса.

Настройка процесса в MoreKit

Выстраивание логической схемы

Выстроим следующий процесс, который будет создавать новый контакт и сделку, если запись создана и обновлять существующую сделку, если визит был изменен.

  • #14 — получаем визит из клиентикса, по которому происходит событие. В данном блоке мы сможем получить полный набор данных по визиту
  • #10 — выбираем пользователя из группы пользователей, необходимо для распределения визитов между менеджерами
  • #17 — Считаем общий бюджет всех услуг, которые есть в визите клиентикса. Здесь используется перебор с помощью цикла for, т.к. данные по услугам из клиентикса представлены массивом
  • #3 — очищаем телефон клиента от лишних символов
  • #9 — конвертируем дату из формата, который получаем со стороны Клиентикса под формат поля «Дата и время» в amoCRM
  • #4 — Проверяем тип веб-хука. Если webhook_type = new_visit_record, процесс пойдет по верхей ветке создания сделки, если придет хук по событию изменения визита, процесс пойдет по ветке обновления существующего визита.
  • #11 — выполняем поиск контакта по номеру телефона
  • #12 — если контакт не был найден, создаем новый контакт, заполняя необходимую информацию в нем
  • #13 — записываем контакт в переменную для удобства обращения к контакту далее в процессе
  • #16 — создаем сделку, заполняем конвертированную дату, подсчитанный по услугам бюджет, назначаем ответственного за контакт менеджера
  • #18 — назначаем менеджеру задачу о новой записи
  • #19 — ищем сделку по visit_id, который приходит из клиентикса
  • #20 — обновляем найденную сделку нужными полями, которые необходимо обновить
  • #21 — создаем текстовое примечание об изменении

На этом настройка первого процесса закончена, данный процесс будет отвечать за обновление или создание сделки, в зависимости от типа webhook со стороны Клиентикс.

Создаем второй процесс

Теперь необходимо создать второй процесс, который будет делать обратное, по событию в amoCRM обновлять запись в Клиентикс. В данном примере обновление будет происходить по флагу «передать в клиентикс».
Если менеджер активирует данный флаг — процесс сработает и запись в клиентикс обновится.

Создание процесса с типом amoCRM вебхук

Добавим ссылку в amo маркет по событию изменения сделки, в первоначальном блоке выставив условие для старта процесса, чтобы процесс отрабатывал только когда наш флаг передачи в клиентикс активен.

Проверяем, что все сделано правильно. При активном флаге должно прийти событие, если флаг выключен, то событие не придет. Данный фильтр в первоначальном блоке необходимо подстроить под свою логику.

Построение логической схемы

Построим следующую схему, которая будет обновлять дату записи в Клиентикс, она была изменена в сделке в amoCRM.

Описание блоков сделки:

  • #2 — Выполняем поиск сделки по ID для доступа к полям сделки
  • #11 — Конвертируем дату из формата amoCRM под формат, который нужен для обновления даты в Клиентикс CRM
  • #12 — Получаем визит в Клиентиксе по ID визита, записанному в нашей сделке
  • #13 — Редактируем дату записи в режиме одиночной записи, передавая в поля даты конвертированную дату
  • #14 — После редактирования снимаем флаг в сделке в amoCRM
  • #15 — Создаем примечание в сделке об успешном редактировании

Теперь при изменении записи в Клиентиксе — запись создастся или обновится в amoCRM. Если менеджер захочет передать новые данные записи, он активирует флаг передачи и запись обновится на стороне Клиентикса.