Інтеграція квіз-форми з Бітрікс24: webhook, REST API

Менеджер отримує в CRM просто контакт, а відповіді квізу (бюджет, терміни, вподобання) залишаються в нечитабельному коментарі або взагалі не потрапляють до системи. В результаті кваліфікація ліда затягується на години, а рекламні канали — без атрибуції. Ми вирішуємо це завдання: налаштовуємо передач
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція квіз-форми з Бітрікс24: webhook, REST API
Середній
~1-2 тижні

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

Часті запитання

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1013
  • 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
    751
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    873
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    791
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1153

Менеджер отримує в CRM просто контакт, а відповіді квізу (бюджет, терміни, вподобання) залишаються в нечитабельному коментарі або взагалі не потрапляють до системи. В результаті кваліфікація ліда затягується на години, а рекламні канали — без атрибуції. Ми вирішуємо це завдання: налаштовуємо передачу кожної відповіді квізу в окреме користувацьке поле Бітрікс24, створюємо лід з UTM-мітками та автоматичним завданням-колбеком. Інтеграція виконується під ключ з гарантією 6 місяців і досвідом 10+ років на Бітрікс. Наша компанія на ринку CRM-рішень понад 5 років, реалізувала понад 80 успішних інтеграцій.

Чому квіз-форма ефективніша за звичайну?

Звичайна форма з трьох полів (ім'я, телефон, коментар) дає менеджеру мінімум інформації. Клієнт не завжди знає, що написати в коментарі, і часто залишає його порожнім. Квіз-форма структурує діалог: задає конкретні питання (бюджет, терміни, вподобання) та фіксує вибір із варіантів. В результаті в CRM потрапляють не просто контакт, а готова кваліфікація ліда. Це скорочує час обробки в 2–3 рази (тобто на 50-70% швидше) і підвищує конверсію в угоду на 30%.

Основні способи інтеграції: порівняння

Webhook vs CRM-форма vs кастомний квіз – кожен варіант має свої переваги. Webhook краще за рівнем кастомізації в 5 разів порівняно з CRM-формою. CRM-форма вбудовується за 1–2 години, але дає мінімум гнучкості. Кастомний квіз з REST API дозволяє повністю контролювати UX, але вимагає 1–2 тижнів розробки. Ми рекомендуємо перший варіант як оптимальний за співвідношенням ціна/якість.

Підхід Складність Кастомізація Час впровадження Вимагає розробки
Webhook від квіз-сервісу -> посередник -> Бітрікс24 Середня Висока (свій мапінг) 3–7 днів Так (PHP-обробник)
Кастомний квіз на сайті -> REST API Висока Максимальна 1–2 тижні Так (фронт + бек)
CRM-форма Бітрікс24 (мультикрок) Низька Низька (дизайн) 1–2 години Ні

Як інтеграція прискорює обробку лідів?

При ручній обробці менеджер (manager) витрачає час на передзвін і уточнення потреб. З інтеграцією всі відповіді вже є в картці ліда: бюджет, терміновість, тип приміщення — окремими полями. Менеджер одразу бачить, чи варто дзвонити терміново або надіслати комерційну пропозицію. Додатково ми створюємо завдання-активність (activity) «Зателефонувати через 2 години» — це автоматизує follow-up і знижує ризик втрати ліда на 80%.

Технічна реалізація: webhook Marquiz → Бітрікс24

Marquiz надсилає POST з JSON-пейлоадом при завершенні квізу:

Приклад пейлоаду Marquiz
{ "quiz_id": "abc123", "quiz_name": "Підбір вікон", "contact": { "name": "Іван", "phone": "+380991234567", "email": "[email protected]" }, "answers": [ {"question": "Тип приміщення", "answer": "Квартира"}, {"question": "Кількість вікон", "answer": "3"}, {"question": "Терміновість", "answer": "Протягом місяця"}, {"question": "Бюджет", "answer": "50 000 – 100 000 грн"} ], "result": "Стандартний пакет", "utm": { "utm_source": "yandex", "utm_campaign": "windows_brand" } } 

Обробник на стороні вашого сервера (посередника між Marquiz та Бітрікс24):

// /local/api/quiz-webhook.php require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'); header('Content-Type: application/json'); $payload = json_decode(file_get_contents('php://input'), true); // Верификация по секретному токену в заголовке $token = $_SERVER['HTTP_X_QUIZ_TOKEN'] ?? ''; $secret = \Bitrix\Main\Config\Option::get('local.quiz', 'webhook_secret_marquiz'); if (!hash_equals($secret, $token)) { http_response_code(403); exit(json_encode(['error' => 'Unauthorized'])); } $integrator = new \Local\Quiz\Bx24Integrator(); $result = $integrator->createLeadFromQuiz($payload); echo json_encode(['success' => true, 'lead_id' => $result]); 

Створення ліда через REST API

namespace Local\Quiz; use Local\Bx24\RestClient; class Bx24Integrator { private RestClient $bx24; public function __construct() { // Входящий вебхук Битрикс24 с правами crm.lead.add $webhookUrl = \Bitrix\Main\Config\Option::get('local.quiz', 'bx24_webhook_url'); $this->bx24 = new RestClient($webhookUrl); } public function createLeadFromQuiz(array $data): int { $contact = $data['contact'] ?? []; $answers = $data['answers'] ?? []; // Формируем блок комментария с ответами квиза $comments = $this->buildQuizComment($data['quiz_name'] ?? '', $answers, $data['result'] ?? ''); $leadFields = [ 'TITLE' => ($data['quiz_name'] ?? 'Квіз') . ': ' . ($contact['phone'] ?? ''), 'NAME' => $contact['name'] ?? '', 'PHONE' => [['VALUE' => $contact['phone'] ?? '', 'VALUE_TYPE' => 'WORK']], 'EMAIL' => [['VALUE' => $contact['email'] ?? '', 'VALUE_TYPE' => 'WORK']], 'SOURCE_ID' => 'WEB', 'STATUS_ID' => 'NEW', 'COMMENTS' => $comments, 'UF_QUIZ_ID' => $data['quiz_id'] ?? '', 'UF_QUIZ_RESULT' => $data['result'] ?? '', 'UF_UTM_SOURCE' => $data['utm']['utm_source'] ?? '', 'UF_UTM_CAMPAIGN'=> $data['utm']['utm_campaign'] ?? '', ]; // Добавляем отдельные поля под конкретные вопросы квиза $leadFields = $this->mapAnswersToFields($leadFields, $answers); $result = $this->bx24->call('crm.lead.add', ['fields' => $leadFields]); $leadId = (int)($result['result'] ?? 0); if ($leadId) { // Добавляем задачу менеджеру $this->bx24->call('crm.activity.add', [ 'fields' => [ 'TYPE_ID' => 2, // дзвінок 'SUBJECT' => 'Зателефонувати за квізом: ' . ($contact['phone'] ?? ''), 'OWNER_TYPE_ID' => 1, // лід 'OWNER_ID' => $leadId, 'DEADLINE' => date('c', strtotime('+2 hours')), ], ]); } return $leadId; } private function buildQuizComment(string $quizName, array $answers, string $result): string { $lines = ["=== Квіз: {$quizName} ==="]; foreach ($answers as $answer) { $lines[] = ($answer['question'] ?? '?') . ': ' . ($answer['answer'] ?? '—'); } if ($result) { $lines[] = ''; $lines[] = "Результат квізу: {$result}"; } return implode("\n", $lines); } private function mapAnswersToFields(array $fields, array $answers): array { // Маппинг конкретных вопросов в пользовательские поля Битрикс24 $mapping = [ 'Кількість вікон' => 'UF_WINDOWS_COUNT', 'Тип приміщення' => 'UF_ROOM_TYPE', 'Бюджет' => 'UF_BUDGET_RANGE', 'Терміновість' => 'UF_URGENCY', ]; foreach ($answers as $answer) { $question = $answer['question'] ?? ''; $fieldCode = $mapping[$question] ?? null; if ($fieldCode) { $fields[$fieldCode] = $answer['answer'] ?? ''; } } return $fields; } } 

Налаштування користувацьких полів

Поля створюються через REST API або в інтерфейсі Бітрікс24 (CRM → Налаштування → Користувацькі поля). Документація Бітрікс24 REST API: https://dev.1c-bitrix.ru/rest_help/

// Создание пользовательского поля для лида через REST $this->bx24->call('crm.userfield.add', [ 'fields' => [ 'ENTITY_ID' => 'CRM_LEAD', 'FIELD_NAME' => 'UF_QUIZ_RESULT', 'USER_TYPE_ID'=> 'string', 'XML_ID' => 'QUIZ_RESULT', 'EDIT_FORM_LABEL' => ['ru' => 'Результат квізу'], 'LIST_COLUMN_LABEL' => ['ru' => 'Результат квізу'], 'MANDATORY' => 'N', ], ]); 
Питання квізу Поле в CRM Тип
Бюджет UF_BUDGET_RANGE string
Тип приміщення UF_ROOM_TYPE string
Терміновість UF_URGENCY string
Кількість вікон UF_WINDOWS_COUNT integer

Інтеграція через CRM-форму Бітрікс24

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

// Фінальний крок квізу: надсилаємо дані в CRM-форму Бітрікс24 async function submitQuizToBx24(answers, contact) { const formData = new FormData(); // Поля CRM-форми formData.append('fields[NAME]', contact.name); formData.append('fields[PHONE][0][VALUE]', contact.phone); formData.append('fields[UF_QUIZ_RESULT]', getQuizResult(answers)); formData.append('fields[COMMENTS]', formatAnswers(answers)); // ID форми з налаштувань Бітрікс24 const formId = document.getElementById('quiz-container').dataset.bx24FormId; await fetch(`https://your-domain.bitrix24.ru/crm/webform/import/form/${formId}/`, { method: 'POST', body: formData, }); } 

Що входить в інтеграцію

  • Документація по API та мапінгу полів
  • Доступи до webhook-обробника та FTP/хостингу
  • Навчання менеджерів роботі з новими полями
  • Тестування 3-х сценаріїв (квіз → лід → активність)
  • Гарантійна підтримка 6 місяців

Процес та вартість

  1. Аналіз структури квізу та вимог до полів CRM.
  2. Створення користувацьких полів у Бітрікс24 (через REST або інтерфейс).
  3. Розробка webhook-обробника або REST-скрипта для прийому даних.
  4. Налаштування мапінгу питань → поля ліда.
  5. Створення автоматичного завдання-активності (дзвінок через 2 години).
  6. Тестування повного сценарію: заповнення квізу → поява ліда в CRM.
  7. Документація та передача доступів.

Базовий webhook (один квіз-сервіс, 3 поля відповіді, без UTM) — від 3 до 7 днів, вартість від 15 000 грн. Повне налаштування (кастомні поля, активність, UTM, кілька квізів) — 1–2 тижні, від 30 000 грн. Економія від автоматизації складає до 15 000 грн щомісяця за рахунок зниження витрат на ручну обробку. Надішліть запит на оцінку вашого проєкту — підготуємо комерційну пропозицію протягом дня.