Как объединить 1С-Битрикс и amoCRM в единую воронку
Заказы в Битрикс, лиды в amoCRM — менеджеры переключаются между двумя вкладками и вручную копируют данные. Контакт клиента в CRM не совпадает с данными в заказе, история переписки разорвана. Интеграция устраняет ручной труд и строит единую воронку, которая повышает конверсию и скорость обработки заявок. Мы — команда с 10+ годами опыта интеграции Битрикс и amoCRM, реализовали более 50 проектов. Гарантируем стабильную синхронизацию и полную поддержку после запуска. Свяжитесь с нами, чтобы обсудить ваш проект. Получите консультацию прямо сейчас.
Почему кастомная интеграция надёжнее готовых модулей?
Кастомная интеграция на прямом API даёт полный контроль над каждым запросом и обработкой ошибок. Разберём архитектуру, протокол OAuth 2.0, типовые потоки данных и подводные камни.
Потоки данных
| Поток | Направление | Триггер | Приоритет |
|---|---|---|---|
| Лиды с форм сайта | Битрикс → amoCRM | Отправка формы | Высокий |
| Заказы | Битрикс → amoCRM | Оформление заказа | Критичный |
| Контакты | Битрикс ↔ amoCRM | При создании лида/заказа | Высокий |
| Статусы сделок | amoCRM → Битрикс | Смена этапа воронки | Средний |
| Товары каталога | Битрикс → amoCRM | По расписанию | Низкий |
Основной поток — заказы и лиды из Битрикс в amoCRM. Обратный поток (статусы) нужен, если на сайте есть личный кабинет с отслеживанием обработки заказа.
Как устроен API amoCRM v4?
a moCRM использует 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.
Как синхронизировать заказы из Битрикс в amoCRM?
Создание сделки при оформлении заказа
Обработчик события OnSaleOrderSaved (модуль sale):
use Bitrix\Main\EventManager; EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderSaved', ['AmoCrmIntegration', 'onOrderSaved'] ); Метод onOrderSaved извлекает данные заказа и формирует запрос к amoCRM:
- Поиск контакта —
GET /contacts?query={phone_or_email}. Если найден — используем его ID. Если нет — создаём нового. - Создание сделки —
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) |
Контакт |
contacts[0].custom_fields (EMAIL) |
Контакт | |
| Список товаров | Примечание или каталог amoCRM | Кастомное |
| UTM-метки (из cookie/свойств) | Кастомные поля сделки | Кастомное |
UTM-метки — отдельная задача. Битрикс из коробки не сохраняет UTM в заказе. Нужно ловить их на фронте (JavaScript), сохранять в cookie или $_SESSION, а при оформлении заказа записывать в свойства (PROPERTY_UTM_SOURCE, PROPERTY_UTM_MEDIUM и т.д.). Оттуда — в кастомные поля сделки amoCRM.
Синхронизация статусов обратно
a moCRM поддерживает webhooks — при смене этапа сделки отправляет POST на указанный URL. Создаём обработчик /local/tools/amocrm_webhook.php:
- Принимаем POST от amoCRM (массив
leads[status][0]). - Извлекаем
idсделки иstatus_id(ID этапа воронки). - По
idсделки находим заказ Битрикс (через кастомное поле заказаPROPERTY_AMO_LEAD_IDили таблицу маппинга). - Обновляем статус заказа через
\Bitrix\Sale\Order::load($orderId)→setField('STATUS_ID', $mappedStatus)→save().
Маппинг статусов воронки amoCRM → статусов заказа Битрикс хранится в конфигурации: массив [amo_status_id => bitrix_status_id].
Безопасность webhook: amoCRM не подписывает запросы. Проверяйте IP отправителя (список IP amoCRM в документации) или используйте секретный параметр в URL.
Обработка форм сайта
Формы обратной связи, callback, вопросы — всё это лиды. Два подхода:
- Через веб-формы Битрикс — обработчик
OnAfterResultAddмодуляformилиOnAfterFormResultAddсоздаёт сделку в amoCRM. - Через amoCRM формы — JS-виджет amoCRM на сайте, данные идут напрямую в CRM, минуя Битрикс. Проще, но теряется связь с Битрикс.
Рекомендация — первый вариант. Данные сначала сохраняются в Битрикс (надёжное хранение), затем асинхронно уходят в amoCRM.
Что делать при ошибках API? Очередь и обработка ошибок
a moCRM API может быть недоступен (HTTP 500, 429, сетевая ошибка). Отправку заказов и лидов ставьте в очередь:
Структура таблицы очереди:
- Таблица
amocrm_queueс полямиid,type(lead/order/status),payload(JSON),attempts,status,last_error,created_at. - Агент или cron-скрипт обрабатывает очередь каждую минуту. При ошибке — инкремент
attempts, приattempts > 5—status = 'failed', уведомление.
Что входит в работу интеграции
- Аудит текущих бизнес-процессов и данных.
- Настройка OAuth-интеграции и безопасное хранение токенов.
- Разработка передачи заказов, лидов и контактов.
- Сбор и передача UTM-меток.
- Webhook обратной синхронизации статусов.
- Очередь запросов с повторными попытками.
- Документация по архитектуре и логике интеграции.
- Обучение сотрудников работе с единой воронкой.
- Поддержка после запуска (1 месяц инцидент-менеджмента).
Сроки
| Этап | Время |
|---|---|
| OAuth-интеграция + хранение токенов | 1 день |
| Передача заказов → сделки | 2-3 дня |
| Контакты: поиск дублей + создание | 1-2 дня |
| UTM-метки: сбор + передача | 1 день |
| Webhook обратной синхронизации статусов | 1-2 дня |
| Формы → лиды | 1 день |
| Очередь + обработка ошибок | 1 день |
| Тестирование, edge cases | 1-2 дня |
| Итого | 1-2 недели |
Мы — команда сертифицированных специалистов с 10+ летним опытом в Битрикс и amoCRM. За нашими плечами более 50 успешных интеграций. Гарантируем стабильную работу и предоставляем поддержку после запуска. Свяжитесь с нами, чтобы обсудить ваш проект. Получите консультацию прямо сейчас.







