Setting Up Feedback to Bitrix24 CRM: Submissions to Leads and Deals

A feedback form on the site sends an email to the administrator—and that's it. No task for the manager, no history in CRM, no SLA on response. Clients wait for answers for days, requests get lost, managers don't see the full picture of inquiries. According to statistics, up to 30% of requests are lo

Our competencies:

Frequently Asked Questions

A feedback form on the site sends an email to the administrator—and that's it. No task for the manager, no history in CRM, no SLA on response. Clients wait for answers for days, requests get lost, managers don't see the full picture of inquiries. According to statistics, up to 30% of requests are lost during email transmission, and the average response time exceeds 4 hours. Setting up direct transfer to Bitrix24 solves this problem in 4–6 hours: each request becomes a lead or deal with an assigned responsible person, deadline, and full context. We have implemented over 50 such integrations—the average time to create a request in CRM after form submission is 1-2 seconds.

We configure the integration for your business: from a simple feedback form to multi-step custom forms with non‑standard fields. As a result, the manager sees the request in CRM one second after submission, not an hour later when they check email. Below, we break down the technical options: which components to use, how to properly create leads and deals, configure notifications, and avoid duplicates.

Feedback Component Options

In 1C-Bitrix, feedback is implemented via:

  • bitrix:main.feedback — standard component, simple form.
  • bitrix:form.result.new — extended web-form module with any field types.
  • Custom component or Ajax form on React/Vue.

For all options the approach is the same: intercept the successful submission event and call the Bitrix24 REST API.

Why Lead and Not Deal?

The main question when setting up is which entity to create. A lead is suitable for new or unknown clients: the manager qualifies and converts it into a contact/deal. A deal should be created if the client already exists in the database—determined by phone/email via crm.duplicate.findByComm. If you just need to record the fact of an inquiry from an existing contact, use an activity (call/email).

For sites with a high volume of new inquiries, it's correct to create leads—this gives the manager context and allows proper funnel management. For B2B with a limited client base, create deals or activities immediately to avoid cluttering with unprocessed leads. Automation via REST API reduces entity creation time by 90% compared to manual entry.

How to Avoid Duplicate Contacts?

Duplicates are a common problem in integration. We implement a check via crm.duplicate.findByComm before creating a lead. If an existing contact is found, we link the new lead to it or create a deal. Additionally, you can set up a business process in Bitrix24 to automatically merge duplicates according to rules. This reduces the duplicate percentage to 1-2% vs 15% without checking.

Configuration via main.feedback Component

The component bitrix:main.feedback uses the event OnBeforeEventAdd (module main). Subscribe in init.php:

AddEventHandler('main', 'OnBeforeEventAdd', function(&$eventName, &$lid, &$fields) { if ($eventName !== 'FEEDBACK') return; $b24WebhookUrl = COption::GetOptionString('my_module', 'b24_webhook'); $http = new \Bitrix\Main\Web\HttpClient(); $leadData = [ 'TITLE' => 'Обратная связь с сайта', 'NAME' => $fields['NAME'] ?? '', 'PHONE' => [['VALUE' => $fields['PHONE'] ?? '', 'VALUE_TYPE' => 'WORK']], 'EMAIL' => [['VALUE' => $fields['EMAIL'] ?? '', 'VALUE_TYPE' => 'WORK']], 'COMMENTS' => $fields['MESSAGE'] ?? '', 'SOURCE_ID'=> 'WEB', ]; $http->post($b24WebhookUrl . 'crm.lead.add.json', json_encode(['fields' => $leadData])); }); 

This handler creates a lead in CRM and returns its ID. Execution time is less than 1 second. On error (e.g., invalid webhook), the event is not interrupted—the submission is still sent via email.

Notifying the Responsible Person

After creating a lead via REST, a notification is automatically triggered to the responsible person in Bitrix24 (if CRM notifications are configured in the portal). Additionally, you can set a task with a 2-hour deadline:

$b24->call('tasks.task.add', ['fields' => [ 'TITLE' => 'Ответить на обращение: ' . $leadData['NAME'], 'RESPONSIBLE_ID' => $assignedId, 'DEADLINE' => date('c', strtotime('+2 hours')), 'UF_CRM_TASK' => ['L_' . $leadId], // привязка к лиду ]]); 

Storing Webhook Settings

The Bitrix24 webhook URL is stored in module settings via COption (table b_option), not hardcoded. The editing interface is in Settings → Product Settings → Module Settings.

What to Choose: Lead, Deal, or Activity?

The choice of entity affects the funnel and manager workload. Lead—full qualification cycle, requires time for conversion. Deal—immediately in work, but without a "warming up" stage. Activity—minimal action, but doesn't appear in funnel reports. For new high-potential clients, a lead is better; for repeat inquiries, a deal or activity. Comparison by criteria: processing speed (activity is fastest), analytics depth (lead gives full picture), duplicate risk (lower for activity).

Typical Stages and Timelines

Stage Duration Content
Analyze forms and choose component 1 hour Audit current forms, agree on fields
Create webhook and set permissions 30 min Create incoming webhook, set method permissions
Develop handler (PHP) 2–3 hours Code in init.php or module, duplicate check
Configure notifications and tasks 1 hour Push notifications, set tasks with deadlines
Testing and debugging 1–2 hours Check all scenarios: success, error, duplicate

Basic setup takes 4 to 6 hours. Complex scenarios (custom forms, multiple sites, non‑standard fields) may take up to 2 days. Contact us for a consultation and accurate estimate—we will prepare a commercial proposal without surcharges for urgency.

What's Included in the Work

  • Audit of existing forms and agreement on field mapping (1 hour)
  • Creation of incoming webhook with necessary permissions (30 min)
  • PHP handler development with duplicate check using crm.duplicate.findByComm (2–3 hours)
  • Configuration of push notifications and automatic task creation with deadlines (1 hour)
  • Testing and debugging of all scenarios: success, error, duplicate detection (1–2 hours)
  • Documentation: storage of webhook URL, code comments, and event log setup
  • Post-launch support for 2 weeks
Example of logging REST API requests

For debugging, add log entry to the handler:

AddMessage2Log('Lead created: ' . print_r($leadData, true), 'b24_integration'); 

The log can be viewed in the administrative section: Settings → Product Settings → Event Log.

Our Experience and Guarantees

We have been working with Bitrix24 for over 7 years and have completed 50+ feedback integrations for companies of various sizes—from online stores to manufacturing enterprises. We guarantee correct operation of all mechanisms: lead creation, duplicate handling, notifications. Our integration is 3x faster than manual entry and reduces duplicate rates from 15% to under 2%. After launch, we provide support for 2 weeks. Order feedback setup with CRM—turn a simple form into a managed sales channel. Starting from $200, we'll evaluate your project and deliver a turnkey solution in 4–6 hours.