Битрикс24. Открытые линии с Роистат
Пошаговое руководство актуально тем, кто использует Битрикс24, Виджет "Открытые линии" и Роистат.
Если посетитель пишет в чат Открытых линий на вашем сайте, то код роистат никак не передается в Битрикс, и поэтому все обращения из чата открытых линий будут не размечены, и отображаться в роистат не правильно.
Мы разобрались в проблеме и придумали решение.
Общая схема такая:
1. Когда пользователь пишет в чат, мы передаем в дополнительное поле чата идентификатор роистат
2. Настраиваем бизнес-процесс в Битрикс24, которые при создании лида, отправляет к нам текстовый идентификатор чата
3. Мы через по этому текстовому идентификатору чата получаем ID чата
4. По ID чата получаем полный текст чата
5. В тексте чата находим наш параметр с идентификатором Roistat
6. Обновляем лид в битрикс24, дописывая в него идентификатор Roistat
Шаг 1. Установка кода виджета на сайт
Нужно установить код виждета и дополнительный код, который будет отправлять параметр роистат. При этом все это должно сработать только после загрузки кода роистат.
После этого будет в виджет будет отправляться код роистат.
<script>
<!-- Все коды должны срабатывать, только когда роистат уже загрузился -->
window.onRoistatModuleLoaded = function () {
<!-- Bitrix24 Widget -->
(function(w,d,u){
var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0);
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
})(window,document,'https://cdn-ru.bitrix24.ru/b8391289/crm/site_button/loader_7_pktlze.js');
<!-- Bitrix24 Widget -->
<!-- Bitrix24 Widget Дополнительный код -->
window.addEventListener('onBitrixLiveChat', function(event) {
var widget = event.detail.widget;
widget.setUserRegisterData({
'position': roistat.visit
});
});
<!-- Bitrix24 Widget Дополнительный код -->
};
</script>
Шаг 2. Создайте обработку в Webjack
Создайте в Webjack обработку с источником данных HTTP-запрос, со следующими параметрами
Более подробные инструкции про HTTP-запросы можно найти тут https://help.webjack.ru/page/service/input/8/?root=5
Скопируйте url-адрес веб-хука, он нам пригодится в дальнейшем
Шаг 3. Настройка бизнес-процесса в Битрикс24
Нужно создать бизнес процесс, который бы срабатывал при создании лида в Битрикс24.
Найти бизнес процессы можно по ссыле https://ваш_домен_битрикс.bitrix24.ru/crm/configs/bp/CRM_LEAD
Добавьте в параметрах переменную с именем "chat_text" типа "Строка"
И создайте вот такую схему безнес-процесса:
Где условие настроено вот так:
Действие изменени переменных настроено вот так: {{=substr({{Онлайн-чат (текст)}},5,50)}}
Отправка на Webhook настроена вот так:
Где адрес, выделенный красным, надо заменить на ваш адрес вебхука в Webjack
Шаг 4. Создайте входящий вебхук в Битрикс24
Перейдите в меню "Приложения" --> "Разработчикам"
Дайте необходимые права для этого вебхука
Шаг 5. Настройка действий в обработке Webjack
Необходимо настроить следущие действия:
HTTP-запрос. Получение ID чата
Адрес: https:/ваш_домен_битрикс.bitrix24.ru/rest/ваш_адрес_вебхука/im.chat.get
И параметры
ENTITY_TYPE: LINES
ENTITY_ID: Параметр chat_text
Действие JSON-парсер. Извлекаем ID чата
В поле JSON - указываем ответ от предыдущего шага
Добавляем параметр
chat_id: ["result"]["ID"]
Действие. HTTP-запрос. Получаем весь текст чата
Метод: POST
Адрес: https:/ваш_домен_битрикс.bitrix24.ru/rest/ваш_адрес_вебхука/im.dialog.messages.get.json
Параметры:
DIALOG_ID: chat{Поле "chat_id" извлеченное на предыдущем шаге}
Действие JSON-парсер. Извлекаем поле с идентификатором Roistat
JSON: Здесь указываем содержимое ответа предыдущего шага
Параметры:
roistat: ["result"]["users"][0]["work_position"]
Действие Добавление лида в CRM Bitrix
Обновляем данные лида в битрикс.
Указываем, что необходимо искать лид по его ID. Для этого в поле ID указываем значение lead_id, которое нам присылал битрикс.
Указываем, что в поле roistat необходимо передавать найденный нами идентификатор roistat.
Сохраняем и запускаем обработку
После этого
- при каждом создании лида, битрикс будет присылать нам уведомления об этом.
- Webjack будет находить код roistat в диалоге
- Webjack будет обновлять лид, записывая этот код в нужное поле