Как определить открытую линию с помощью источника

В настройках открытой линии (далее ОЛ) на вкладке "Очередь" можно настроить источник для создаваемой сущности CRM.

Если для каждой ОЛ указать разные источники - по ним можно определить открытую линию и далее направить чат-бота по разным сценариям.


Проверить источник можно двумя способами:
  • Сохранить источник в переменную и далее проверять её в условии.
  • Проверить источник с помощью условия "Поле сущности CRM".

Не забывайте, что Битрикс24 не всегда создаёт сущности CRM при старте диалога, так как ему нужны для этого данные клиента. Подробнее об особенностях работы с сущностями CRM вы можете прочитать в разделе "Настройка сценариев, работа с редактором > Работа с CRM-сущностями".


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


Проверить источник с помощью условия "Поле сущности CRM".

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

На этот случай создаём действие "Запустить другой сценарий/узел" с условием "Сущность CRM" - "Определена сделка".



Для условия добавляем отрицание с помощью "Если не".




Если сущность есть - проверяем её источник с помощью условия "Поле сущности CRM":
  • Сущность CRM - сделка (так как в нашем случае Битрикс24 создаёт контакт + сделка, значит и проверять источник мы должны в сделке).
  • Проверять поле сущности из - из чата (Битрикс24 связывает созданную сделку с чатом).
  • Поле - источник.
  • Тип сравнения - совпадает с.
  • Значение - указываем источник, который указан в открытой линии (в данном примере для онлайн-чата это "Другое", а для телеграм "Телеграм"). 



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



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




Так, например, выглядит результат в телеграме. В телеграм сущности CRM создаются сразу при старте диалога, поэтому чат-бот смог определить источник.



А это уже результат из онлайн-чата в котором не создана сделка.
Условие "Определена сделка" не выполнилось, но из-за отрицания действие запуска другого узла наоборот выполнилось, а остальные условия в других действиях этого узла уже не проверяются, так уже был совершён переход в другой.



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




Сохранить источник в переменную и далее проверять её в условии.

На примере лида.



Сначала нужно сохранить источник в переменную:
  • Переменная - переменная, в которую будет записан источник. Тип переменной должен быть "Привязка к значению свойства типа Список".
  • Тип заполнения - значение.
  • Заполнить из - Заполнить из CRM.
  • Сущность CRM - лид (из какой сущности берётся значение).
  • Свойство - источник (из какого поля сущности берётся значение).
  • Взять сущность из чата/переменной - взять сущность из чата (если вы проверяете источник у сделки и сделок может быть несколько, то взять сущность лучше из переменной, т.е. предварительно вам нужно будет записать в переменную типа "связь с сущностью CRM" сделку).



Далее аналогично предыдущему примеру создаём действия с запуском другого узла, только на этот раз проверяем не поле сущности, а значение переменной в которую только что записали источник с помощью условия "Значение переменной".

Не забываем, что в онлайн-чате сущность CRM может быть ещё не создана, а значит переменная останется пустой. Проверяем её на заполненность.



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



Для остальных действий уже проверяем на совпадение с конкретным источником:
  • Переменная - указываем переменную в которую записали источник из лида.
  • Тип сравнения - совпадает с.
  • Сущность CRM - лид (так как в данном случае у нас создаётся и привязывается к чату лид, хотя в случае с источникам варианты одинаковые во всех типах CRM-сущностей)
  • Поле - источник (указываем поле с вариантами которого нам нужно сравнить значение переменной)
  • Значение - указываем источник, который указан в открытой линии (в данном примере для онлайн-чата это "Другое", а для телеграм "Телеграм"). 



Для каждой открытой линии - отдельное действие с условием.



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




В данном случае клиент написал в онлайн-чат, но лид не создан, поэтому действие "Заполнение переменной" выполнилось с ошибкой и переменная осталась не заполненной.



А здесь клиент написал в телеграм и Битрикс создал лид при старте диалога с указанным в настройках открытой линии источником. Так как сущность существует, действие "Заполнение переменной" выполнилось успешно.