Действие "Поиск в базе CRM" позволяет найти сущность в CRM по содержимому ее полей.
Параметры действия
Что искать в базе CRM:
Указывается тип сущности, которую нужно найти.
- Лид
-
Контакт
-
Компания
-
Сделка
Условия поиска
Позволяют задать разные вариации значений свойств для выполнения поиска.
Например, можно найти последнюю сделку по компании из чата, задав следующие параметры:
Будьте внимательны при поиске "из чата". Если компании в чате не будет в указанном выше примере, то поиск найдет все сделки без компании в данном случае.
Записать результат в переменную:
Сохранить найденную сущность в переменную, чтобы в дальнейшем с ней работать. Переменная должна иметь тип "Связь с сущностью CRM".
Если найдено несколько сущностей:
Указывается, какую из найденных сущностей сохранить, если их больше одной.
-
С большим ID - чат-бот выберет из всех найденных сущностей ту, у которой ID больше остальных найденных.
-
С меньшим ID - чат-бот выберет из всех найденных сущностей ту, у которой ID меньше остальных найденных.
Связать найденную сущность с чатом:
Если параметр включен, чат-бот запомнит эту сущность и будет в дальнейшем её использовать. Важный момент! Если Битрикс24 ранее уже связал другую сущность аналогичного типа с чатом - чат-бот будет считать основной именно её, а не ту, которая будет найдена. Имеет смысл включать этот параметр, если Битрикс24 ещё ничего не нашёл сам или если у вас выключен чат-трекер. Иначе лучше записывать найденную сущность в переменную и работать с переменной.
Несколько примеров
Пример 1
Предположим, что нам нужно найти последнюю сделку по контакту из чата. При этом мы точно уверены, что контакт в чате будет (мы либо его ранее нашли/создали и создали с чатом или уверены, что битрикс24 его свяжет).
Но сделок у контакта может быть несколько (а может вообще не быть), а нам нужна самая последняя (т.е. та у которой ID больше).
Добавляем действие "Поиск в базе CRM":
- Что искать в базе CRM - Сделка.
- Условие поиска - Контакт = Контакт из чата (ищем сделку по связанному с ней контакту).

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