Разработка кастомных действий бизнес-процессов Битрикс24 под ключ
Стандартные действия Бизнес-процессов Битрикс24 — отправить письмо, изменить поле, создать задачу. Для интеграционных задач этого недостаточно. Например, когда в процессе согласования нужно запросить данные из 1С, создать документ в SharePoint или отправить сообщение в Telegram. Наши инженеры с 10+ лет опыта разрабатывают кастомные действия бизнес-процессов под ключ. За 5 лет работы мы выполнили более 500 проектов автоматизации. Кастомное действие — это PHP-класс, наследующий \Bitrix\Bizproc\Activity\BaseActivity или CBPActivity. Оно регистрируется как обработчик события OnBizProcActivityList. В отличие от роботов CRM, кастомное действие доступно во всём редакторе бизнес-процессов — для списков, диска, CRM. Мы разрабатываем как простые синхронные действия, так и асинхронные с retry-логикой. Получите консультацию — мы оценим вашу задачу и предложим оптимальное решение.
Зачем нужны кастомные действия?
Кастомное действие — это PHP-класс, наследующий \Bitrix\Bizproc\Activity\BaseActivity (современный API) или CBPActivity. Оно регистрируется как обработчик события OnBizProcActivityList. В отличие от роботов CRM, кастомное действие доступно во всём редакторе бизнес-процессов — для списков, диска, CRM. Мы разрабатываем как простые синхронные действия, так и асинхронные с retry-логикой.
Как выбрать: REST API или PHP-модуль?
| Критерий | REST API | PHP-модуль |
|---|---|---|
| Облако | Да | Нет |
| Коробка | Да | Да |
| Время выполнения | Ограничение 5 сек (синхр.) | Не ограничено |
| Сложность развертывания | Низкая (вебхук) | Высокая (изменение файлов) |
| Возврат значений | Через callback | Напрямую |
| Управление версиями | Автоматически | Вручную |
Для быстрой интеграции лучше REST API, для сложной логики внутри коробки — PHP-модуль. Оценим ваш сценарий бесплатно.
Как разработать кастомное действие через REST API?
Регистрируется методом bizproc.activity.add согласно официальной документации Битрикс24. Пример:
$client->call('bizproc.activity.add', [ 'CODE' => 'GET_1C_PRICE', 'HANDLER' => 'https://my-server.com/bp-activity-handler', 'AUTH_USER_ID' => 1, 'NAME' => [ 'ru' => 'Получить цену из 1С', 'en' => 'Get price from 1C', ], 'USE_SUBSCRIPTION' => 'Y', 'PROPERTIES' => [ 'article' => [ 'Name' => ['ru' => 'Артикул товара'], 'Type' => 'string', 'Required' => 'Y', ], ], 'RETURN_PROPERTIES' => [ 'price' => [ 'Name' => ['ru' => 'Цена из 1С'], 'Type' => 'double', ], 'available' => [ 'Name' => ['ru' => 'В наличии'], 'Type' => 'bool', ], ], ]); USE_SUBSCRIPTION: Y — обязательно, если действие выполняется дольше 5 секунд. Битрикс24 сразу возвращает 200, а обработчик асинхронно отправляет результат через bizproc.event.send. Без этого токена воркфлоу зависнет.
Шаги разработки:
- Определите код и параметры — задайте уникальный
CODEи опишитеPROPERTIES,RETURN_PROPERTIES. - Вызовите метод
bizproc.activity.add— передайтеHANDLERURL, установитеUSE_SUBSCRIPTIONвYдля асинхронных действий. - Реализуйте обработчик — скрипт на вашем сервере принимает POST-запрос от Битрикс24, выполняет бизнес-логику и отправляет результат через
bizproc.event.sendс правильнымevent_token. - Протестируйте — запустите процесс с различными сценариями, проверьте обработку ошибок и таймаутов.
Разработка PHP-действия для коробочного Битрикс24
Класс регистрируется в файловой системе. Структура:
class My1CPriceActivity extends \Bitrix\Bizproc\Activity\BaseActivity { protected function execute(array &$arProperties) { $article = $this->getFieldValue('article'); $result = \My1CConnector::getPrice($article); if ($result->isSuccess()) { $this->setResultValue('price', $result->getPrice()); $this->setResultValue('available', $result->getAvailable()); } else { $this->writeToTrackingService( 'Ошибка запроса к 1С: ' . $result->getErrorMessage() ); } return \CBPActivityExecutionStatus::Closed; } public static function getPropertiesDialog($params) { // Рендер формы настройки } } Метод writeToTrackingService пишет в журнал БП — важно для отладки.
Реальный кейс: автоматизация согласования заявок с проверкой кредитного лимита
Задача: дистрибьютор, процесс согласования заявки на отгрузку с отсрочкой платежа. Нужно получить из CRM кредитный лимит и задолженность, затем автоматически одобрить или направить на ручное согласование.
Решение: разработали кастомное PHP-действие CheckCreditLimitActivity. Параметры: ID компании в CRM, сумма заявки. Оно запрашивает внутренний API финансовой системы по HTTP, возвращает переменные available_limit и approval_required. Затем в БП стоит условие: если approval_required = true — задание финансовому директору, иначе — автоматическое одобрение.
Сложность: финансовая система была недоступна в 3–5% случаев. Добавили retry-логику: действие повторяет запрос до 30 минут через агент, при недоступности — переводит заявку на ручное согласование с уведомлением.
Результат: цикл согласования сократился с 4 часов до 20 минут для автоматических заявок (68% случаев). Стоимость разработки кейса составила $400–580.
Какие ошибки допускают при разработке?
- Таймаут без USE_SUBSCRIPTION — синхронный обработчик дольше 5 секунд, процесс зависает.
- Не передан event_token — результат не доходит до БП, воркфлоу ждет бесконечно.
- Необработанное исключение в PHP-действии — роняет весь воркфлоу. Всегда try-catch.
Что входит в работу?
- Анализ — разбор бизнес-процесса и требований к интеграции.
- Проектирование — выбор архитектуры (REST/PHP), согласование протокола.
- Реализация — написание кода, регистрация действия, настройка формы параметров.
- Тестирование — на тестовом процессе с граничными сценариями.
- Документация — инструкция по установке и использованию.
- Поддержка — 30 дней гарантийного сопровождения.
Сроки разработки
| Задача | Время |
|---|---|
| Простое синхронное действие | 2–3 дня |
| Асинхронное действие с retry | 4–6 дней |
| PHP-действие с UI-формой | 5–7 дней |
| Тестирование, отладка, документация | 2–3 дня |
Разработка кастомного действия под ключ занимает 1–2 недели в зависимости от сложности. Экономия от внедрения — до $900–1.3k в месяц. Оценка проекта — бесплатно. Свяжитесь с нами, чтобы обсудить вашу задачу — получите консультацию и коммерческое предложение.







