Розробка калькулятора зі збереженням результату в CRM Бітрікс24

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

Розробка калькулятора зі збереженням результату в CRM Бітрікс24

Калькулятор на сайті, який при розрахунку створює лід або угоду в CRM Бітрікс24 — стандартне завдання лідогенерації. Технічно просте, але ламається в одному конкретному місці: REST API Бітрікс24 має ліміти запитів (2 запити на секунду для хмарного тарифу), і при сплеску трафіку частина лідів втрачається без будь-якого сповіщення про помилку.

Як влаштована інтеграція сайту з CRM

Сайт на 1С-Бітрікс і Бітрікс24 — два окремих продукти з окремими API. Для передачі даних з форми сайту в CRM використовується REST API Бітрікс24:

  • crm.lead.add — створити лід
  • crm.deal.add — створити угоду одразу (якщо ліди не використовуються)
  • crm.contact.add + crm.deal.add — створити контакт і прив'язати до нього угоду

Авторизація через вхідний вебхук (найпростіший спосіб) або через OAuth-застосунок (для продакшну з кількома порталами).

Приклад створення ліда через REST API:

$webhookUrl = 'https://your-portal.bitrix24.ru/rest/1/WEBHOOK_TOKEN/';

$fields = [
    'TITLE'      => 'Заявка з калькулятора: ' . $calculatorName,
    'NAME'       => $clientName,
    'PHONE'      => [['VALUE' => $clientPhone, 'VALUE_TYPE' => 'WORK']],
    'EMAIL'      => [['VALUE' => $clientEmail, 'VALUE_TYPE' => 'WORK']],
    'COMMENTS'   => $calcResultText,
    'SOURCE_ID'  => 'WEB',
    'UF_CRM_CALCULATOR_PARAMS' => json_encode($calcParams), // користувацьке поле
    'UF_CRM_TOTAL_PRICE'       => $totalPrice,
];

$response = file_get_contents(
    $webhookUrl . 'crm.lead.add.json?' . http_build_query(['fields' => $fields])
);
$result = json_decode($response, true);

Передача параметрів калькулятора в CRM

Користувацькі поля ліда (UF_CRM_*) дозволяють зберегти всі параметри розрахунку: що саме рахував користувач, які значення обрав, яка підсумкова сума. Це критично для менеджера: він відкриває лід і одразу бачить конфігурацію, а не безіменний номер телефону.

Поля потрібно створити заздалегідь у Бітрікс24: CRM → Ліди → Налаштування полів → Додати поле. Тип залежить від даних: рядок, число, список. Після створення — ім'я поля виду UF_CRM_1_XXXXXXXXXX (число — ID користувача-власника).

Обробка лімітів та помилок API

Хмарний Бітрікс24 обмежує вхідні REST-запити: 2 запити на секунду, 5000 запитів на добу (залежить від тарифу). При перевищенні — відповідь {error: "QUERY_LIMIT_EXCEEDED"}. Типова реалізація без обробки лімітів втрачає ліди при піковому навантаженні.

Правильна реалізація:

  1. Збереження даних калькулятора в таблицю черги на стороні Бітрікс (b_hl_* highload-блок або окрема таблиця)
  2. Агент Бітрікс, який кожні 30 секунд відправляє записи з черги в CRM пачками з урахуванням лімітів
  3. Повторна відправка при помилці (з exponential backoff — 1с, 2с, 4с, 8с)
  4. Прапор is_synced у таблиці черги для контролю статусу
// Агент відправки лідів у CRM
function sendPendingLeadsToCRM(): string {
    $pendingLeads = getUnsentLeads(limit: 10); // з таблиці черги

    foreach ($pendingLeads as $lead) {
        $result = sendLeadToB24($lead);
        if ($result['result']) {
            markLeadAsSent($lead['id'], $result['result']); // зберегти B24 ID
        } else {
            incrementRetryCount($lead['id']);
        }
        usleep(600000); // 0.6 сек між запитами
    }

    return __FUNCTION__ . '();';
}

Кейс: калькулятор кредиту на сайті банку

Клієнт — небанківська фінансова організація. Калькулятор: сума кредиту, термін, тип забезпечення. Результат — попередня ставка та щомісячний платіж. При відправці — лід у Бітрікс24 з повною деталізацією параметрів.

Складність: навантаження в пікові години — до 50 заявок на хвилину з різних рекламних кампаній. Пряма відправка до B24 API неможлива через ліміти.

Рішення: черга в PostgreSQL (сайт на нестандартному стеку), агент відправки кожні 15 секунд по 5 лідів, логування всіх відповідей B24. Паралельно — негайний лист клієнту з результатами розрахунку (щоб не чекати синхронізації з CRM). Менеджер бачить лід у B24 максимум через 15 секунд після відправки форми.

Додатково: при створенні ліда автоматично запускається бізнес-процес B24 «Первинна обробка заявки», який призначає лід менеджеру за кредитним продуктом і встановлює дедлайн першого контакту — 30 хвилин.

Що входить у розробку

  • Розробка калькулятора (клієнтська та серверна частини)
  • Створення користувацьких полів ліда/угоди в Бітрікс24
  • Розробка обробника з чергою та повторними спробами
  • Налаштування вхідного вебхука Бітрікс24
  • Логування всіх запитів та відповідей API
  • Моніторинг: алерт при накопиченні необробленої черги більше N записів

Терміни розробки

Калькулятор з інтеграцією CRM — від 4 до 10 робочих днів залежно від складності формули розрахунку та вимог до переданих даних. Базовий варіант (проста формула, лід з 5–10 полями, без черги) — 2–3 дні. З чергою, повторними спробами та моніторингом — 5–8 днів.