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

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

Как интегрировать сайт с CRM Битрикс24 для автоматизации лидогенерации.

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

Интеграция сайта с CRM-системой — ключевой шаг для автоматизации маркетинга и продаж. Битрикс24 — популярная российская CRM, и в этом гайде мы разберём, как настроить интеграцию.

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

Автоматический сбор лидов — заявки попадают в CRM мгновенно

Единая база клиентов — вся информация в одном месте

Автоматические уведомления — менеджеры получают уведомления о новых заявках

Аналитика воронки продаж — отслеживайте конверсию на каждом этапе

Способы интеграции

1. Вебхуки (рекомендуется)

Самый простой способ для большинства задач.

Преимущества:

  • Простая настройка
  • Не требует OAuth
  • Идеален для отправки данных с сайта

2. REST API

Более мощный, но сложный способ.

Когда использовать:

  • Двусторонняя синхронизация
  • Работа с несколькими порталами
  • Сложные бизнес-процессы

Настройка через вебхуки

Шаг 1. Создание входящего вебхука

  1. Откройте Битрикс24
  2. Перейдите в Dev раздел (или введите /rest/ в адресной строке)
  3. Нажмите ДобавитьВходящий вебхук
  4. Выберите права доступа:
    • crm — для работы с лидами и сделками
    • catalog — для товаров
    • user — для пользователей
  5. Скопируйте URL вебхука

Шаг 2. Отправка лида с сайта

Пример на PHP:

<?php
// Данные вебхука
$webhookUrl = 'https://your-domain.bitrix24.ru/rest/1/abcdefg123456/';

// Данные лида
$data = [
    'fields' => [
        'TITLE' => 'Заявка с сайта',
        'NAME' => $_POST['name'],
        'PHONE' => [
            ['VALUE' => $_POST['phone'], 'VALUE_TYPE' => 'WORK']
        ],
        'EMAIL' => [
            ['VALUE' => $_POST['email'], 'VALUE_TYPE' => 'WORK']
        ],
        'SOURCE_DESCRIPTION' => 'Заявка с формы лендинга',
    ]
];

// Отправка
$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => $webhookUrl . 'crm.lead.add',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query($data),
]);

$result = curl_exec($curl);
curl_close($curl);

// Проверка результата
$response = json_decode($result, true);
if ($response['result']) {
    echo 'Лид создан! ID: ' . $response['result'];
} else {
    echo 'Ошибка: ' . print_r($response['error'], true);
}

Шаг 3. JavaScript-пример

Для фронтенда:

async function sendLeadToBitrix(formData) {
  const webhookUrl = 'https://your-domain.bitrix24.ru/rest/1/abcdefg123456/';

  const data = {
    fields: {
      TITLE: 'Заявка с сайта',
      NAME: formData.name,
      PHONE: [{ VALUE: formData.phone, VALUE_TYPE: 'WORK' }],
      EMAIL: [{ VALUE: formData.email, VALUE_TYPE: 'WORK' }],
      SOURCE_DESCRIPTION: 'Заявка с формы лендинга',
    }
  };

  try {
    const response = await fetch(webhookUrl + 'crm.lead.add', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(data),
    });

    const result = await response.json();

    if (result.result) {
      console.log('Лид создан! ID:', result.result);
      return result.result;
    } else {
      console.error('Ошибка:', result.error);
      return null;
    }
  } catch (error) {
    console.error('Ошибка запроса:', error);
    return null;
  }
}

REST API интеграция

OAuth авторизация

Для сложных интеграций нужен OAuth:

  1. Создайте локальное приложение в Битрикс24
  2. Получите CLIENT_ID и CLIENT_SECRET
  3. Получите AUTH_CODE
  4. Обменяйте AUTH_CODE на ACCESS_TOKEN

Пример запроса с OAuth

<?php
$accessToken = 'your-access-token';
$domain = 'https://your-domain.bitrix24.ru';

$data = [
    'fields' => [
        'TITLE' => 'Заявка с сайта',
        'NAME' => $_POST['name'],
        // ... остальные поля
    ]
];

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => $domain . '/rest/crm.lead.add?auth=' . $accessToken,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query($data),
]);

$result = curl_exec($curl);
curl_close($curl);

Полезные советы

1. Проверка дубликатов

Перед созданием лида проверьте, существует ли контакт:

// Поиск контакта по телефону
$searchData = [
    'filter' => [
        'PHONE' => $_POST['phone']
    ]
];

$searchResult = file_get_contents(
    $webhookUrl . 'crm.duplicate.findbycomm?' . http_build_query($searchData)
);

$existingContact = json_decode($searchResult, true);

if (!empty($existingContact['result'])) {
    // Контакт существует, обновляем
    $contactId = $existingContact['result'][0];
    // ... обновление
} else {
    // Создаём новый
}

2. Логирование

Логируйте все запросы для отладки:

function logRequest($url, $data, $response) {
    $logEntry = sprintf(
        "[%s] URL: %s\nData: %s\nResponse: %s\n\n",
        date('Y-m-d H:i:s'),
        $url,
        print_r($data, true),
        print_r($response, true)
    );

    file_put_contents(__DIR__ . '/bitrix.log', $logEntry, FILE_APPEND);
}

3. Обработка ошибок

Проверяйте ошибки и лимиты:

$response = json_decode(curl_exec($curl), true);

if (!empty($response['error'])) {
    $error = $response['error'];

    // Лимит запросов
    if ($error === 'QUERY_LIMIT_EXCEEDED') {
        // Подождать и повторить
        sleep(1);
    }

    // Ошибка авторизации
    if (strpos($error, 'invalid_token') !== false) {
        // Обновить токен
    }
}

Заключение

Интеграция с Битрикс24 — это мощный инструмент для автоматизации продаж. Начните с вебхуков для простых задач, переходите к REST API для сложных сценариев.

Мы специализируемся на интеграциях с Битрикс24. Свяжитесь с нами для консультации.

Частые вопросы

Вебхук — это URL-адрес, который позволяет отправлять данные в Битрикс24 без OAuth-авторизации. Простейший способ интеграции.

Стоимость зависит от сложности: от 15 000 ₽ за базовую интеграцию до 100 000+ ₽ за сложные решения.

Да, любой сайт на любой технологии можно интегрировать с Битрикс24 через REST API.

Также полезно

Нужна интеграция?

Обсудим вашу задачу и найдём лучшее решение

Какой тип задачи вас интересует?

Какой у вас масштаб команды/компании?

Какие у вас сроки?

Как с вами связаться?

Спасибо за заявку!

Мы свяжемся с вами в течение 2 часов