Интеграция 1С-Битрикс с Chatra
Chatra — онлайн-чат с фокусом на простоту и скорость развёртывания. Из нетривиального: офлайн-форма вместо закрытого виджета, автосообщения по поведению пользователя, просмотр набираемого текста в реальном времени. Интеграция с Битрикс — это прежде всего идентификация пользователя и передача данных о его сессии в операторский интерфейс.
Установка кода Chatra
<!-- В шаблоне Битрикс перед </body> -->
<script>
(function(d, w, c) {
w.ChatraID = 'YOUR_CHATRA_ID';
var s = d.createElement('script');
w[c] = w[c] || function() { (w[c].q = w[c].q || []).push(arguments); };
s.async = true;
s.src = 'https://call.chatra.io/chatra.js';
if (d.head) d.head.appendChild(s);
}(document, window, 'Chatra'));
</script>
Идентификация авторизованного пользователя
Chatra поддерживает предварительную идентификацию через объект ChatraSetup:
<?php if ($USER->IsAuthorized()):
$userId = $USER->GetID();
$userEmail = $USER->GetEmail();
$userName = $USER->GetFullName();
?>
<script>
window.ChatraSetup = {
clientId: 'bitrix-user-<?= $userId ?>', // стабильный ID для истории чатов
};
Chatra('setIntegrationData', {
name: <?= json_encode($userName) ?>,
email: <?= json_encode($userEmail) ?>,
phone: <?= json_encode(getUserPhone($userId)) ?>,
'ID пользователя': <?= $userId ?>,
'Заказов': <?= getUserOrdersCount($userId) ?>,
'Сумма покупок': <?= getUserTotalSpent($userId) ?> + ' руб.',
});
</script>
<?php endif; ?>
clientId — ключевой параметр: с ним история переписки сохраняется при повторных визитах одного пользователя. Без него каждый сеанс — анонимный новый диалог.
Автоматические сообщения по поведению
Chatra позволяет настраивать автосообщения прямо в интерфейсе — по времени на странице, по разделу, по количеству посещений. Для Битрикс-специфичных триггеров (например, «пользователь смотрит страницу оформления больше 60 секунд») нужен JavaScript:
// Если пользователь завис на checkout дольше 60 секунд
<?php if (strpos($_SERVER['REQUEST_URI'], 'order') !== false): ?>
<script>
setTimeout(function() {
Chatra('sendAutoMessage', 'Нужна помощь с оформлением заказа? Готов ответить на вопросы.');
}, 60000);
</script>
<?php endif; ?>
sendAutoMessage доступно только в версии Chatra с тарифом Full Suite.
Передача данных корзины
<?php
\Bitrix\Main\Loader::includeModule('sale');
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID);
$basketTotal = $basket->getPrice();
$basketCount = count($basket);
?>
<script>
Chatra('setIntegrationData', {
'Корзина: сумма': <?= $basketTotal ?> + ' руб.',
'Корзина: товаров': <?= $basketCount ?>,
});
</script>
Webhook Chatra: создание лидов в Битрикс
Chatra отправляет Webhook при закрытии диалога (тариф Full Suite). Настройка: Dashboard → Settings → Integrations → Webhooks.
// /local/api/chatra-webhook.php
$payload = json_decode(file_get_contents('php://input'), true);
if (isset($payload['trigger']) && $payload['trigger'] === 'chat.done') {
$chat = $payload['chat'];
$visitor = $payload['visitor'];
$transcript = '';
foreach ($chat['messages'] as $msg) {
$transcript .= "[{$msg['authorName']}]: {$msg['text']}\n";
}
// Создаём задачу или лид в Битрикс24
$leadTitle = 'Chatra: ' . ($visitor['name'] ?? $visitor['email'] ?? 'Гость');
createBitrix24Lead([
'TITLE' => $leadTitle,
'NAME' => $visitor['name'] ?? '',
'EMAIL' => $visitor['email'] ?? '',
'PHONE' => $visitor['phone'] ?? '',
'COMMENTS' => $transcript,
'SOURCE_DESCRIPTION' => 'Chatra #' . $chat['id'],
]);
}
http_response_code(200);
Отключение виджета на служебных страницах
В Битрикс есть страницы, где чат нежелателен: административная часть /bitrix/admin/, страница оплаты с редиректом, страница ошибки. Ограничьте подключение в шаблоне:
<?php
$excludePaths = ['/bitrix/', '/local/ajax/', '/api/'];
$showChatra = true;
foreach ($excludePaths as $path) {
if (strpos($_SERVER['REQUEST_URI'], $path) === 0) {
$showChatra = false;
break;
}
}
if ($showChatra):
?>
<!-- код Chatra здесь -->
<?php endif; ?>
Состав работ: установка и идентификация пользователя — 4–8 часов. Данные корзины и контекст страницы — ещё полдня. Webhook и интеграция с CRM — 1 день. Общий срок — 2–3 рабочих дня с тестированием.







