REST API для Битрикс24 сайты в 2025: инструкция по настройке и использованию

Полное руководство по использованию REST API для сайтов Битрикс24. Инструкция по настройке, примеры кода и практические советы для разработчиков.
Содержание
  1. Что такое REST API для Битрикс24 и зачем он нужен сайтам
  2. Основные возможности REST API Битрикс24 для сайтов
  3. Управление лидами и клиентами
  4. Синхронизация каталога товаров
  5. Автоматизация бизнес-процессов
  6. Пошаговая инструкция по настройке REST API
  7. Шаг 1: получение доступа к API
  8. Шаг 2: настройка веб-хуков
  9. Шаг 3: базовая интеграция с сайтом
  10. Практические примеры использования REST API
  11. Создание лида из формы на сайте
  12. Получение информации о клиенте
  13. Обновление статуса заказа
  14. Работа с пользовательскими полями
  15. Получение списка пользовательских полей
  16. Создание лида с пользовательскими полями
  17. Обработка ошибок и отладка
  18. Оптимизация производительности
  19. Батчевые запросы
  20. Кэширование данных
  21. Безопасность при работе с API
  22. Защита веб-хуков
  23. Валидация данных
  24. Мониторинг и аналитика
  25. Логирование API запросов
  26. Создание дашборда активности
  27. Интеграция с популярными CMS
  28. WordPress
  29. Битрикс (CMS)
  30. Расширенные возможности API
  31. Работа с файлами
  32. Создание задач и событий
  33. Миграция данных
  34. Заключение

Что такое REST API для Битрикс24 и зачем он нужен сайтам

REST API (Application Programming Interface) в Битрикс24 представляет собой мощный инструмент для интеграции внешних систем с CRM-платформой. Для владельцев сайтов это означает возможность автоматизировать передачу данных между веб-ресурсом и системой управления клиентами, создавать персонализированный пользовательский опыт и значительно повысить эффективность бизнес-процессов.

API позволяет вашему сайту «общаться» с Битрикс24 напрямую, обмениваясь информацией о клиентах, заказах, задачах и других важных данных. Это особенно актуально для интернет-магазинов, корпоративных порталов и лендингов, где необходима тесная интеграция с CRM-системой.

Основные возможности REST API Битрикс24 для сайтов

Управление лидами и клиентами

С помощью REST API можно автоматически создавать лиды из форм обратной связи на сайте, обновлять информацию о клиентах и отслеживать их активность. Это позволяет:

  • Автоматически передавать данные из контактных форм в CRM
  • Создавать персонализированные предложения на основе истории взаимодействий
  • Сегментировать аудиторию для таргетированных рассылок
  • Отслеживать путь клиента от первого посещения до покупки

Синхронизация каталога товаров

Для интернет-магазинов REST API предоставляет возможности для:

  • Автоматической синхронизации каталога товаров между сайтом и CRM
  • Обновления остатков и цен в режиме реального времени
  • Создания персонализированных каталогов для VIP-клиентов
  • Управления акциями и скидками

Автоматизация бизнес-процессов

API позволяет создавать сложные автоматизированные сценарии:

  • Автоматическое создание задач для менеджеров при поступлении заявок
  • Отправка уведомлений о статусе заказа
  • Формирование отчетов и аналитики
  • Интеграция с платежными системами

Пошаговая инструкция по настройке REST API

Шаг 1: получение доступа к API

Для начала работы с REST API необходимо получить права доступа в вашем Битрикс24:

  1. Войдите в административную панель Битрикс24
  2. Перейдите в раздел «Приложения» → «Разработчикам»
  3. Выберите «Другие» → «Локальное приложение»
  4. Укажите необходимые права доступа для вашего приложения
  5. Сохраните полученные ключи доступа

Шаг 2: настройка веб-хуков

Веб-хуки (Webhook) — это специальные URL-адреса, которые позволяют внешним системам обращаться к API Битрикс24:

Создание входящего веб-хука:

  1. В разделе «Приложения» выберите «Веб-хуки»
  2. Нажмите «Добавить веб-хук»
  3. Выберите тип «Входящий веб-хук»
  4. Укажите необходимые права доступа
  5. Скопируйте полученный URL для использования в коде

Шаг 3: базовая интеграция с сайтом

Пример простой интеграции формы обратной связи с CRM:


// PHP код для отправки данных в Битрикс24
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$data = array(
'TITLE' => 'Новая заявка с сайта',
'NAME' => $_POST['name'],
'PHONE' => array(
array('VALUE' => $_POST['phone'], 'VALUE_TYPE' => 'WORK')
),
'EMAIL' => array(
array('VALUE' => $_POST['email'], 'VALUE_TYPE' => 'WORK')
),
'SOURCE_ID' => 'WEB'
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'crm.lead.add.json');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array('fields' => $data)));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);

Практические примеры использования REST API

Создание лида из формы на сайте

Самый распространенный сценарий использования — автоматическое создание лидов. Рассмотрим расширенный пример с дополнительными полями:


function createLead($name, $phone, $email, $comment, $source) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$fields = array(
'TITLE' => 'Заявка с сайта: ' . $name,
'NAME' => $name,
'PHONE' => array(
array('VALUE' => $phone, 'VALUE_TYPE' => 'WORK')
),
'EMAIL' => array(
array('VALUE' => $email, 'VALUE_TYPE' => 'WORK')
),
'COMMENTS' => $comment,
'SOURCE_ID' => $source,
'ASSIGNED_BY_ID' => 1, // ID ответственного менеджера
'CURRENCY_ID' => 'RUB',
'OPPORTUNITY' => 0
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'crm.lead.add.json');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array('fields' => $fields)));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
return json_decode($result, true);
}

Получение информации о клиенте

Для создания персонализированного опыта на сайте можно получать информацию о клиенте из CRM:


function getClientInfo($email) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$params = array(
'filter' => array('EMAIL' => $email),
'select' => array('ID', 'NAME', 'LAST_NAME', 'PHONE', 'EMAIL')
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'crm.contact.list.json?' . http_build_query($params));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result, true);
}

Обновление статуса заказа

Для интернет-магазинов важно синхронизировать статусы заказов между сайтом и CRM:


function updateDealStatus($dealId, $stageId) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$fields = array(
'STAGE_ID' => $stageId,
'COMMENTS' => 'Статус обновлен автоматически с сайта'
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'crm.deal.update.json');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array(
'id' => $dealId,
'fields' => $fields
)));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result, true);
}

Работа с пользовательскими полями

Битрикс24 позволяет создавать пользовательские поля для хранения специфической информации. Для работы с ними через API необходимо знать их системные названия:

Получение списка пользовательских полей


function getCustomFields($entityType) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'crm.' . $entityType . '.userfield.list.json');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result, true);
}

Создание лида с пользовательскими полями


$customFields = array(
'UF_CRM_1234567890' => 'Значение пользовательского поля',
'UF_CRM_0987654321' => 'Другое значение'
);
$fields = array_merge($standardFields, $customFields);

Обработка ошибок и отладка

При работе с API важно правильно обрабатывать ошибки и логировать запросы для отладки:


function makeApiRequest($method, $params = array()) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . $method . '.json');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
$result = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$error = curl_error($curl);
curl_close($curl);
// Логирование для отладки
error_log("API Request: $method, HTTP Code: $httpCode, Response: $result");
if ($error) {
throw new Exception("cURL Error: " . $error);
}
if ($httpCode !== 200) {
throw new Exception("HTTP Error: " . $httpCode);
}
$decoded = json_decode($result, true);
if (isset($decoded['error'])) {
throw new Exception("API Error: " . $decoded['error_description']);
}
return $decoded;
}

Оптимизация производительности

Батчевые запросы

Для повышения производительности при работе с большим количеством данных используйте батчевые запросы:


function batchCreateLeads($leadsData) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$commands = array();
foreach ($leadsData as $index => $leadData) {
$commands["lead_$index"] = "crm.lead.add?fields=" . urlencode(json_encode($leadData));
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'batch.json');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array('cmd' => $commands)));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result, true);
}

Кэширование данных

Для часто запрашиваемой информации рекомендуется использовать кэширование:


function getCachedClientInfo($email, $cacheTime = 3600) {
$cacheKey = 'client_' . md5($email);
$cacheFile = sys_get_temp_dir() . '/' . $cacheKey . '.cache';
// Проверяем кэш
if (file_exists($cacheFile) && (time() - filemtime($cacheFile)) < $cacheTime) {
return json_decode(file_get_contents($cacheFile), true);
}
// Получаем данные из API
$clientInfo = getClientInfo($email);
// Сохраняем в кэш
file_put_contents($cacheFile, json_encode($clientInfo));
return $clientInfo;
}

Безопасность при работе с API

Защита веб-хуков

Для повышения безопасности рекомендуется:

  • Использовать HTTPS для всех запросов
  • Ограничить доступ к веб-хукам по IP-адресам
  • Регулярно обновлять ключи доступа
  • Валидировать входящие данные

Валидация данных


function validateLeadData($data) {
$errors = array();
if (empty($data['name'])) {
$errors[] = 'Имя обязательно для заполнения';
}
if (empty($data['phone']) && empty($data['email'])) {
$errors[] = 'Необходимо указать телефон или email';
}
if (!empty($data['email']) && !filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
$errors[] = 'Некорректный email адрес';
}
return $errors;
}

Мониторинг и аналитика

Для эффективного использования API важно отслеживать его работу:

Логирование API запросов


function logApiActivity($method, $params, $result, $executionTime) {
$logData = array(
'timestamp' => date('Y-m-d H:i:s'),
'method' => $method,
'params' => $params,
'result' => $result,
'execution_time' => $executionTime,
'memory_usage' => memory_get_usage(true)
);
file_put_contents(
'api_log.txt',
json_encode($logData) . PHP_EOL,
FILE_APPEND | LOCK_EX
);
}

Создание дашборда активности

Создайте простой дашборд для мониторинга API активности:


function getApiStatistics($period = 'today') {
$logFile = 'api_log.txt';
if (!file_exists($logFile)) {
return array('requests' => 0, 'errors' => 0);
}
$lines = file($logFile);
$stats = array('requests' => 0, 'errors' => 0, 'methods' => array());
foreach ($lines as $line) {
$data = json_decode($line, true);
if ($data && $this->isInPeriod($data['timestamp'], $period)) {
$stats['requests']++;
if (isset($data['result']['error'])) {
$stats['errors']++;
}
$method = $data['method'];
$stats['methods'][$method] = ($stats['methods'][$method] ?? 0) + 1;
}
}
return $stats;
}

Интеграция с популярными CMS

WordPress

Для WordPress можно создать плагин для интеграции с Битрикс24:


// functions.php
function bitrix24_process_form($form_data) {
$webhook_url = get_option('bitrix24_webhook_url');
$fields = array(
'TITLE' => 'Заявка с WordPress сайта',
'NAME' => sanitize_text_field($form_data['name']),
'PHONE' => array(
array('VALUE' => sanitize_text_field($form_data['phone']), 'VALUE_TYPE' => 'WORK')
),
'EMAIL' => array(
array('VALUE' => sanitize_email($form_data['email']), 'VALUE_TYPE' => 'WORK')
),
'SOURCE_ID' => 'WEB'
);
$response = wp_remote_post($webhook_url . 'crm.lead.add.json', array(
'body' => array('fields' => $fields),
'timeout' => 30
));
return !is_wp_error($response);
}
// Хук для Contact Form 7
add_action('wpcf7_mail_sent', function($contact_form) {
$submission = WPCF7_Submission::get_instance();
$posted_data = $submission->get_posted_data();
bitrix24_process_form($posted_data);
});

Битрикс (CMS)

Для сайтов на Битрикс CMS интеграция может быть реализована через компоненты:


// В компоненте формы
if ($arResult['FORM_RESULT'] == 'addok') {
$bitrix24 = new Bitrix24Integration();
$bitrix24->createLead(array(
'name' => $_POST['name'],
'phone' => $_POST['phone'],
'email' => $_POST['email'],
'source' => 'SITE_FORM'
));
}

Расширенные возможности API

Работа с файлами

API позволяет прикреплять файлы к сущностям CRM:


function uploadFileToLead($leadId, $filePath) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
// Сначала загружаем файл
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'disk.folder.uploadfile.json');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
'id' => 'shared_files_s1', // ID папки
'data' => array('NAME' => basename($filePath)),
'file' => new CURLFile($filePath)
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);
$fileData = json_decode($result, true);
// Прикрепляем файл к лиду
if ($fileData['result']) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'crm.lead.update.json');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array(
'id' => $leadId,
'fields' => array(
'UF_CRM_TASK' => array($fileData['result']['ID'])
)
)));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result, true);
}
return false;
}

Создание задач и событий

API позволяет создавать задачи и события календаря:


function createTaskForLead($leadId, $title, $description, $responsible) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$fields = array(
'TITLE' => $title,
'DESCRIPTION' => $description,
'RESPONSIBLE_ID' => $responsible,
'DEADLINE' => date('c', strtotime('+3 days')),
'UF_CRM_TASK' => array('L_' . $leadId) // Привязка к лиду
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webhook_url . 'tasks.task.add.json');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array('fields' => $fields)));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result, true);
}

Миграция данных

При переходе с другой CRM или при запуске нового проекта часто требуется массовая загрузка данных:


function migrateContactsFromCSV($csvFile) {
$webhook_url = 'https://your-domain.bitrix24.ru/rest/1/your-webhook-code/';
$handle = fopen($csvFile, 'r');
$header = fgetcsv($handle);
$batchSize = 50;
$batch = array();
$batchCount = 0;
while (($row = fgetcsv($handle)) !== FALSE) {
$contactData = array_combine($header, $row);
$fields = array(
'NAME' => $contactData['name'],
'LAST_NAME' => $contactData['last_name'],
'PHONE' => array(
array('VALUE' => $contactData['phone'], 'VALUE_TYPE' => 'WORK')
),
'EMAIL' => array(
array('VALUE' => $contactData['email'], 'VALUE_TYPE' => 'WORK')
),
'COMPANY_TITLE' => $contactData['company']
);
$batch["contact_$batchCount"] = $fields;
$batchCount++;
if ($batchCount >= $batchSize) {
$this->sendBatchContacts($batch);
$batch = array();
$batchCount = 0;
// Небольшая пауза между батчами
usleep(500000); // 0.5 секунды
}
}
// Отправляем остаток
if (!empty($batch)) {
$this->sendBatchContacts($batch);
}
fclose($handle);
}

Заключение

REST API Битрикс24 предоставляет мощные возможности для интеграции сайтов с CRM-системой. Правильное использование API позволяет автоматизировать рутинные процессы, улучшить качество обслуживания клиентов и повысить эффективность бизнеса.

Ключевые преимущества использования REST API:

  • Автоматизация — сокращение ручного ввода данных
  • Персонализация — создание индивидуального опыта для каждого клиента
  • Аналитика — получение детальной статистики по всем каналам
  • Масштабируемость — возможность обработки больших объемов данных

Наша команда предоставляет полный спектр услуг по настройке и внедрению Битрикс24, включая:

  • Разработку и настройку REST API интеграций
  • Создание пользовательских веб-хуков и автоматизаций
  • Миграцию данных из других CRM-систем
  • Настройку синхронизации между сайтом и Битрикс24
  • Обучение сотрудников работе с системой
  • Техническую поддержку и сопровождение

Мы поможем вам максимально эффективно использовать возможности Битрикс24 для развития вашего бизнеса. Свяжитесь с нами для получения персональной консультации и расчета стоимости внедрения.

Оцените статью
Битрикс24
Добавить комментарий