Интеграция 1С-Битрикс с amoCRM

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс с amoCRM
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Интеграция 1С-Битрикс с amoCRM

Заказы в Битрикс, лиды в amoCRM, менеджеры переключаются между двумя вкладками и вручную копируют данные. Контакт клиента в CRM не совпадает с данными в заказе, история переписки разорвана. Интеграция устраняет ручной труд и строит единую воронку: от первого визита на сайт до закрытия сделки. Разберём архитектуру, API amoCRM, типовые потоки данных и подводные камни.

Потоки данных

Поток Направление Триггер Приоритет
Лиды с форм сайта Битрикс → amoCRM Отправка формы Высокий
Заказы Битрикс → amoCRM Оформление заказа Критичный
Контакты Битрикс ↔ amoCRM При создании лида/заказа Высокий
Статусы сделок amoCRM → Битрикс Смена этапа воронки Средний
Товары каталога Битрикс → amoCRM По расписанию Низкий

Основной поток — заказы и лиды из Битрикс в amoCRM. Обратный поток (статусы) нужен, если на сайте есть личный кабинет с отслеживанием обработки заказа.

API amoCRM v4

amoCRM использует OAuth 2.0 с long-lived refresh token. После авторизации через интеграцию (раздел Настройки → Интеграции в amoCRM) вы получаете client_id, client_secret, redirect_uri. Первичный обмен кода на токены — стандартный OAuth-флоу. Refresh token обновляется при каждом обновлении access token (срок жизни access token — 20 минут).

Хранение токенов в Битрикс: таблица b_option модуля или отдельная таблица. Обязательно шифруйте или храните вне публичной директории. Access token кэшируйте в runtime, refresh вызывайте только при 401.

Базовый URL API: https://{subdomain}.amocrm.ru/api/v4/.

Ключевые эндпоинты:

  • POST /leads — создание сделки (лида).
  • POST /contacts — создание контакта.
  • POST /leads/complex — создание сделки с контактом и компанией одним запросом. Рекомендуемый метод — атомарная операция.
  • GET /leads/{id} — получение сделки.
  • PATCH /leads/{id} — обновление сделки (смена этапа, добавление полей).
  • POST /catalogs/{catalog_id}/elements — товары в каталоге amoCRM.

Ограничения: 7 запросов в секунду на аккаунт. При превышении — HTTP 429 с заголовком Retry-After.

Создание сделки при оформлении заказа

Обработчик события OnSaleOrderSaved (модуль sale):

use Bitrix\Main\EventManager;

EventManager::getInstance()->addEventHandler(
    'sale', 'OnSaleOrderSaved',
    ['AmoCrmIntegration', 'onOrderSaved']
);

Метод onOrderSaved извлекает данные заказа и формирует запрос к amoCRM:

  1. Поиск контактаGET /contacts?query={phone_or_email}. Если найден — используем его ID. Если нет — создаём нового.
  2. Создание сделкиPOST /leads/complex с привязкой к контакту, названием «Заказ #{ORDER_ID}», суммой, UTM-метками в кастомных полях.

Маппинг полей заказа Битрикс → amoCRM:

Битрикс (заказ) amoCRM (сделка) Тип поля
PRICE (сумма заказа) price Стандартное
STATUS_ID status_id (этап воронки) Стандартное
Имя + Фамилия покупателя contacts[0].first_name/last_name Контакт
Телефон contacts[0].custom_fields (PHONE) Контакт
Email contacts[0].custom_fields (EMAIL) Контакт
Список товаров Примечание или каталог amoCRM Кастомное
UTM-метки (из cookie/свойств) Кастомные поля сделки Кастомное

UTM-метки — отдельная задача. Битрикс из коробки не сохраняет UTM в заказе. Нужно ловить их на фронте (JavaScript), сохранять в cookie или $_SESSION, а при оформлении заказа записывать в свойства (PROPERTY_UTM_SOURCE, PROPERTY_UTM_MEDIUM и т.д.). Оттуда — в кастомные поля сделки amoCRM.

Синхронизация статусов обратно

amoCRM поддерживает webhooks — при смене этапа сделки отправляет POST на указанный URL. Создаём обработчик /local/tools/amocrm_webhook.php:

  1. Принимаем POST от amoCRM (массив leads[status][0]).
  2. Извлекаем id сделки и status_id (ID этапа воронки).
  3. По id сделки находим заказ Битрикс (через кастомное поле заказа PROPERTY_AMO_LEAD_ID или таблицу маппинга).
  4. Обновляем статус заказа через \Bitrix\Sale\Order::load($orderId)setField('STATUS_ID', $mappedStatus)save().

Маппинг статусов воронки amoCRM → статусов заказа Битрикс хранится в конфигурации: массив [amo_status_id => bitrix_status_id].

Безопасность webhook: amoCRM не подписывает запросы. Проверяйте IP отправителя (список IP amoCRM в документации) или используйте секретный параметр в URL.

Обработка форм сайта

Формы обратной связи, callback, вопросы — всё это лиды. Два подхода:

  1. Через веб-формы Битрикс — обработчик OnAfterResultAdd модуля form или OnAfterFormResultAdd создаёт сделку в amoCRM.
  2. Через amoCRM формы — JS-виджет amoCRM на сайте, данные идут напрямую в CRM, минуя Битрикс. Проще, но теряется связь с Битрикс.

Рекомендация — первый вариант. Данные сначала сохраняются в Битрикс (надёжное хранение), затем асинхронно уходят в amoCRM.

Очередь и обработка ошибок

amoCRM API может быть недоступен (HTTP 500, 429, сетевая ошибка). Отправку заказов и лидов ставьте в очередь:

  • Таблица amocrm_queue с полями id, type (lead/order/status), payload (JSON), attempts, status, last_error, created_at.
  • Агент или cron-скрипт обрабатывает очередь каждую минуту. При ошибке — инкремент attempts, при attempts > 5status = 'failed', уведомление.

Сроки

Этап Время
OAuth-интеграция + хранение токенов 1 день
Передача заказов → сделки 2-3 дня
Контакты: поиск дублей + создание 1-2 дня
UTM-метки: сбор + передача 1 день
Webhook обратной синхронизации статусов 1-2 дня
Формы → лиды 1 день
Очередь + обработка ошибок 1 день
Тестирование, edge cases 1-2 дня
Итого 1-2 недели