Quiz-to-Bitrix24 CRM Integration: Webhook & REST API Setup

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Showing 1 of 1All 1626 services
Quiz-to-Bitrix24 CRM Integration: Webhook & REST API Setup
Medium
~1-2 weeks
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1360
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    948
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    694
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    832
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1075

Streamline Lead Capture: Quiz Form to Bitrix24 Integration

Managers receive just a contact in CRM, while quiz responses (budget, timeline, preferences) end up in an unreadable comment or never reach the system. This delays lead qualification for hours and leaves ad channels without attribution. We solve this: we configure each quiz response to be passed into a separate custom field in Bitrix24, create leads with UTM tags and an automatic callback task. Integration is done turnkey with a 6-month warranty and 10+ years of Bitrix experience.

Why standard forms fall short – and how quizzes boost conversion

A typical three-field form gives the manager minimal information. Clients often skip the comment. A quiz structures the conversation with specific questions (budget, timeline, preferences) and captures selections. As a result, the CRM receives not just a contact, but a ready lead qualification. This cuts processing time by 60% (from 2 hours to 40 minutes on average), saving up to $200 per month in manager hours.

Integration approaches: comparison

Approach Complexity Customization Implementation time Requires development
Webhook from quiz service -> middleware -> Bitrix24 Medium High (custom mapping) 3–7 days Yes (PHP handler)
Custom quiz on site -> REST API High Maximum 1–2 weeks Yes (frontend + backend)
Bitrix24 CRM form (multi-step) Low Low (design) 1–2 hours No

Webhook integration is 3 times faster than custom development and offers the best price/quality ratio.

Step-by-step: How to integrate quiz with Bitrix24

  1. Choose a quiz service (e.g., Marquiz, Qform) and create your quiz.
  2. Set up a webhook in the quiz service to send data to your server's endpoint.
  3. Create custom fields in Bitrix24 for quiz answers (e.g., UF_BUDGET_RANGE, UF_URGENCY) and UTM tags.
  4. Develop a PHP handler that validates the webhook, maps answers to custom fields, and calls crm.lead.add via REST API.
  5. Add an activity (call task) automatically for each new lead with a 2-hour deadline.
  6. Test the full flow: submit quiz, verify lead in CRM, check custom fields and activity.

Implementation details: webhook handler and lead creation

Webhook handler: Marquiz → Bitrix24

Marquiz sends a POST with a JSON payload when the quiz completes:

Example Marquiz payload
{
  "quiz_id": "abc123",
  "quiz_name": "Window selection",
  "contact": {
    "name": "Ivan",
    "phone": "+79161234567",
    "email": "[email protected]"
  },
  "answers": [
    {"question": "Room type", "answer": "Apartment"},
    {"question": "Number of windows", "answer": "3"},
    {"question": "Urgency", "answer": "Within a month"},
    {"question": "Budget", "answer": "Individually"}
  ],
  "result": "Standard package",
  "utm": {
    "utm_source": "yandex",
    "utm_campaign": "windows_brand"
  }
}

The handler on your server:

// /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);

// Verification using secret token in header
$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]);

Creating a lead in Bitrix24 via REST

namespace Local\Quiz;

use Local\Bx24\RestClient;

class Bx24Integrator
{
    private RestClient $bx24;

    public function __construct()
    {
        $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'] ?? 'Quiz') . ': ' . ($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'       => 'Call back on quiz: ' . ($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 = ["=== Quiz: {$quizName} ==="];
        foreach ($answers as $answer) {
            $lines[] = ($answer['question'] ?? '?') . ': ' . ($answer['answer'] ?? '—');
        }
        if ($result) {
            $lines[] = '';
            $lines[] = "Quiz result: {$result}";
        }
        return implode("\n", $lines);
    }

    private function mapAnswersToFields(array $fields, array $answers): array
    {
        $mapping = [
            'Number of windows'    => 'UF_WINDOWS_COUNT',
            'Room type'      => 'UF_ROOM_TYPE',
            'Budget'             => 'UF_BUDGET_RANGE',
            'Urgency'          => 'UF_URGENCY',
        ];
        foreach ($answers as $answer) {
            $question = $answer['question'] ?? '';
            $fieldCode = $mapping[$question] ?? null;
            if ($fieldCode) {
                $fields[$fieldCode] = $answer['answer'] ?? '';
            }
        }
        return $fields;
    }
}

Custom fields and mapping

Custom fields in Bitrix24 for the quiz

Fields are created via REST API or in the Bitrix24 interface:

$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' => 'Quiz result'],
        'LIST_COLUMN_LABEL' => ['ru' => 'Quiz result'],
        'MANDATORY'   => 'N',
    ],
]);

Mapping quiz questions to custom fields

Quiz question CRM field Type
Budget UF_BUDGET_RANGE string
Room type UF_ROOM_TYPE string
Urgency UF_URGENCY string
Number of windows UF_WINDOWS_COUNT integer

Bitrix24 CRM form integration (alternative)

If building a quiz from scratch, use Bitrix24 CRM form with hidden fields. The last step sends data directly to the CRM form endpoint. Ensure the form ID is correct and test thoroughly.

What's included in the integration (deliverables)

  • Detailed documentation of the integration (webhook endpoints, field mappings, code comments)
  • Setup of custom fields in Bitrix24 for quiz answers and UTM tags
  • Development and deployment of the webhook handler (PHP) to your server
  • Creation of automatic activity (call task) for each new lead
  • Testing of the full flow: quiz submission → lead creation → activity creation
  • Handover of access (admin panel, webhook secret tokens) and a 30-minute training session
  • 6-month warranty on the integration

Best practices and common mistakes

Why passing UTM tags matters

Without UTM tags, you cannot know which channel brought the target client. We pass utm_source and utm_campaign into separate fields, enabling ad campaign reports inside CRM. Common mistakes to avoid:

  • No webhook verification – anyone can send fake leads.
  • Mapping to comments only – answers get lost.
  • Ignoring UTM tags – lost attribution.
  • No automatic task – leads stagnate.

We avoid these in every project.

How quiz form integration speeds up lead processing

With manual processing, the manager spends time on callbacks and clarifying needs. With integration, all answers are already in the lead card: budget, urgency, property type — as separate fields. The manager can immediately decide whether to call urgently or send a commercial offer. Adding an automatic task activity "Call back in 2 hours" reduces lead loss by 60% (based on our project data).

Pricing and about us

  • Basic webhook (one quiz, 3 fields, no UTM) – from $500, 3-7 days.
  • Full setup (custom fields, activity, UTM, multiple quizzes) – $1,200–$2,500, 1-2 weeks.

Contact us for a project estimate — we'll send a commercial proposal within a day. Order the integration and get a ready-made solution with a 6-month warranty.

We have 10+ years of experience with Bitrix24 and have completed over 50 integration projects. Our team specializes in CRM automation and custom development. We provide full support and maintenance after launch.

How to ensure CRM implementation success?

We have been working with Bitrix24 for over 10 years — during that time we have completed 500+ projects. Every second one starts with the same problem: a company buys CRM, sets it up "by the book," and three months later managers fill two out of twelve fields, deals stall at "Negotiations" for months, and management cannot extract analytics. The root is not bad software — it's the approach. CRM is configured without auditing real processes, without considering staff objections, and without a step-by-step automation plan. In this article — a step-by-step guide on how we avoid this.

All specialists are certified by 1C-Bitrix, the methodology is proven on hundreds of cases. 1C-Bitrix is a platform that, when paired with Bitrix24, provides real end-to-end analytics if configured correctly.

Reality of CRM implementations: 80% fail to deliver results

Why do employees sabotage CRM?

Managers are accustomed to Excel and notepads — they perceive CRM as total control. Our solution: involve key employees at the design stage, show personal benefits — automatic reminders, ready-made proposal templates, less routine. We train on real scenarios, not abstract examples. Resistance drops 4 times faster than with "command" implementation.

How to prevent incomplete data entry?

Mandatory fields are filled, others are ignored — familiar picture? We solve it on three levels:

  • Set mandatory fields per funnel stage (only relevant data at each stage).
  • Implement auto-fill from UTM tags, email parsing, data from open databases.
  • Remove redundant fields — fewer fields, higher quality.

According to our practice, field optimization reduces omission rates by 70% within the first month.

How to design funnels correctly?

Too many stages, no transition criteria, duplicate stages — typical mistakes. We design the funnel based on reality: how sales actually work, not as written in textbooks. We use CRM data from the first 2 weeks of audit to identify real stages and loss points. This shortens the deal cycle by 25–40%.

What automation should be done first?

We set up robots and business processes from day one — so the team immediately feels the difference. For example, lead distribution, sending emails after status changes, creating tasks for colleagues. Companies that implement automation at the start achieve plan targets 3 months faster.

What Bitrix24 features accelerate sales?

  • Inquiries from all channels (phone, email, messengers, forms) are captured automatically.
  • Leads are created and distributed without manual intervention.
  • Visual kanban with custom stages — drag a card to the next stage, an email is sent automatically, a task is created.
  • Omnichannel: unified window for telephony, email, WhatsApp, Telegram, Viber, VK, Instagram, online chat.
  • Robots and business processes: mailings, document generation, reminders, escalations — no coding required.
  • Analytics: funnel, conversions, lead sources, manager workload, average handling time.

What does integrating a 1C-Bitrix website with Bitrix24 CRM provide?

Synergy of the two products yields measurable results, and we implement it through direct data exchange. Site forms transfer leads to CRM instantly with full UTM markup — you see where the client came from. Online chat connects via open lines: a visitor writes on the site, the manager responds from CRM. Orders in the store based on infoblocks v2.0 become deals with full purchase history, enabling cross-selling. Call tracking with number substitution links calls to advertising channels. We use CommerceML to exchange data with 1C Trade Management/ERP: nomenclature, stock balances, prices — synced via agents without manual intervention. End-to-end analytics collects advertising costs, visits, leads, sales in one report — ROI per channel. For non-standard logic, we use REST API and high-load blocks to store arbitrary data (e.g., tech support interaction history). In one project, we configured this bundle for a retail chain: 1C cash register integration with CRM created contacts automatically upon loyalty card purchase, and CRM marketing via Bitrix24 increased repeat purchases by 18% in six months.

How we set up CRM: the process

  1. Audit. We analyze how sales work currently. Where are leads lost? Which channels bring clients? We form recommendations before technical implementation.
  2. Design. Multiple funnels for different directions, custom fields, mandatory stages and transition conditions. Structure reflects the real process.
  3. Integrations. Connect to website, telephony, email, messengers, Yandex.Direct, Google Ads, 1C.
  4. Custom modules. When standard is not enough — applications for Bitrix24: specific reports, non-standard business logic, integrations with industry systems.
  5. Migration. Transfer databases from amoCRM, Megaplan, Salesforce, HubSpot, Excel. Relationships, communication history, attachments — everything intact.
  6. Training. Trainings tailored to your configuration, video instructions, documentation.

What is included in the work?

Deliverable Description
Technical documentation Funnel scheme, robot settings, field structure, integration plan
Access and configurations List of integrations, API keys, logins/passwords (provided under NDA)
Team training 2–3 webinars tailored to your configuration, video instructions, cheat sheets
Post-implementation support 2 weeks of incident management + regular usage audits

Cloud or on-premise: which to choose?

Parameter Cloud (SaaS) On-Premise
Time to start 1–2 days 1–2 weeks
IT requirements None Server and admin required
Data control Limited Full
Customization Standard limits Unlimited
Best for Teams up to 100 people, standard processes Large companies, strict security requirements

Comparison: the cloud version is 2–3 times cheaper initially, but for B2B companies with large data volumes, on-premise pays off in 1.5–2 years due to no per-user subscription fee.

Metrics we track for your business

  • Funnel stage conversion. If 80% are lost at the proposal stage — the problem is pricing, not managers. Norm: 5–15% for B2B, 1–5% for high-ticket B2C.
  • Lead response time. A 5-minute response increases conversion 10x compared to a 30-minute response. We set alerts — if a manager doesn't respond within 15 minutes, the lead is reassigned.
  • LTV. CRM segments clients by lifetime value — managers focus on the most valuable.
  • Average deal cycle. If it increases, something is broken. Reasons for rejections are gold for product and script adjustments.

Our case studies

Manufacturing company (B2B). A plant with high annual turnover. Leads were lost in email; management only learned about large deals post-factum. We set up automatic inquiry capture, a funnel "qualification → calculation → proposal → approval → contract → payment," and robots that generate proposals from templates. Conversion increased by 23%, lead processing time dropped from 4 hours to 20 minutes. Manager payroll savings exceeded $1,000 per month due to reduced routine.

IT service company. Three funnels: new clients, upselling, tenders. Auto-generation of contracts and invoices, integration with Jira — after signing, tasks automatically appear in the development department. Management received a weighted revenue forecast with 90% accuracy. The project paid off in 4 months.

Implementation timeline and cost

Scale Timeline What's included
Basic 1–2 weeks Funnel, telephony, email, database import
Standard 1–2 months Custom funnels, automation, website and 1C integrations
Comprehensive 2–4 months Multiple funnels, custom modules, training, end-to-end analytics

The cost is calculated individually based on your scope of work. After implementation — tech support with SLA (response from 1 hour), regular usage audits, and feature development.

Ready to discuss your situation? Contact us — we'll conduct a free audit of your current CRM within 2 days and propose an implementation architecture with a result guarantee. Request a consultation — we'll show you in numbers how much you'll save with proper setup.