Поиск в базе CRM

Действие "Поиск в базе CRM" позволяет найти сущность в CRM по содержимому ее полей.


Параметры действия

Что искать в базе CRM:
Указывается тип сущности, которую нужно найти.
  • Лид
  • Контакт
  • Компания
  • Сделка

Условия поиска
Позволяют задать разные вариации значений свойств для выполнения поиска.
Например, можно найти последнюю сделку по компании из чата, задав следующие параметры:

Будьте внимательны при поиске "из чата". Если компании в чате не будет в указанном выше примере, то поиск найдет все сделки без компании в данном случае.

Записать результат в переменную:
Сохранить найденную сущность в переменную, чтобы в дальнейшем с ней работать. Переменная должна иметь тип "Связь с сущностью CRM".

Если найдено несколько сущностей:
Указывается, какую из найденных сущностей сохранить, если их больше одной.
  • С большим ID - чат-бот выберет из всех найденных сущностей ту,  у которой ID больше остальных найденных.
  • С меньшим ID - чат-бот выберет из всех найденных сущностей ту,  у которой ID меньше остальных найденных.

Связать найденную сущность с чатом:
Если параметр включен, чат-бот запомнит эту сущность и будет в дальнейшем её использовать. Важный момент! Если Битрикс24 ранее уже связал другую сущность аналогичного типа с чатом - чат-бот будет считать основной именно её, а не ту, которая будет найдена. Имеет смысл включать этот параметр, если Битрикс24 ещё ничего не нашёл сам или если у вас выключен чат-трекер. Иначе лучше записывать найденную сущность в переменную и работать с переменной.

Несколько примеров

Пример 1

Предположим, что нам нужно найти последнюю сделку по контакту из чата. При этом мы точно уверены, что контакт в чате будет (мы либо его ранее нашли/создали и создали с чатом или уверены, что битрикс24 его свяжет).
Но сделок у контакта может быть несколько (а может вообще не быть), а нам нужна самая последняя (т.е. та у которой ID больше).

Добавляем действие "Поиск в базе CRM":
  • Что искать в базе CRM - Сделка.
  • Условие поиска - Контакт = Контакт из чата (ищем сделку по связанному с ней контакту).

  • Записать результат в переменную - Мы планируем работать с этой сделкой дальше, поэтому записываем её в переменную.
  • Если найдено несколько сущностей - С большим ID  (так как нам нужна последняя сделка контакта).
  • Связать найденную сущность с чатом - данный параметр в нашем примере оставим выключенным.



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

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




И если нашли, то выведем ее ID в чат (для этого достаточно вставить переменную в текст сообщения).


а если не нашли, то напишем об этом:

Отладка и примеры результатов

Информацию о результатах поиска при тестировании чат-бота можно и нужно проверять в отладочных сообщениях бота.

Например, у следующего клиента сделок много и чат-бот нашёл одну из них:



У следующего клиента есть контакт, но нет сделок. Обратите внимание, что в отладочной информации результат действия "Поиск в базе CRM" = "Выполнилось". Потому что не возникло никаких ошибок в процессе поиска, хотя сам поиск ничего не нашел:



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




Пример 2

Предположим, нам нужно найти компанию клиента по ИНН. 

Для этого для начала попросим клиента указать ИНН компании и сохраним его в переменную.



Добавляем действие "Поиск в базе CRM":
  • Что искать в базе CRM - компания.
  • Условия поиска - Свойство ИНН сравниваем с переменной INN (ищем компанию в которой значение поля ИНН равно значению переменной ИНН).
  • Записать результат в переменную - мы планируем работать с этой компанией дальше, поэтому записываем её в переменную.
  • Если найдено несколько сущностей - с большим ID (Это для примера. В реальности может оказаться, что правильнее брать с меньшим ID).
  • Связать найденную сущность с чатом - связываем.



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



В итоге получаем два узла - запрос ИНН и поиск компании по этому ИНН.




Чат-бот просит клиента написать ИНН.



Но клиент указывает его с ошибкой, либо у нас в базе просто не сохранена компания с таким ИНН. В итоге переменная остаётся незаполненной.



В этот раз клиент указал верный ИНН и чат-бот нашёл компанию с ним.