Custom Business Process Actions for Bitrix24: Turnkey Development

Custom Business Process Actions for Bitrix24: Turnkey Development Standard Bitrix24 Business Process actions — send email, update field, create task. That's not enough for integration tasks. For example, when a approval process needs to fetch data from 1C, create a document in SharePoint, or send

Our competencies:

Frequently Asked Questions

Custom Business Process Actions for Bitrix24: Turnkey Development

Standard Bitrix24 Business Process actions — send email, update field, create task. That's not enough for integration tasks. For example, when a approval process needs to fetch data from 1C, create a document in SharePoint, or send a message to Telegram. Our engineers with 10+ years of experience develop custom actions for business processes turnkey. Over 10 years we have completed more than 500 automation projects. A custom action is a PHP class inheriting \Bitrix\Bizproc\Activity\BaseActivity or CBPActivity. It is registered as a handler for the OnBizProcActivityList event. Unlike CRM robots, a custom action is available in all business process editors — for lists, disk, CRM. We develop both simple synchronous actions and asynchronous ones with retry logic. Get a consultation — we will assess your task and propose the optimal solution.

Why Custom Actions?

A custom action is a PHP class inheriting \Bitrix\Bizproc\Activity\BaseActivity (modern API) or CBPActivity. It is registered as a handler for the OnBizProcActivityList event. Unlike CRM robots, a custom action is available in all business process editors — for lists, disk, CRM. We develop both simple synchronous actions and asynchronous ones with retry logic.

How to Choose: REST API or PHP Module?

Criterion REST API PHP Module
Cloud Yes No
On-premise Yes Yes
Execution time 5 sec limit (sync) Unlimited
Deployment complexity Low (webhook) High (file modification)
Return values Via callback Directly
Version management Automatic Manual

For quick integration, REST API is better; for complex logic inside on-premise, PHP module is better. We will assess your scenario for free.

How to Develop a Custom Action via REST API?

Register using the bizproc.activity.add method according to the official Bitrix24 documentation. Example:

$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 — mandatory if the action takes longer than 5 seconds. Bitrix24 returns 200 immediately, and the handler asynchronously sends the result via bizproc.event.send. Without this token, the workflow will hang.

Development steps:

  1. Define the code and parameters — set a unique CODE and describe PROPERTIES, RETURN_PROPERTIES.
  2. Call bizproc.activity.add — pass the HANDLER URL, set USE_SUBSCRIPTION to Y for async actions.
  3. Implement the handler — a script on your server receives a POST request from Bitrix24, executes business logic, and sends the result via bizproc.event.send with the correct event_token.
  4. Test — run the process with various scenarios, check error handling and timeouts.

Developing a PHP Action for On-Premise Bitrix24

The class is registered in the file system. Structure:

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) { // Render configuration form } } 

The writeToTrackingService method writes to the BP log — important for debugging.

Real Case: Automating approval of requests with credit limit verification

Task: a distributor, process for approving shipment requests with deferred payment. Need to get the credit limit and debt from CRM, then automatically approve or route to manual approval.

Solution: developed a custom PHP action CheckCreditLimitActivity. Parameters: company ID in CRM, request amount. It queries the internal API of the financial system via HTTP, returns variables available_limit and approval_required. Then in the BP, a condition: if approval_required = true — task to financial director, otherwise — automatic approval.

Challenge: the financial system was unavailable in 3–5% of cases. Added retry logic: the action repeats the request for up to 30 minutes via agent, if unavailable — transfers the request to manual approval with notification.

Result: the approval cycle reduced from 4 hours to 20 minutes for automatic requests (68% of cases). The cost of developing this case was 45,000 rubles.

Common Mistakes in Development

  • Timeout without USE_SUBSCRIPTION — synchronous handler longer than 5 seconds, process hangs.
  • Missing event_token — result does not reach the BP, workflow waits indefinitely.
  • Unhandled exception in PHP action — crashes the entire workflow. Always use try-catch.

What's Included?

  • Analysis — breakdown of business process and integration requirements.
  • Design — architecture choice (REST/PHP), protocol agreement.
  • Implementation — coding, action registration, parameter form configuration.
  • Testing — on a test process with edge cases.
  • Documentation — installation and usage instructions.
  • Support — 30-day warranty support.

Development Timeline

Task Time
Simple synchronous action 2–3 days
Asynchronous action with retry 4–6 days
PHP action with UI form 5–7 days
Testing, debugging, documentation 2–3 days

Turnkey custom action development takes 1–2 weeks depending on complexity. Savings from implementation — up to 100,000 rubles per month. Project assessment is free. Contact us to discuss your task — get a consultation and commercial offer.