В данной статье рассмотрим, как можно синхронизировать сделки между amoCRM и Bitrix24.
Рассмотрим реализацию следующего кейса:
При переходе сделки на определенный этап в Bitrix24 — будем отправлять данные о ней в MoreKit, на основе этой сделки — создавать сделку в amoCRM. В amoCRM при нажатии на кнопку в сделке — отправлять актуальные данные о сделке назад в Bitrix24.
Данный кейс может подойти если вам нужно синхронизировать/перенести сущности между системами
Подключение сервисов
Для начала — подключим необходимые сервисы в MoreKit, нам понадобится amoCRM и Bitrix24.
Подключение Bitrix24 в Morekit
Перед добавлением сервиса bitrix24 в morekit, необходимо установить приложение MoreKit в маркетплейсе. Для установки приложения требуется подписка на маркетплейс Bitrix24

После установки приложение MoreKit в маркетплейс bitrix24, можно приступать к добавлению сервиса в Morekit. Для этого в проекте нажмите Добавить сервис, найдите в списке Bitrix24. При подключении сервиса будет запрошена ссылка на ваш битрикс24

Введите ссылку в формате https://мой-домен.bitrix24.ru. После этого произойдет редирект на страницу с вашим битриксом, подтвердите авторизацию
Если все правильно — сервис появится в списке сервисов и у него будет статус Готово

Подключение сервиса amoCRM в MoreKit
По аналогии, ищем в списке сервисов amoCRM, нажимаем на кнопку Добавить, произойдет перенаправление на страницу переадресации amoCRM, где необходимо выбрать нужную CRM, которую надо подключить в MoreKit


Создаем процесс в MoreKit
Следующим шагов — создадим процесс для приема данных из Bitrix24. Создать процесс можно с типом Битрикс24 отправка роботом или Другое
Данный процесс будет принимать запрос из Битрикса для отправки в amoCRM

После создания процесса — в первоначальном блоке будет ссылка. Копируем ее, она понадобится для настройки триггера в Bitrix24
Создаем триггер в Bitrix24 и настраиваем поля
Настроим триггер в Bitrix24 через бизнес-процесс и создадим поля для обратной синхронизации. В данном кейсе — отправка будет происходить при переходе сделки на определенный этап воронки (триггер у вас может быть свой).
После переноса сделки в amoCRM заполним в сделку битрикса ID сделки в амо для обратной связи.
Создадим триггер на нужном этапе воронки

Создаем Бизнес-процесс, в качестве отправляемых данных достаточно передать ID сделки. Указывается переменные параметры после ссылки
https://ep.morekit.io/xxxxxxxxxxxx?element_ID={{ID элемента CRM}}&ID={{ID}}

Сохраним Бизнес-процесс и проверим, придут ли данные на наш процесс. Нужно переместить сделку на этап, в котором установлен триггер, далее в процессе зайти в События

Если триггер установлен корректно — увидим событие. Если развернуть входящие данные события, увидим данные по сделке, которая перешла на этап

Выстраиваем схемы передачи из Битрикс 24 в amoCRM
Схема будет выглядеть следующим образом

Данная схема будет:
- Искать сделку в amoCRM по полю ID сделки в б24
- Если сделка была найдена — обновлять бюджет сделки
- Если сделка не нашлась — искать контакт в amoCRM по email или номеру телефона
- Создавать новый контакт, если контакт не нашелся в системе
- Создавать новую сделку к найденному или созданному контакту, заполняя бюджет сделки
Описание блоков схемы

#1 Найти сделки — получаем полные данные о сделке по ID из триггера во входящих данных

#2 Найти контакты — получаем существующий контакт из Битрикс24

#8 Найти сделки — ищем сделку в amoCRM по полю ID сделки в б24

#9 Обновить сделку — обновляем найденную сделку в amoCRM. В качестве обновляемых полей — бюджет. Добавляйте свои нужные поля, которые нужно синхронизировать между системами в данный блок

#3 Найти контакты — ищем существующий контакт в amoCRM по номеру телефона контакта в б24

#5 Найти контакты — ищем существующий контакт в amoCRM по email адресу

#6 Создать контакт — создание нового контакта в amoCRM с заполнением email и телефона

#7 Создать сделку — создает сделку в amoCRM. Заполняется бюджет, ID сделки в б24, прикрепляется контакт
Проверка
Перенесем сделку из б24 на этап, где установлен триггер

Видим, что пришло событие в MoreKit и процесс отработал

В amoCRM видим, что сделка создалась

Проверяем заполненность полей в сделке

Как видим — все успешно, сделка перенеслась в amoCRM. Теперь проверим, как работает обновление. Изменим бюджет в сделке и переместим на этап триггера снова

Бюджет в amoCRM также поменялся

Как видим — все работает. Если сделки ранее не было — она создается, если была — обновляется
Процесс обратной передачи
Процесс обратной передачи будет построен за счет активации флага
Пользователь активирует флаг переноса внутри сделки amoCRM, ищется сделка в б24, обновляются данные
Создаем процесс
Процесс будет запускаться по хуку из amoCRM маркета. В moreKit нужно создать процесс с типом amoCRM вебхук

В первоначальном блоке копируем ссылку на процесс, идем в amoCRM маркет для установки веб-хука

Процесс будет выглядеть следующим образом:

Данная схема делает следующее:
- Ищет сделку в amoCRM по ID из входящих данных
- Ищет контакт из сделки
- Ищет сделку в б24 по ID. В качестве значения подставляем ID сделки б24 из поля в амо
- Редактирует сделку, обновляя бюджет
- Снимает флаг переноса
Описание блоков схемы

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

#1 Найти сделки — ищем сделку по ID из входящих данных

#2 Найти контакты — ищем контакт из компании/сделки

#3 Найти сделки — ищем сделку в б24, которую будем редактировать

#4 Редактировать сделку — изменяем бюджет в сделке б24. Если вам нужно изменить еще какие-либо поля, добавьте их в блок

#5 Обновить сделку
Снимаем флаг переноса в amoCRM
Проверяем работоспособность
Изменим в сделке бюджет, поставим флаг и посмотрим результат

Проверяем в Битрикс24

Как видим — бюджет изменился, все сработало корректно

в amoCRM флаг также снялся

В событии также ошибок нет
Подводим итоги
В данной статье рассмотрели — как можно передавать данные между системами разными методами
В случае передачи данных из Битрикс24 выполнялся бизнес-процесс. При создании сделки в amoCRM заполнялся ID сделки в б24 для будущей связи
В случае передачи в обратную сторону — активация переноса по флагу
Данный метод передачи подходи для:
- Синхронизации сущностей между системами
- Переноса сущностей из одной системы в другую