Двостороння інтеграція 1С-Бітрікс з Mindbox
Розрізнені профілі клієнтів та втрачені транзакції — стандартний біль інтернет-магазину на 1С-Бітрікс, який використовує Mindbox для маркетингу. Без коректної інтеграції ви не бачите повної картини поведінки аудиторії, а розсилки працюють наосліп. Ми вирішуємо це завдання: налаштовуємо двосторонній обмін даними між Бітріксом та Mindbox так, щоб кожен клієнт отримував персоналізовані пропозиції на основі реальних дій — на сайті, в мобільному застосунку та в офлайні. Наш підхід включає трекінг через JavaScript SDK та передачу замовлень через Server-side API v3, що гарантує точність даних у реальному часі. Згідно з документацією Mindbox, використання єдиного ідентифікатора підвищує точність персоналізації на 30%. Отримайте консультацію, щоб дізнатися точні терміни та вартість для вашого проекту.
Проблеми, які вирішуємо
- Розрізнені профілі клієнтів. Без єдиного ідентифікатора одні й ті самі клієнти створюють різні акаунти або залишаються анонімними. Mindbox об'єднує їх за email та телефоном, будуючи єдиний профіль клієнта. Ми налаштовуємо передачу deviceUUID та customerId з Бітрікса на всі точки контакту. За нашими даними, це усуває до 40% дублікатів.
- Втрата трекінгу в офлайн-каналах. Якщо клієнт купив у магазині, а потім зайшов на сайт, його дії не пов'язуються. Mindbox дозволяє синхронізувати офлайн-покупки через завантаження CSV або API — ми інтегруємо ці дані в CRM, що збільшує точність сегментації на 25%.
- Неефективні розсилки. Без сегментованої аудиторії email-кампанії дають низьку конверсію. Mindbox з даними з Бітрікса (категорії товарів, історія замовлень) дозволяє сегментувати за реальною поведінкою, збільшивши Retention Rate на 12–20% вже через півроку.
Як влаштована архітектура інтеграції з Mindbox?
Mindbox працює через два механізми:
- JavaScript SDK (Mindbox.js) — трекінг дій на сайті в реальному часі: перегляди, додавання в кошик, авторизації.
- Server-side API (v3) — передача транзакційних даних: замовлення, реєстрації, оновлення профілю.
Обидва механізми мають використовувати єдиний ідентифікатор клієнта (deviceUUID для анонімних, customerId для авторизованих).
Налаштування JavaScript SDK та Server-side API
У шаблоні Бітрікса (в header.php або компоненті) підключаємо скрипт:
<script> window.mindbox = window.mindbox || function() { mindbox.queue.push(arguments); }; mindbox.queue = mindbox.queue || []; </script> <script async src="//cdn.mindbox.ru/scripts/v1/tracker.js"></script> <script> mindbox('create', { endpointId: '<?= COption::GetOptionString("site","mindbox_endpoint_id") ?>', }); // Передаємо ID авторизованого користувача <?php if ($USER->IsAuthorized()): ?> mindbox('identify', { operation: 'SiteVisit', data: { customer: { ids: { websiteId: '<?= $USER->GetID() ?>' }, }, }, }); <?php endif; ?> </script> Для передачі замовлення використовуємо серверний клієнт:
class MindboxClient { private string $secretKey; private string $endpointId; public function sendOrder(\Bitrix\Sale\Order $order): void { $basket = $order->getBasket(); $props = $order->getPropertyCollection(); $lines = []; foreach ($basket as $item) { $lines[] = [ 'product' => ['ids' => ['websiteId' => (string)$item->getProductId()]], 'quantity' => $item->getQuantity(), 'priceOfLine' => $item->getPrice() * $item->getQuantity(), 'discountOfLine' => 0, ]; } $payload = [ 'order' => [ 'ids' => ['websiteId' => (string)$order->getId()], 'totalPrice' => $order->getPrice(), 'lines' => $lines, 'customer' => [ 'ids' => ['websiteId' => (string)$order->getUserId()], 'email' => $props->getUserEmail(), 'mobilePhone' => $props->getItemByOrderPropertyCode('PHONE')?->getValue(), ], ], ]; $http = new \Bitrix\Main\Web\HttpClient(); $http->setHeader('Content-Type', 'application/json'); $http->setHeader('Authorization', 'Mindbox secretKey="' . $this->secretKey . '"'); $http->post( "https://api.mindbox.ru/v3/operations/sync?endpointId={$this->endpointId}&operation=Website.CreateOrder", json_encode($payload) ); } } Операції (Operations)
Кожна взаємодія в Mindbox — це «операція» з унікальною назвою. Назви створюються в особистому кабінеті Mindbox і передаються в параметрі operation:
| Операція | Подія в Бітріксі |
|---|---|
Website.CreateOrder |
OnSaleOrderSaved (нове замовлення) |
Website.UpdateOrder |
OnSaleOrderSaved (зміна статусу) |
Website.Register |
OnAfterUserRegister |
Website.UpdateProfile |
OnAfterUserUpdate |
Website.SetCart |
OnSaleBasketSaved |
Website.SubscribeEmail |
OnSubscribeSubscribe |
Програма лояльності
Mindbox містить вбудований модуль програми лояльності. При підключенні бали нараховуються за покупки та списуються при оплаті. У формі замовлення додається поле «Використати бали»:
// Отримати баланс балів клієнта public function getCustomerBalance(int $userId): float { $response = $this->callSync('Website.GetCustomerBalance', [ 'customer' => ['ids' => ['websiteId' => (string)$userId]], ]); return $response['customer']['bonusPoints']['available'] ?? 0; } При успішному списанні балів застосовуємо знижку в замовленні через CSaleBasket::UpdatePrice().
Чому Mindbox краще самописної CDP?
Самописні рішення часто потребують місяців розробки, а Mindbox надає готові інструменти: сегментація в 3 рази швидше, шаблони листів, A/B-тестування. Для рітейлерів з оборотом від $1.8M–2.6Mів інтеграція окупається за півроку за рахунок зростання LTV на 15–25% — це може означати до $9k–13kів додаткового прибутку на рік. Час на впровадження самописної CDP може досягати 6 місяців, тоді як інтеграція Mindbox займає 2–4 тижні. Вартість володіння Mindbox розраховується індивідуально залежно від тарифу. Зв'яжіться з нами для консультації.
Кейс: єдиний профіль клієнта
Один з наших клієнтів — мережа косметичних магазинів з інтернет-магазином на Бітріксі, офлайн-касами та мобільним застосунком. До інтеграції дані були розрізнені, маркетологи не бачили повної картини. Після впровадження Mindbox профілі об'єдналися за телефоном та email: клієнт, який купив в офлайні, отримує персоналізований лист на основі чека. Retention rate зріс на 12% за півроку, конверсія в лояльність — на 20%. Автоматична синхронізація налаштована кожні 15 хвилин.
Порівняння типів інтеграції
| Тип інтеграції | Час налаштування | Складність | Результат |
|---|---|---|---|
| Трекінг через JS SDK | 2-3 дні | Низька | Події в реальному часі |
| Server-side API (замовлення) | 5-7 днів | Середня | Транзакції та профілі |
| Програма лояльності | 1-2 тижні | Висока | Бали та знижки |
Що входить в роботу
- Документація: архітектурна схема, опис операцій, інструкція для маркетолога.
- Налаштування: JS SDK на всі сторінки, Server-side API для замовлень та профілів, інтеграція програми лояльності.
- Тестування: перевірка в UAT-середовищі, звірка даних за 3 дні.
- Навчання: вебінар для команди маркетингу та розробки.
- Підтримка: 2 тижні після запуску, виправлення помилок по hotfix.
Як ми працюємо: процес
- Аналітика — аудит поточного трекінгу, складання карти операцій (1–2 дні).
- Проектування — вибір ідентифікаторів, узгодження назв операцій з маркетологами (2–3 дні).
- Реалізація — впровадження SDK, написання серверного клієнта, налаштування подій Бітрікса (5–7 днів).
- Тестування — перевірка передачі всіх типів даних, виправлення помилок (2–3 дні).
- Деплой — викатка на продуктив, моніторинг перших 24 годин (1 день).
Терміни орієнтовно
Базова інтеграція (трекінг + замовлення) — від 2 до 4 тижнів. З програмою лояльності — до 6 тижнів. Вартість розраховується індивідуально після аудиту. Отримайте консультацію — ми оцінимо ваш проект за один день.







