Изначально мы хотели сделать шесть отдельных приложений и каждое из них развивать отдельно, с описанием, скринами, видео. Но правила маркетплейса Bitrix24 заставили объединить их в один бандл, в одну коллекцию. О ней сегодня и поговорим. Принцип работы у всех шести роботов одинаковый, поэтому я разберу одно приложение, а вы поймете логику всех.
В Bitrix24, конечно, есть поиск и штатные роботы. Но часто поиск нужен как промежуточный этап, чтобы передать результаты следующему роботу или бизнес-процессу. Например, нам нужно быстро получить общее число найденных элементов: сколько задач по таким-то условиям, сколько сделок, сколько компаний. Эти цифры можно выводить себе в Telegram с помощью нашего приложения для отправки сообщений или накапливать для дашбордов, или отдавать ответственным сотрудникам, чтобы они видели, сколько у них сейчас задач или сделок.
Третий результат — самый ранний элемент, то есть минимальный ID. Это нужно, например, при поиске дублей. Допустим, есть две одинаковые компании, по обеим уже есть история. Надо понять, какую считать основной. Как правило, оставляют ту, что создана раньше. Самый маленький ID и есть самая старая сущность. Дальше можно уведомить ответственных, договориться, как объединять поля, что оставить, что перезаписать.
Итак, у нас три результата: общее количество найденных элементов, массив ID и самый маленький ID.
Покажу пример. Предположим, мне нужно найти задачи с определенным названием. Можно добавлять несколько фильтров — хоть десять, если надо. Например, задачи с таким названием и в статусе «в работе».
Поля подгружаются автоматически — и стандартные, и пользовательские. Названия тоже отображаются корректно, даже если пользовательские поля имеют технические названия.
Иногда выборка большая — робот обрабатывает элементы пачками по 50 штук, поэтому может занять пару секунд. Если комментарий не появился, достаточно обновить страницу.
В моем примере сначала ничего не находилось. Оказалось, что дело в правах доступа. Метод поиска по задачам очень жестко привязан к правам пользователя. Как админ я вижу все задачи, но если ставлю фильтр, например «в работе», это уже задачи между сотрудниками, где я не участвую, и обычный список задач такие мне не покажет. Чтобы видеть такие задачи, нужно включать фильтр «показать задачи, в которых я не участвую». Поэтому робот, запущенный от моего имени, возвращал ноль результатов.
Это частая причина жалоб: «приложение не работает». В итоге оказывается, что робот запускается от пользователя без доступа к сущностям. Особенно важно, когда речь о сделках — если пользователь не может их редактировать, робот тоже не сможет.
Поэтому лучше запускать все роботы от технического пользователя с максимальными правами — так админы могут меняться, а технический аккаунт остается.
Это был самый длинный обзор из всех, но здесь, по сути, шесть приложений в одном. Если что — пишите прямо в виджет на маркетплейсе, сообщение попадет ко мне. Я Юрий Павлюк, команда Digital for Sales. Пусть наши приложения приносят пользу вашему бизнесу. До встречи.
