Інтеграція 1С-Бітрікс з amoCRM

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс з amoCRM
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Інтеграція 1С-Bitrix з amoCRM

Замовлення в Bitrix, ліди в amoCRM, менеджери переключаються між двома вкладками й вручну копіюють дані. Контакт клієнта в CRM не збігається з даними в замовленні, історія переписки розривається. Інтеграція усуває ручну роботу й будує єдину воронку: від першого відвідування сайту до закриття угоди. Розглянемо архітектуру, API amoCRM, типові потоки даних і підводні камені.

Потоки даних

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

Основний потік — замовлення й ліди з Bitrix в amoCRM. Обернений потік (статуси) потрібен, якщо на сайті є особистий кабінет із відслідковуванням обробки замовлення.

API amoCRM v4

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

Зберігання токенів у Bitrix: таблиця b_option модуля або окрема таблиця. Обов'язково шифруйте або зберігайте поза публічною директорією. Кешуйте access token в runtime, refresh викликайте лише при 401.

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

Ключові endpoint'и:

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

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

Створення угоди при оформленні замовлення

Обробник eventos 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-мітками в кастомних полях.

Відображення полів замовлення Bitrix → amoCRM:

Bitrix (замовлення) 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-мітки — окреме завдання. Bitrix з коробки не зберігає 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 угоди знаходимо замовлення Bitrix (через кастомне поле замовлення PROPERTY_AMO_LEAD_ID або таблицю відображення).
  4. Оновлюємо статус замовлення через \Bitrix\Sale\Order::load($orderId)setField('STATUS_ID', $mappedStatus)save().

Відображення статусів воронки amoCRM → статусів замовлення Bitrix зберігається в конфігурації: масив [amo_status_id => bitrix_status_id].

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

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

Форми зворотного зв'язку, callback, запитання — усе це ліди. Два підходи:

  1. Через веб-форми Bitrix — обробник OnAfterResultAdd (модуль form) або OnAfterFormResultAdd створює угоду в amoCRM.
  2. Через форми amoCRM — JS-віджет amoCRM на сайті, дані йдуть напрямки в CRM, мінуючи Bitrix. Простіше, але втрачається зв'язок з Bitrix.

Рекомендація — перший варіант. Дані спочатку зберігаються в Bitrix (надійне зберігання), потім асинхронно йдуть в amoCRM.

Черга й обробка помилок

API amoCRM може бути недоступний (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 тижні