REST API Битрикс24

Полное руководство по интеграции и автоматизации бизнес-процессов

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

🔧 Архитектура REST API Битрикс24

REST API Битрикс24 построен по стандартам RESTful архитектуры и предоставляет доступ ко всем основным модулям платформы через единый интерфейс.

Схема работы с REST API
🔐
Аутентификация

OAuth 2.0 / API ключи

📡
HTTP Запросы

GET, POST, PUT, DELETE

🔄
Обработка

JSON/XML ответы

Результат

Данные / Статус

🔑 Методы аутентификации
  • OAuth 2.0 — для веб-приложений
  • API ключи — для серверной интеграции
  • Вебхуки — для входящих уведомлений
  • Приложения — для маркетплейса
📊 Форматы данных
  • JSON — основной формат
  • XML — для legacy систем
  • Webhook — события в реальном времени
  • Batch — пакетные операции

🛠️ Ключевые модули и методы API

👥 CRM модуль

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

crm.lead.add crm.deal.list crm.contact.update
✅ Задачи и проекты

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

tasks.task.add tasks.task.list tasks.task.update
💬 Чаты и уведомления

Работа с чатами и сообщениями

im.notify im.message.add im.chat.get
📅 Календарь и события

Управление событиями календаря

calendar.event.add calendar.event.get calendar.event.update
📊 Торговый каталог

Управление товарами и ценами

catalog.product.add catalog.product.list catalog.price.update
🤖 AI и автоматизация

Интеграция с AI-помощником

ai.completion bizproc.workflow.start automation.trigger

🔔 Вебхуки и события в реальном времени

Вебхуки позволяют получать уведомления о событиях в Битрикс24 и автоматически запускать обработчики в вашей системе.

// Пример настройки вебхука на создание лида
URL вебхука: https://ваш-сайт.ru/webhook/bitrix24
Событие: OnCrmLeadAdd

// Данные, которые приходят в вебхук
{
  "event": "OnCrmLeadAdd",
  "data": {
    "FIELDS": {
      "ID": "123",
      "TITLE": "Новый лид с сайта",
      "NAME": "Иван",
      "PHONE": "+79991234567"
    }
  }
}
📋 Основные события CRM:
  • OnCrmLeadAdd — новый лид
  • OnCrmDealAdd — новая сделка
  • OnCrmContactUpdate — изменение контакта
  • OnCrmDealStageChange — смена стадии сделки
🔔 События задач и чатов:
  • OnTaskAdd — новая задача
  • OnTaskUpdate — изменение задачи
  • OnImMessageAdd — новое сообщение
  • OnCalendarEventAdd — новое событие

💼 Реальные кейсы интеграции

🛒 Интеграция с WooCommerce

Задача: Автоматически создавать сделки в CRM при новых заказах в интернет-магазине.

🛒

Заказ в WooCommerce

➡️

Webhook

🤖

Скрипт обработки

📊

Сделка в Битрикс24

👥

Задача менеджеру

// PHP код создания сделки из заказа
function createDealFromOrder($orderData) {
  $queryUrl = 'https://portal.bitrix24.ru/rest/1/abc123/crm.deal.add.json';
  $queryData = http_build_query([
    'fields' => [
      'TITLE' => 'Заказ #' . $orderData['id'],
      'STAGE_ID' => 'NEW',
      'OPPORTUNITY' => $orderData['total'],
      'CONTACT_ID' => $orderData['contact_id']
    ]
  ]);
  return file_get_contents($queryUrl, false, stream_context_create([
    'http' => ['method' => 'POST', 'content' => $queryData]
  ]));
}

📞 Интеграция с Asterisk PBX

Задача: Автоматически создавать лиды из входящих звонков и показывать карточку клиента оператору.

Функционал:
  • Определение номера звонящего
  • Поиск в базе контактов
  • Создание лида при новом клиенте
  • Поп-ап уведомление оператору
Результат:
  • +30% к конверсии звонков
  • Персонализированное общение
  • Автоматический учет лидов

📱 Кастомное мобильное приложение

Задача: Разработать мобильное приложение для торговых представителей с офлайн-работой.

Используемые методы:
  • crm.contact.list — база клиентов
  • crm.deal.add — новые заказы
  • disk.folder.uploadfile — фото отчеты
  • tasks.task.add — задачи по визитам
Преимущества:
  • Работа без интернета
  • Фото фиксация визитов
  • GPS трекинг маршрутов
  • Автосинхронизация данных

💻 Практические примеры кода

// Пример: Создание лида с контактом
function createLeadWithContact($name, $phone, $email) {
  // Сначала создаем контакт
  $contactData = [
    'NAME' => $name,
    'PHONE' => [['VALUE' => $phone, 'VALUE_TYPE' => 'WORK']],
    'EMAIL' => [['VALUE' => $email, 'VALUE_TYPE' => 'WORK']]
  ];
  $contactId = bitrixRequest('crm.contact.add', $contactData);

  // Затем создаем лид
  $leadData = [
    'TITLE' => "Лид от $name",
    'CONTACT_ID' => $contactId,
    'SOURCE_ID' => 'WEB',
    'COMMENTS' => "Контакт создан автоматически"
  ];
  return bitrixRequest('crm.lead.add', $leadData);
}
// Универсальная функция для запросов к API
function bitrixRequest($method, $params) {
  $queryUrl = "https://your-portal.bitrix24.ru/rest/1/your_token/$method.json";
  $queryData = http_build_query(['fields' => $params]);
  
  $curl = curl_init();
  curl_setopt_array($curl, [
    CURLOPT_POST => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $queryUrl,
    CURLOPT_POSTFIELDS => $queryData,
  ]);
  
  $result = curl_exec($curl);
  curl_close($curl);
  return json_decode($result, true);
}

🚀 Лучшие практики работы с API

⚡ Оптимизация запросов
  • Используйте batch-запросы для групповых операций
  • Кэшируйте часто запрашиваемые данные
  • Используйте фильтры для уменьшения выборки
  • Ограничивайте количество полей в ответе
🛡️ Безопасность
  • Храните токены в защищенном месте
  • Используйте HTTPS для всех запросов
  • Валидируйте входящие данные вебхуков
  • Ограничивайте права приложений
🔧 Обработка ошибок
  • Всегда проверяйте ответы API
  • Реализуйте повторные попытки при ошибках
  • Логируйте все API-запросы
  • Мониторьте лимиты запросов
📈 Производительность
  • Используйте асинхронные запросы
  • Оптимизируйте частоту запросов
  • Используйте вебхуки вместо поллинга
  • Разделяйте нагрузку по времени

Нужна помощь с интеграцией Битрикс24?

Наши разработчики помогут реализовать любую интеграцию с использованием REST API