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

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

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

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

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

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

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

Этапы разработки

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1358
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1250
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    956
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1188
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    929
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    947

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

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

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

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

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

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

При превышении лимита запросов (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'    => 'RUB',
            '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 дня. Точную оценку дадим после анализа вашего стека. Закажите интеграцию — мы подготовим коммерческое предложение в течение дня.

Интеграция сайта с CRM: Битрикс24, amoCRM, Salesforce, HubSpot

Менеджер по продажам ведёт сделки в CRM, а заявки с сайта падают на почту. Он их вручную переносит. Теряет половину. Забывает перезвонить. Это не проблема менеджера — это архитектурная дыра между сайтом и процессами компании. Мы закрываем её интеграцией CRM: отправляем лиды напрямую в воронку, создаём сделки за 30 секунд после отправки формы, исключаем ручной ввод. Закажите аудит текущей схемы — получите план интеграции под ключ.

Интеграция — это не просто POST в API. Это борьба с потерями данных, таймаутами, дубликатами и рассинхронизацией. Мы решаем три ключевые проблемы: асинхронная доставка (чтобы пользователь не ждал ответа CRM), дедупликация (один email — один лид) и двусторонняя обратная связь (смена статуса в CRM мгновенно обновляет сайт). Ниже — как это работает на практике.

Битрикс24: REST API и события

Битрикс24 — самая распространённая CRM на российском рынке. REST API доступен через OAuth 2.0 или через incoming webhook (проще, но менее безопасно для продакшена). Основные сущности: lead, deal, contact, company.

Создание лида: POST /rest/crm.lead.add с набором полей. Привязка к воронке: SOURCE_ID. Добавление комментария: crm.timeline.comment.add. Отслеживание изменений в реальном времени — через Event Handlers: регистрируем хук через event.bind, Битрикс24 отправляет POST на наш endpoint при изменении статуса сделки.

Сложность Битрикс24 — кастомные поля. У каждой установки они уникальны, их ID нужно узнавать через crm.lead.fields. Полная синхронизация полей между сайтом и CRM требует либо ручного маппинга, либо механизма автоматического обнаружения. Мы гарантируем корректное сопоставление даже в нестандартных конфигурациях — опыт 20+ проектов с Битрикс24 подтверждает это.

amoCRM: современный REST

amoCRM (теперь Kommo для международного рынка) имеет более чистый API. OAuth 2.0 с refresh token, JSON API, предсказуемые endpoint. Воронки — pipelines, сделки — leads, контакты — contacts.

Особенность: при создании сделки нужно явно передать pipeline_id и status_id. Без них сделка попадает в дефолтную воронку, что часто не то, что нужно. Теги для классификации источников лидов — через _embedded.tags. Webhook для входящих событий — настраивается в ЛК, поддерживает add, update, delete, status, note. Рекомендуем проверять подпись webhook через API-ключ и отвечать 200 OK быстрее 5 секунд, иначе CRM считает доставку неудачной.

Salesforce и HubSpot: enterprise-уровень

Salesforce — enterprise выбор. REST API, SOQL для сложных запросов, Apex для серверной логики внутри платформы. Интеграция через Salesforce REST API или через Zapier/MuleSoft если бюджет позволяет middleware. Для прямой интеграции из PHP — phpforce/soap-client или developerforce/Force.com-Toolkit-for-PHP. Основная сложность — маппинг кастомных объектов и полей, которых в каждом enterprise инстансе сотни. Используем Describe Global для автоматического сбора метаданных — это снижает время настройки в 3 раза по сравнению с ручным разбором документации (Salesforce Developer Guide).

HubSpot — популярен у SaaS-компаний и международного B2B. HubSpot API v3 — REST, хороший SDK для PHP и Node.js (@hubspot/api-client). Contacts, Companies, Deals — стандартные объекты. Forms API позволяет отправлять данные с любой формы прямо в HubSpot без нативного виджета (важно для кастомного дизайна форм). Особенность: HubSpot требует access_token с правами на конкретный скоуп — неверная конфигурация токена приводит к 403 Forbidden без понятного сообщения. Вкладываем в интеграцию error_logging с кодом ошибки — отладка занимает минуты, а не часы.

Какую CRM выбрать: Битрикс24, amoCRM или HubSpot?

Критерий Битрикс24 amoCRM HubSpot
Сложность API Средняя (REST + webhooks, кастомные поля) Низкая (чистый JSON API) Средняя (REST + SDK, OAuth 2.0)
Типичная задержка при синхронном запросе 200-600 мс 100-300 мс 150-400 мс
Дедупликация по email Встроенная через crm.duplicate.findByComm Через поиск контактов Через contacts/search
Webhook (события) Event Handlers (push) Настраивается в ЛК Webhook + Automations
Лучше всего подходит Российский B2B, госсектор Средний и малый бизнес Международный B2B, SaaS

Почему важна асинхронная отправка?

Синхронный запрос к API CRM прямо из обработчика формы — плохая идея. API может быть недоступен 2 секунды, пользователь ждёт. Правильная схема: форма сабмитится → сохраняем в БД → ставим job в очередь → возвращаем 200 пользователю немедленно → worker асинхронно отправляет в CRM → при ошибке — retry с экспоненциальным backoff. Мы используем Redis + Bull (Node.js) или Laravel Queue (PHP) — это гарантирует доставку даже при временных сбоях CRM.

Дедупликация. Один и тот же контакт может заполнить форму дважды. CRM не должна создавать два дублирующих лида. Проверка перед созданием: поиск по email через crm.duplicate.findByComm (Битрикс24) или contacts/search (HubSpot), если найден — добавляем задачу/комментарий к существующему, не создаём новый. Снижает количество дубликатов на 95% по опыту наших проектов.

Двусторонняя синхронизация. Если менеджер меняет статус сделки в CRM — сайт должен знать (например, для личного кабинета клиента). Webhooks от CRM → endpoint на сайте → обновление статуса в БД → уведомление клиенту. Важно: проверять подпись webhook и отвечать 200 OK быстро (до 5 секунд), иначе CRM считает доставку неудачной. Мы гарантируем, что задержка между изменением статуса в CRM и появлением на сайте не превышает 3 секунд.

Как мы проводим интеграцию: 5 шагов

  1. Аудит потоков данных — анализируем текущую передачу заявок, структуру полей CRM, выявляем узкие места. На выходе — схема «как есть» и «как будет».
  2. Проектирование архитектуры — выбираем механизм очереди (Redis Bull, Laravel Queue), определяем способ дедупликации, маппинг полей. Готовим спецификацию endpoint.
  3. Реализация на staging — пишем код на Laravel или Node.js, настраиваем webhook, тестируем с реальными данными: создание лидов, обновление статусов, обработка ошибок.
  4. Нагрузочное тестирование — проверяем, как система справляется с пиковыми нагрузками (например, 500 заявок в минуту). Исправляем тайминги и retry-политики.
  5. Деплой и документирование — выкатываем на продакшн, обучаем команду, передаём инструкцию по мониторингу и чистке повторных попыток.

Что входит в работу (deliverables)

  • Аудит текущих процессов — схема потоков данных, структура полей CRM, типичные ошибки.
  • Проектирование архитектуры — выбор очереди, механизм дедупликации, маппинг полей.
  • Реализация интеграции — код на Laravel/Node.js, настройка webhook, тестирование на staging.
  • Документация — описание endpoint, инструкция для менеджера, схема обработки ошибок.
  • Обучение команды — кто отвечает за поддержку, как чистить повторные попытки.
  • Гарантийная поддержка — 30 дней после деплоя: исправление багов, корректировка маппинга.

Сроки и стоимость

Сценарий Срок
Одна CRM, передача лидов с форм 1–2 недели
Двусторонняя синхронизация + статусы 3–5 недель
Несколько CRM + маппинг кастомных полей 4–8 недель

Стоимость рассчитывается индивидуально после аудита текущих процессов и структуры данных в CRM. Экономия на ручном вводе — от 50 000 до 150 000 рублей в месяц. Типичный бюджет интеграции — от 40 000 до 200 000 рублей в зависимости от CRM и сложности. Свяжитесь с нами для оценки проекта — мы пришлём коммерческое предложение в течение одного рабочего дня. Опыт 5+ лет и 20+ проектов интеграций с различными CRM гарантирует результат без скрытых проблем. Получите консультацию инженера, чтобы убедиться: ваша воронка продаж начнёт работать без ручного переноса данных.

Дополнительные источники: Customer relationship management (Wikipedia) · REST API (Wikipedia)