Розробка кастомних смарт-процесів Бітрікс24

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка кастомних смарт-процесів Бітрікс24
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка кастомних смарт-процесів Bitrix24

Смарт-процеси — це CRM-сутності, які створюєте ви, а не розробники Бітрікс. Не лід і не угода, а «Договір», «Заявка на закупівлю», «Рекламація», «Проєкт», «Орендар» — під специфіку вашого бізнесу. Технічно це динамічні CRM-сутності (\Bitrix\Crm\Service\Factory), що зберігаються в таблицях b_crm_dynamic_items_{entityTypeId}.

Що можна створити через конструктор Б24

У налаштуваннях CRM → «Смарт-процеси» менеджер створює новий тип: додає користувацькі поля, налаштовує воронку стадій, вмикає потрібні блоки (контакт, компанія, товари, документи). Це працює для простих випадків.

Кастомна розробка потрібна, коли:

  • Поля смарт-процесу повинні обчислюватися автоматично.
  • Створення елемента запускає ланцюжок дій (створити пов'язаний елемент, повідомити, зареєструвати в 1С).
  • Потрібна нестандартна картка з кастомним UI.
  • Потрібна інтеграція смарт-процесу із зовнішньою системою.

Створення смарт-процесу через REST API

Створюємо тип програмно — зручно для деплою між середовищами:

$result = $b24->callMethod('crm.type.add', [
    'fields' => [
        'title'                  => 'Рекламація',
        'isUseInUserfieldEnabled' => true,
        'isLinkWithProductsEnabled' => true,
        'isStagesEnabled'        => true,
        'isRobotsEnabled'        => true,
        'isBizProcEnabled'       => true,
    ],
]);
$entityTypeId = $result['result']['type']['entityTypeId']; // наприклад, 1052

Після отримання entityTypeId додаємо користувацькі поля:

$b24->callMethod('crm.type.fields.add', [
    'entityTypeId' => $entityTypeId,
    'fields'       => [
        'fieldName'  => 'CLAIM_NUMBER',
        'userTypeId' => 'string',
        'listLabel'  => 'Номер рекламації',
        'isRequired' => true,
    ],
]);

Автоматична нумерація елементів

Типове завдання: «Рекламація №РК-2024-0042». Реалізується через обробник події onCrmDynamicItemBeforeAdd:

AddEventHandler('crm', 'onCrmDynamic' . $entityTypeId . 'ItemBeforeAdd', function(\Bitrix\Main\Event $event) {
    $item = $event->getParameter('item');
    $year = date('Y');

    // Атомарний лічильник у Redis або таблиці
    $seq = incrementSequence("claim_{$year}");
    $item->set('UF_CRM_CLAIM_NUMBER', sprintf('РК-%d-%04d', $year, $seq));
});

Пов'язані сутності та каскадні дії

При створенні рекламації автоматично:

  1. Створюється задача для відділу якості.
  2. Прикріплюється пов'язана угода (якщо рекламація за замовленням).
  3. Повідомляється відповідальний менеджер.
AddEventHandler('crm', 'onCrmDynamic' . $entityTypeId . 'ItemAdd', function(\Bitrix\Main\Event $event) use ($b24) {
    $item    = $event->getParameter('item');
    $dealId  = $item->get('OPPORTUNITY'); // кастомне поле пов'язаної угоди

    // Створюємо задачу
    $b24->callMethod('tasks.task.add', [
        'fields' => [
            'TITLE'       => 'Обробити рекламацію ' . $item->get('UF_CRM_CLAIM_NUMBER'),
            'RESPONSIBLE_ID' => getQualityDeptHead(),
            'DEADLINE'    => date('Y-m-d\TH:i:s', strtotime('+2 business days')),
            'UF_CRM_TASK' => ["D_{$dealId}"],
        ],
    ]);

    // Повідомлення через бота
    notifyManager($item->get('ASSIGNED_BY_ID'), "Нова рекламація: " . $item->get('UF_CRM_CLAIM_NUMBER'));
});

Кастомні роботи для смарт-процесу

Роботи — це дії, які CRM виконує автоматично при зміні стадії. Стандартні роботи (надіслати email, поставити задачу) — із коробки. Кастомний робот створюється через REST:

$b24->callMethod('bizproc.robot.add', [
    'CODE'     => 'send_to_1c',
    'HANDLER'  => 'https://your-server.com/robot/send-to-1c',
    'AUTH_USER_ID' => 1,
    'NAME'     => ['ru' => 'Відправити в 1С'],
    'PROPERTIES' => [
        'document_type' => ['Name' => 'Тип документа', 'Type' => 'select', 'Options' => ['claim' => 'Рекламація', 'refund' => 'Повернення']],
    ],
    'RETURN_PROPERTIES' => [
        'external_id' => ['Name' => 'ID у 1С', 'Type' => 'string'],
    ],
]);

Коли CRM виконує робота, Б24 POST'ить на HANDLER дані елемента. Обробник виконує логіку (запит до 1С), повертає JSON з RETURN_PROPERTIES. Б24 записує повернуті дані в поля елемента.

Кастомна картка через Placement

Стандартна картка смарт-процесу не завжди зручна. Для складного UI — вбудовуємо власний інтерфейс через placement.bind з типом CRM_DYNAMIC_DETAIL_TOOLBAR:

$b24->callMethod('placement.bind', [
    'PLACEMENT' => 'CRM_DYNAMIC_' . $entityTypeId . '_DETAIL_TOOLBAR',
    'HANDLER'   => 'https://your-server.com/app/claim-detail',
    'TITLE'     => 'Додаткові дані',
]);

Відкривається як бічна панель (слайдер) у картці смарт-процесу — ваш SPA з кастомним інтерфейсом.

Права доступу

Права на смарт-процес налаштовуються через CRM-ролі (crm.type.userfield.access.set) або через програму. Для складної матриці: читати — всі менеджери, редагувати — лише відповідальний і керівник, видаляти — лише адміністратор. Перевіряємо через user.current і department.get при кожному запиті.

Інтеграція із зовнішніми системами

Напрямок Метод Подія
Смарт-процес → 1С REST-обробник + кастомний робот Зміна стадії
1С → Смарт-процес crm.item.update через webhook Б24 За розкладом або тригером у 1С
Смарт-процес → Email event.send або кастомний робот Створення, зміна стадії
Зовнішній сервіс → Смарт-процес crm.item.add через REST API Webhook від зовнішнього сервісу

Терміни

Етап Термін
Проєктування структури полів і воронки 2–3 дні
Створення типу, полів через REST/API 1–2 дні
Обробники подій (нумерація, каскад) 2–4 дні
Кастомні роботи 2–3 дні на кожен
Кастомна картка (SPA у placement) 3–5 днів
Інтеграція із зовнішніми системами 2–5 днів
Тестування 2–3 дні

Разом: 2–4 тижні залежно від кількості роботів і наявності кастомного UI.