В левом верхнем угулу (2) укажите название сценария, например: "Создание сделки в Битрикс 24 из записи Rubitime". Затем нажмите кнопку "Добавить" (3), в открывшемся окне выберите "Webhook" (4):
Скопируйте отобразившийся URL (5), нажав на него левой кнопкой:
В личном кабинете Rubitime перейдите в раздел "Настройки -> Получение и сохранение данных при помощи API" и вставьте скопированный URL, полученный на шаге 1.1 (5) в поле "Вебхук URL" (1), в блоке событий выберите только "Создание записи (event-create-record)" и нажмите кнопку "Сохранить настройки" (2):
В левом меню системы перейдите в раздел "Приложения -> Разработчикам" (1) и нажмите кнопку "Другое" (2):
Если Вы только зарегистрировались в системе, у Вас появится экран включения демо-тарифа и сообщение о том, что приложение доступно только на платных тарифах - нажмите "Включить Демо-тариф".
Нажмите кнопку "Входящий вебхук", скопируйте значение поля "Вебхук для вызова rest api" (3) и вставьте, например, в блокнот, ссылка понадобится позже. В разделе ниже "Настройка прав" (4) выберите "CRM", после нажмите кнопку "Сохранить":
Если Вы не используете дополнительные поля, данный пункт можно пропустить.
В Rubitime ID дополнительных полей идут от custom_field1 до custom_field10, по порядку (custom_field1, custom_field2, custom_field3 и так далее). В Битрикс24 перед передачей значений в дополнительные поля необходимо узнать их ID следующим образом - в левом меню системы перейдите в раздел "Приложения -> Разработчикам" (1) и откройте вкладку "Интеграции" (2):
Найдите во вкладке созданный Вами вебхук из шага 1.3, откройте его. Далее в блоке "Генератор запросов" выберите "crm.deal.fields" (3) и нажмите кнопку "Выполнить" (4):
Откроется новое окно, в котором отобразятся данные всех доступных полей Ваших сделок. Промотайте список в самый низ и найдите в нем поля вида "UF_CRM_xxx" (5), где xxx - уникальный номер:
Скопируйте полученные ID нужных Вам полей, например: UF_CRM_1703824067932 и UF_CRM_1703824019101.
Таким образом, мы сопоставили поля Rubitime и Bitrix, по типу:
custom_field1 - UF_CRM_1703824067932
custom_field2 - UF_CRM_170382401910
Возвращаемся в APInita к сценарию, созданному на шаге 1.1. Первым шагом у нас идет Webhook, который принимает входящие записи из Rubitime. Вторым шагом нужно создать HTTP-запрос, который проверит наличие клиента в базе Битрикса и если его нет, создать его, после чего уже создать саму сделку, привязав к ней клиента и дополнительные поля.
Первым делом необходимо получить данные самой записи, созданной в Rubitime для возможности работы с ними. Для этого включите сценарий (1) и создайте новую запись в журнале записей в Rubitime. Если все настройки, произведенные выше, выполнены корректно - Вы увидите зеленый индикатор справа от модуля Webhook и дату поступления данных (2):
Отключите сценарий (1) для возможности дальнейшего редактирования.
Rubitime отправляет вебхуки при 3 событиях: создание, обновление и удаление данных. Хоть в пункте 1.2 мы и выбрали только событие создания записи - дополнительно, на всякий случай, добавим фильтрацию при приеме данных, чтобы получать только новые записи. Нажмите "+" под 1 шагом (1) и выберите модуль IF, пропишите условие (2) и нажмите кнопку "Сохранить":
{{ s1.body.event == 'event-create-record' }}
Нажмите "+" под 2 шагом и выберите модуль HTTP. В открывшемся окне введите следующие данные:
URL запроса:
xxx/crm.contact.list.json
- где xxx - это URL, полученный из шага 1.3. (3). Например:
https://b24-4btk39.bitrix24.ru/rest/1/qkBrls3Hmw8tc511/
При этом полный адрес URL запроса будет таким:
https://b24-4btk39.bitrix24.ru/rest/1/qkBrls3Hmw8tc511/crm.contact.list.json
Поля запроса (ключ - значение # комментарий):
filter.PHONE - {{ s1.body.data.phone }} # номер телефона
Данный запрос либо вернет ID контакта, если такой есть в системе и соответственно не вернет, если нет.
Добавляем фильтр на наличие существующего контакта - нажмите "+" под 3 шагом и выберите модуль IF, пропишите условие и нажмите кнопку "Сохранить":
{{ s3.body.total > 0 }}
Добавляем фильтр на отсутствие существующего контакта - нажмите "+" под 4 шагом и выберите модуль IF, пропишите условие и нажмите кнопку "Сохранить":
{{ s3.body.total == 0 }}
После добавления 5 шага - перетащите его на один уровень с шагом 4, наведя курсор в правый нижний угол модуля и зажав левую кнопку мыши:
Нажмите "+" под 4 шагом и выберите HTTP-модуль, в открывшемся окне введите следующие данные:
URL запроса:
xxx/crm.deal.add.json
- где xxx - это URL, полученный из шага 1.3. (3).
Поля запроса (ключ - значение # комментарий):
fields.CONTACT_ID - {{ s3.body.result.0.ID }} # указываем ID контакта, полученного на шаге 3
fields.TITLE - Запись на {{ s1.body.data.record|date('d.m.y H:i') }} # указываем название сделки в виде "Запись на 22.03.2024 12:15"
fields.ORIGIN_ID - {{ s1.body.data.id }} # указываем ID записи, может потребоваться в дальнейшем для изменения или например удаления записи по ее номеру
fields.UF_CRM_1703824067932 - {{ s1.body.data.custom_field1 }} # значение дополнительного поля 1
fields.UF_CRM_170382401910 - {{ s1.body.data.custom_field2 }} # значение дополнительного поля 2
Нажмите "+" под 5 шагом и выберите HTTP-модуль, в открывшемся окне введите следующие данные:
URL запроса:
xxx/crm.contact.add.json
- где xxx - это URL, полученный из шага 1.3. (3).
Поля запроса (ключ - значение # комментарий):
fields.NAME - {{ s1.body.data.name }} # ФИО клиента
fields.PHONE.0.VALUE - {{ s1.body.data.phone }} # номер телефона
fields.PHONE.0.VALUE_TYPE - WORK # тип телефона указываем как "рабочий"
Нажмите "+" под 7 шагом и выберите HTTP-модуль, в открывшемся окне введите следующие данные:
URL запроса:
xxx/crm.deal.add.json
- где xxx - это URL, полученный из шага 1.3. (3).
Поля запроса (ключ - значение # комментарий):
fields.CONTACT_ID - {{ s7.body.result }} # указываем ID контакта, полученного на шаге 7
fields.TITLE - Новая запись и клиент! # указываем название сделки
fields.ORIGIN_ID - {{ s1.body.data.id }} # указываем ID записи, может потребоваться в дальнейшем для изменения или например удаления записи по ее номе
fields.UF_CRM_1703824067932 - {{ s1.body.data.custom_field1 }} # значение дополнительного поля 1
fields.UF_CRM_170382401910 - {{ s1.body.data.custom_field2 }} # значение дополнительного поля 2
Не забудьте после внесения всех изменений включить сценарий (шаг 1, кнопка 1).
Оставить комментарий