Интеграция Битрикс24 с сайтом: автоматизация продаж и лидов

Когда сайт не связан с CRM, заявки теряются, а менеджеры тратят время на ручной ввод данных. Мы выполняем интеграцию Битрикс24 с сайтом под ключ: настраиваем автоматическую передачу лидов из форм и корзины в CRM. Наша команда обеспечивает надёжную синхронизацию и последующую поддержку, чтобы вы не теряли клиентов.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Интеграция Битрикс24 с сайтом: автоматизация продаж и лидов
Средний
~2-3 дня
Часто задаваемые вопросы

Отметим: когда сайт не связан с CRM, менеджеры тратят до 2 часов в день на ручной ввод заявок — до 30% лидов теряются из-за задержек и ошибок. Потери выручки для интернет-магазина со средним чеком $36–52. могут достигать $1.1k–1.6k. в месяц только из-за необработанных заявок. Выполняем подключение Битрикс24 к сайту любой сложности: настраиваем автоматическую передачу данных из форм обратной связи, корзины интернет-магазина и лендингов напрямую в CRM. Интеграция выполняется под ключ за 1–4 дня с гарантией сохранности данных и круглосуточной поддержкой. В нашей практике средний проект занимает 2.5 дня, а отказоустойчивость достигается за счёт очередей и повторных попыток. Точность синхронизации — 99.9%, время отклика webhook менее 1 секунды. Получите консультацию по интеграции — мы проанализируем ваш сайт и предложим оптимальное решение.

Какие задачи решает интеграция с Битрикс24?

  • Автоматическое создание лидов и сделок при отправке форм (заявки, обратный звонок, регистрация). Передаются имя, телефон, email, комментарий, UTM-метки.
  • Двусторонняя синхронизация контактов, товаров и заказов. Изменение статуса сделки в CRM мгновенно отражается на сайте и наоборот.
  • Сбор аналитики через UTM-метки и источники в CRM — видно, откуда пришёл клиент.
  • Исключение дублей за счёт проверки контактов по телефону или email перед созданием.

Почему стоит интегрировать Битрикс24 с сайтом?

Ручной перенос заявок ведёт к потерям до 30% лидов и задержкам в обработке. Интеграция через исходящие webhook и REST API устраняет эти проблемы: лиды создаются мгновенно, статусы синхронизируются в реальном времени. Для интернет-магазинов это ещё и автоматическое обновление остатков и статусов заказов. В итоге менеджеры работают только с тёплыми контактами, а воронка продаж становится прозрачной. Экономия на зарплате оператора может достигать $270–390./мес.

Как обрабатываются ошибки и лимиты?

При превышении лимита запросов (2 в секунду) API возвращает ошибку. Мы используем batch-методы и очередь задач (Redis + Supervisor), чтобы отправлять до 50 заявок в секунду без потерь. Все неудачные запросы повторяются с экспоненциальной задержкой до 5 раз. Это гарантирует, что ни один лид не потеряется.

Как мы реализуем синхронизацию?

Используем исходящие webhook Битрикс24 как самый простой способ: не требует OAuth-авторизации, работает через один URL. Стек: PHP 8.3+, Laravel 11, Guzzle HTTP. Подробнее о методах REST API можно узнать в официальной документации.

Пример: создание лида из формы обратной связи

class Bitrix24Client {
    private string $webhookUrl;

    public function __construct() {
        $this->webhookUrl = config('bitrix24.webhook_url');
    }

    public function callMethod(string $method, array $params = []): array {
        $response = Http::timeout(15)
            ->post($this->webhookUrl . $method, $params);

        if ($response->failed()) {
            throw new \RuntimeException('Bitrix24 API error: ' . $response->status());
        }

        $data = $response->json();

        if (!empty($data['error'])) {
            throw new \RuntimeException('Bitrix24: ' . $data['error_description']);
        }

        return $data['result'] ?? [];
    }

    public function createLead(array $fields): int {
        return $this->callMethod('crm.lead.add', [
            'fields' => $fields,
            'params' => ['REGISTER_SONET_EVENT' => 'Y'],
        ]);
    }
}

Контроллер сохраняет заявку в локальной базе и отправляет запрос в CRM. Даже при ошибке API данные не теряются.

class ContactFormController extends Controller
{
    public function submit(ContactFormRequest $request): JsonResponse
    {
        $contact = ContactRequest::create($request->validated());

        try {
            $bitrix = app(Bitrix24Client::class);
            $leadId = $bitrix->createLead([
                'TITLE' => 'Заявка с сайта: ' . $request->name,
                'NAME' => $request->name,
                'PHONE' => [['VALUE' => $request->phone, 'VALUE_TYPE' => 'WORK']],
                'EMAIL' => [['VALUE' => $request->email, 'VALUE_TYPE' => 'WORK']],
                'COMMENTS' => $request->message,
                'SOURCE_ID' => 'WEB',
                'SOURCE_DESCRIPTION' => 'Форма: ' . $request->form_id,
                'ASSIGNED_BY_ID' => config('bitrix24.default_responsible_id'),
                'UF_CRM_UTM_SOURCE' => session('utm_source'),
                'UF_CRM_UTM_MEDIUM' => session('utm_medium'),
                'UF_CRM_UTM_CAMPAIGN' => session('utm_campaign'),
            ]);

            $contact->update(['bitrix_lead_id' => $leadId]);
        } catch (\Exception $e) {
            Log::error('Bitrix24 lead creation failed', ['error' => $e->getMessage()]);
        }

        return response()->json(['success' => true]);
    }
}

Для интернет-магазинов: сделка с товарами

Вместо лида лучше создать сделку с привязкой товаров. Это даёт полную карту заказа в CRM.

public function createDealFromOrder(Order $order): void
{
    $bitrix = app(Bitrix24Client::class);
    $contacts = $bitrix->callMethod('crm.contact.list', [
        'filter' => ['PHONE' => $order->customer_phone],
        'select' => ['ID', 'NAME'],
    ]);
    $contactId = $contacts[0]['ID'] ?? $bitrix->callMethod('crm.contact.add', [
        'fields' => [
            'NAME' => $order->customer_name,
            'PHONE' => [['VALUE' => $order->customer_phone, 'VALUE_TYPE' => 'WORK']],
            'EMAIL' => [['VALUE' => $order->customer_email, 'VALUE_TYPE' => 'WORK']],
        ],
    ]);
    $dealId = $bitrix->callMethod('crm.deal.add', [
        'fields' => [
            'TITLE' => 'Заказ #' . $order->number,
            'CONTACT_ID' => $contactId,
            'OPPORTUNITY' => $order->total,
            'CURRENCY_ID' => 'USD',
            'STAGE_ID' => 'NEW',
            'COMMENTS' => $this->buildOrderComment($order),
        ],
    ]);
    $productRows = $order->items->map(fn($item) => [
        'PRODUCT_NAME' => $item->product->name,
        'PRICE' => $item->price,
        'QUANTITY' => $item->quantity,
        'MEASURE_NAME' => 'шт.',
    ])->toArray();
    $bitrix->callMethod('crm.deal.productrows.set', [
        'id' => $dealId,
        'rows' => $productRows,
    ]);
    $order->update(['bitrix_deal_id' => $dealId]);
}

Обработка событий из CRM на сайте

Отметим: когда менеджер меняет статус сделки в Битрикс24, сайт должен обновить статус заказа. Настраиваем входящий webhook с проверкой подписи.

// routes/api.php
Route::post('/webhooks/bitrix24', [Bitrix24WebhookController::class, 'handle'])
    ->middleware('bitrix24.signature');

class Bitrix24WebhookController extends Controller
{
    public function handle(Request $request): Response
    {
        $event = $request->input('event');
        $data = $request->input('data');

        match ($event) {
            'ONCRMDEALSTAGEUPDATED' => $this->onDealStageUpdated($data),
            'ONCRMLEADADD' => $this->onLeadAdded($data),
            default => null,
        };

        return response('OK');
    }

    private function onDealStageUpdated(array $data): void
    {
        $dealId = $data['FIELDS']['ID'];
        $stageId = $data['FIELDS']['STAGE_ID'];

        $order = Order::where('bitrix_deal_id', $dealId)->first();
        if (!$order) return;

        $statusMap = [
            'WON' => 'completed',
            'LOSE' => 'cancelled',
            'IN_PROCESS' => 'processing',
        ];

        if ($status = $statusMap[$stageId] ?? null) {
            $order->update(['status' => $status]);
        }
    }
}

Подпись webhook проверяется middleware:

class Bitrix24SignatureMiddleware {
    public function handle(Request $request, Closure $next): Response {
        $memberId = $request->input('auth.member_id');
        if ($memberId !== config('bitrix24.member_id')) {
            abort(403);
        }
        return $next($request);
    }
}

Для внедрения под ваш проект свяжитесь с нашими инженерами.

Как настроить исходящий вебхук за 15 минут?

  1. В Битрикс24 перейдите в «Приложения» → «Вебхук» → «Исходящий вебхук».
  2. Укажите URL-адрес обработчика на вашем сайте.
  3. Выберите события: создание лида, изменение сделки и т.д.
  4. Сохраните. Теперь все выбранные события будут отправляться на ваш сервер.

Сравнение методов интеграции: REST API и webhook

Параметр REST API Webhook (исходящий)
Авторизация OAuth-токен Секретный ключ
Инициация Сайт → CRM CRM → Сайт
Подходит для Массовая синхронизация Уведомления о событиях
Ошибки Ответ сервера Потеря события при недоступности

Что входит в работу?

  • Настройка исходящего вебхука и пункта приёма на сайте.
  • Реализация создания лидов и сделок с передачей всех необходимых полей.
  • Двусторонняя синхронизация статусов через входящий webhook.
  • Интеграция UTM-меток и источников трафика.
  • Обработка ошибок и повторная отправка при сбоях.
  • Документирование API-эндпоинтов и инструкция для менеджеров.
  • Тестирование в песочнице и боевом контуре.
Тип данных Лид (Lead) Сделка (Deal)
Для кого Простая заявка Интернет-магазин, сложная воронка
Товары Не привязаны Привязка товарных позиций
Статусы Нет стадий Воронка со стадиями
Счёт Без суммы Сумма и валюта
Воронка Единый лид Разные этапы продаж

Сроки ориентировочно

Базовая интеграция (лиды из форм) — 1–2 дня. Двусторонняя синхронизация сделок и товаров — 3–4 дня. Добавление телефонии и кастомных воронок — плюс 1–2 дня. Точную оценку дадим после анализа вашего стека. Закажите интеграцию — мы подготовим коммерческое предложение в течение дня.

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

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060