Произвольный REST-запрос к Битрикс24
Робот «Произвольный REST-запрос к Битрикс24» для Битрикс24: выполнение любых API-операций внутри бизнес-процесса без написания кода
Что делает
Робот выполняет любой метод REST API Битрикс24 прямо из конструктора бизнес-процессов и возвращает результат в переменные. Вы указываете название метода, параметры фильтрации и путь к нужным данным — робот делает всё остальное. Это самый гибкий инструмент в библиотеке: он не ограничен предустановленной логикой и позволяет автоматизировать буквально любую операцию, доступную через API.
Робот незаменим, когда стандартных действий не хватает. Например, нужно получить список всех пользователей портала, запустить бизнес-процесс на другом элементе, массово обновить реквизиты компаний или выгрузить данные для внешней системы. Без этого робота каждую такую задачу пришлось бы решать через написание отдельного приложения или скрипта.
Сценарии
Массовое обновление реквизитов компаний. В базе 200 компаний, и у всех изменился юридический адрес после переезда. Бизнес-процесс запускается по расписанию, через робота вызывает crm.company.list с фильтром по старому адресу, получает ID компаний, и для каждой вызывает crm.company.update с новым адресом. 200 карточек обновляются за один проход, без ручного редактирования.
Выгрузка просроченных сделок во внешнюю систему. Финансовый отдел хочет получать ежедневный отчёт по сделкам, где просрочен платёж. Бизнес-процесс через робота вызывает crm.deal.list с фильтром по стадии и дате, извлекает через JSONPath сумму и название каждой сделки, формирует JSON и отправляет его на webhook корпоративной учётной системы.
Запуск бизнес-процесса на связанной сущности. Сделка выиграна, и нужно запустить бизнес-процесс «Постпродажное обслуживание» на связанном контакте. Робот вызывает bizproc.workflow.start с ID контакта и шаблоном процесса — следующий этап автоматизации стартует без участия человека.
Получение списка полей смарт-процесса для динамической настройки. Бизнес-процесс должен работать с разными смарт-процессами, у которых разные наборы полей. Робот вызывает crm.item.fields для определения доступных полей, и следующий шаг динамически подстраивает логику: если есть поле «Сумма» — считает бюджет, если нет — пропускает. Это позволяет создать один универсальный процесс вместо десятка частных.
Настройка
Робот принимает пять параметров:
- METHOD — полное название метода API, например
crm.company.list,tasks.task.get,crm.item.update. Регистр важен. - FILTER — параметр фильтрации в формате JSON. Для метода
crm.company.listэто может быть{"=PHONE": "+79991234567"}. Если фильтр не нужен — оставьте пустым. - SELECT — список полей для выборки в формате JSON-массива:
["ID", "TITLE", "PHONE"]. Уменьшает объём ответа и ускоряет выполнение. - JSON_PATH — путь к данным в ответе API с использованием синтаксиса JSONPath. Например,
$.result[*].IDвернёт массив ID всех найденных элементов. Если не указан, возвращается весь ответ. - PAGINATE — флаг для получения более 50 элементов. При активации робот автоматически проходит по всем страницам ответа API, собирая полный список.
Важно: робот выполняет запрос от имени пользователя, запустившего бизнес-процесс. У этого пользователя должны быть права на соответствующие операции API.
Результат
Робот возвращает:
response— полный JSON-ответ API (сырые данные);result— данные, извлечённые по JSONPath (если путь указан);status—Yпри успешном выполнении запроса;error— текст ошибки, если API вернул ошибку.
Результат можно сразу использовать в следующих шагах: передать в условие, сохранить в поле сущности или отправить в уведомление.
Интеграция
«Произвольный REST-запрос» — это клей, соединяющий стандартные роботы с уникальными потребностями бизнеса:
- С любым роботом библиотеки: получили ID через поиск → передали в REST-запрос → обновили данные.
- С внешними системами: REST-запрос к API Битрикс24 → полученные данные → webhook во внешнюю CRM.
- С условиями:
status = Yиresultсодержит нужное значение → ветвление логики. - В циклах: обход всех элементов → REST-запрос для каждого → накопление результатов.
Ошибки
| Ошибка | Причина | Решение |
|---|---|---|
| Метод не найден (404) | Неправильно указано название метода или регистр символов | Проверьте название метода в документации REST API Битрикс24; все методы чувствительны к регистру |
| Ошибка доступа (403) | У пользователя, запустившего процесс, нет прав на этот метод | Назначьте пользователю соответствующие права или настройте запуск от администратора |
| JSONPath не возвращает данные | Неверный синтаксис пути или данные лежат в другой структуре ответа | Проверьте полный response через отладку и скорректируйте JSONPath; помните, что $.result — не всегда корень данных |
| Пустой результат при фильтрации | Фильтр содержит синтаксическую ошибку или не те кавычки | Используйте двойные кавычки в JSON-фильтре: {"=PHONE": "..."}. Экранируйте спецсимволы |
| Данные обрезаны (50 элементов) | Не включена пагинация | Активируйте флаг PAGINATE, если ожидается больше 50 результатов |