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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс с Carrot Quest
Средняя
~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С-Битрикс с Carrot Quest

Carrot Quest — платформа, которая объединяет онлайн-чат, email-маркетинг, поп-апы и аналитику поведения пользователей в одном инструменте. В отличие от простых чатов, здесь важна идентификация пользователя: каждое событие (просмотр товара, добавление в корзину, оформление заказа) привязывается к профилю. Без этой привязки Carrot Quest превращается в дорогой онлайн-чат.

Установка трекинг-кода

Код Carrot Quest вставляется в шаблон сайта перед </body>:

// В шаблоне Битрикс
(function(){ /* ... стандартный сниппет Carrot Quest ... */ })();
carrotquest.connect('YOUR_API_KEY');

Идентификация пользователя из Битрикс

Ключевая операция — carrotquest.identify(). Без неё все события анонимны и не накапливаются в профиле.

<?php if ($USER->IsAuthorized()):
    $userId    = $USER->GetID();
    $userEmail = $USER->GetEmail();
    $userName  = $USER->GetFullName();
    // Хэш для верификации на сервере Carrot Quest
    $hash = hash_hmac('sha256', $userId, 'YOUR_SECRET_KEY');
?>
<script>
carrotquest.identify({
    '$user_id':    <?= json_encode($userId) ?>,
    '$email':      <?= json_encode($userEmail) ?>,
    '$name':       <?= json_encode($userName) ?>,
    '$phone':      <?= json_encode(getUserPhone($userId)) ?>,
    'orders_count': <?= getUserOrdersCount($userId) ?>,
    'total_spent':  <?= getUserTotalSpent($userId) ?>,
}, <?= json_encode($hash) ?>);
</script>
<?php endif; ?>

Параметр хэша — HMAC-SHA256 от user_id с секретным ключом. Это верифицирует подлинность данных на стороне Carrot Quest и предотвращает подстановку чужого ID.

Отправка событий из каталога Битрикс

Carrot Quest ценен как аналитическая платформа именно тогда, когда получает события из всей воронки. События отправляются через carrotquest.track():

Просмотр карточки товара (в шаблоне catalog.element):

carrotquest.track('Просмотр товара', {
    product_id:   <?= $arResult['ID'] ?>,
    product_name: <?= json_encode($arResult['NAME']) ?>,
    price:        <?= $arResult['CATALOG_PRICE_1'] ?? 0 ?>,
    category:     <?= json_encode($sectionName) ?>,
});

Добавление в корзину (обработчик кнопки):

// После успешного AJAX-добавления в корзину
carrotquest.track('Товар добавлен в корзину', {
    product_id:   productId,
    product_name: productName,
    price:        price,
    quantity:     quantity,
});

Оформление заказа (в шаблоне sale.order.ajax, событие после создания заказа):

carrotquest.track('Заказ оформлен', {
    order_id:    <?= $orderId ?>,
    total_price: <?= $orderTotal ?>,
    items_count: <?= $itemsCount ?>,
    payment_method: <?= json_encode($paymentMethod) ?>,
});

Сегментация пользователей через атрибуты

После идентификации carrotquest.identify() можно обновлять атрибуты пользователя при каждом визите — это позволяет строить сегменты в Carrot Quest для триггерных сообщений:

// Обновляем после каждой авторизации
carrotquest.identify({
    'last_visit':       new Date().toISOString(),
    'cart_value':       <?= $basketTotal ?>,
    'cart_items_count': <?= $basketCount ?>,
    'loyalty_level':    <?= json_encode($loyaltyLevel) ?>,
});

Интеграция через PHP API Carrot Quest

Помимо JS-трекинга, Carrot Quest имеет REST API для серверной стороны. Это нужно, когда событие происходит вне браузера — например, изменение статуса заказа:

// При смене статуса заказа — уведомляем Carrot Quest
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale', 'OnSaleStatusOrder',
    function (\Bitrix\Main\Event $event) {
        $order      = $event->getParameter('ENTITY');
        $userId     = $order->getUserId();
        $userEmail  = getUserEmail($userId);
        $statusId   = $order->getField('STATUS_ID');

        $payload = [
            'id'         => $userEmail,
            'id_type'    => 1, // 1 = email
            'event'      => 'Статус заказа изменён',
            'params'     => [
                'order_id'   => $order->getId(),
                'new_status' => $statusId,
            ],
        ];

        $ch = curl_init('https://api.carrotquest.io/v1/users/events');
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Token YOUR_API_KEY', 'Content-Type: application/json']);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_exec($ch);
        curl_close($ch);
    }
);

Автоматические сообщения по событиям

После настройки трекинга в интерфейсе Carrot Quest создаются триггерные цепочки:

  • Пользователь просмотрел товар X → не добавил в корзину за 30 минут → чат-сообщение «Нужна помощь с выбором?»
  • Заказ создан → статус «Доставлен» → через 7 дней email «Оставьте отзыв»
  • Пользователь не заходил 60 дней → email со скидкой

Всё это настраивается в интерфейсе Carrot Quest без кода — при условии, что события приходят корректно.

Отладка трекинга

Используйте консоль браузера: при правильной настройке carrotquest.track() и carrotquest.identify() выводят подтверждение в консоль в режиме разработки. В административной панели Carrot Quest раздел Аналитика → События показывает поступающие события в реальном времени.

Состав работ: установка кода и идентификация пользователя — 1 день. Трекинг всех событий воронки — 2–3 дня. Серверный API для смен статуса заказа — ещё 1 день. Настройка триггерных цепочек — 1–2 дня после накопления первых данных.