Продукт +
Чат Виджеты Помощник Команды и роли База знаний Внутренние заметки
Тарифы
Ресурсы +
Журнал и база знаний Документация
Контакты Войти Начать бесплатно

Установка Нотифлоу на 1С-Битрикс: шаблон и OnEpilog

Нотифлоу на 1С-Битрикс ставится обычной вставкой <script>-сниппета в шаблон сайта — отдельного модуля для маркетплейса 1С-Битрикс пока нет, и не нужен. Самый простой способ — добавить код в header.php активного шаблона. Для нескольких шаблонов разом удобнее обработчик события OnEpilog в init.php. Обе схемы совместимы с композитным кэшем — скрипт грузится async после рендера.

Скриншот админки 1С-Битрикс: подключение скрипта чата через настройки шаблона
Установка чата Нотифлоу на 1С-Битрикс

1С-Битрикс CMS vs Битрикс24: где ставится чат

Часто путаются два продукта. 1С-Битрикс: Управление сайтом (CMS) — это движок для корпоративного сайта или интернет-магазина. На нем ставится виджет чата от внешнего сервиса вроде Нотифлоу.

Битрикс24 — это CRM с собственным «Открытым каналом», у которого свой виджет чата на сайте. Открытый канал интегрируется в Битрикс24 для приема обращений в CRM.

Если вам нужен чат с продвинутыми сценариями (попапы, чек-листы онбординга, NPS, маршрутизация по тарифу) — Нотифлоу на 1С-Битрикс CMS. Если достаточно базового онлайн-консультанта и сделки в Битрикс24 — родной открытый канал. Сравнение продуктов — в статье встроенный чат Битрикс24 vs внешний.

Способ 1: вставка кода в шаблон сайта

Файл шаблона — /local/templates/<имя_шаблона>/header.php. Если кастомных шаблонов нет — /bitrix/templates/.default/header.php.

Откройте файл по FTP или через «Контент → Структура сайта → Файлы и папки». Найдите закрывающий тег </head>. Прямо перед ним вставьте <script> от Нотифлоу (полностью скопированный из «Подписка → Установка виджета» в кабинете):

<?php
// ... существующий код ...
?>
<script>
    (function(w,d,s,o,f,js,fjs){
        w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};
        js=d.createElement(s),fjs=d.getElementsByTagName(s)[0];
        js.id=o;js.src=f;js.async=1;fjs.parentNode.insertBefore(js,fjs);
    }(window,document,'script','nw','https://cp.notiflow.ru/js/widget.js'));
    nw('init', {apiKey:'YOUR_API_KEY_UUID'});
</script>
</head>

YOUR_API_KEY_UUID уже подставлен в готовом сниппете в кабинете — просто скопируйте целиком. Если редактируете через админку — после сохранения сбросьте кэш: «Настройки → Производительность → Очистка файлов кэша → Очистить все».

Где найти </head> в header.php

В типовом шаблоне 1С-Битрикс закрывающий </head> идет после вызова $APPLICATION->ShowHead():

<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
?><!DOCTYPE html>
<html>
<head>
    <?$APPLICATION->ShowHead();?>
    <title><?$APPLICATION->ShowTitle()?></title>
    <link href="<?=SITE_TEMPLATE_PATH?>/styles.css" rel="stylesheet">
    <!-- ВСТАВЛЯЙТЕ КОД НОТИФЛОУ СЮДА -->
</head>
<body>

Не вставляйте до ShowHead() — иначе на отдельных страницах с переопределенным шаблоном код может потеряться.

Установка на нескольких шаблонах сайта

Большие порталы 1С-Битрикс часто используют несколько шаблонов: один для главной, другой для каталога, третий для блога. Чтобы чат работал везде, надо вставить код в header.php каждого шаблона.

Список шаблонов: «Настройки → Настройки продукта → Сайты → Шаблоны сайтов». Откройте каждый, найдите header.php, вставьте код перед </head>.

Способ для нескольких шаблонов разом — обработчик события OnEpilog в init.php:

// /bitrix/php_interface/init.php или /local/php_interface/init.php

AddEventHandler('main', 'OnEpilog', 'НотифлоуInsertScript');
function НотифлоуInsertScript() {
    if (defined('ADMIN_SECTION') && ADMIN_SECTION) return;
    ?>
    <script>
        (function(w,d,s,o,f,js,fjs){
            w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};
            js=d.createElement(s),fjs=d.getElementsByTagName(s)[0];
            js.id=o;js.src=f;js.async=1;fjs.parentNode.insertBefore(js,fjs);
        }(window,document,'script','nw','https://cp.notiflow.ru/js/widget.js'));
        nw('init', {apiKey:'YOUR_API_KEY_UUID'});
    </script>
    <?php
}

Этот вариант ставит скрипт во все шаблоны разом и не требует править каждый header.php.

Совместимость с композитным кэшем

Композитный режим 1С-Битрикс кэширует HTML страницы целиком и отдает его до того, как PHP-скрипт инициализируется. Это значит:

  • скрипт чата, вставленный в header.php, попадает в кэшированный HTML и работает корректно
  • скрипт через OnEpilog-обработчик тоже попадает, потому что эпилог рендерится в момент сборки кэша
  • скрипт, вставленный через JS-инициализацию из бэкенда (например, динамический userHash) — НЕ попадет в кэш, нужно использовать поле динамической загрузки

Для серверной идентификации пользователя (см. передача атрибутов) используйте Composite-исключения: данные авторизованного пользователя подгружайте AJAX-запросом и вызывайте nw('identify', ...) после получения ответа.

Установка в каталоге интернет-магазина

В типовом решении «1С-Битрикс: Малый бизнес» каталог использует тот же header.php, что и остальной сайт — установка одна на все.

Если у вас «1С-Битрикс: Бизнес» или «1С-Битрикс24: Корпоративный портал» с отдельными шаблонами для каталога — повторите установку в шаблоне каталога. Проверьте на странице товара, что виджет появляется.

Для триггеров на корзину передавайте события через JS SDK:

// в шаблоне корзины
nw('track', 'cart_viewed', {
  cart_total: 5990,
  items_count: 4
});

Дальше можно настроить попап «брошенная корзина» в кабинете Нотифлоу — описано в статье проактивные попапы для e-commerce.

Что делать, если виджет не появляется

Чек-лист по убыванию частоты проблем:

  1. Сбросьте кэш: «Настройки → Производительность → Очистка кэша → Очистить все». После правки шаблона композитный кэш держит старую версию
  2. Проверьте, что домен в Нотифлоу совпадает с реальным URL (с/без www, http/https)
  3. Откройте DevTools Console — нет ли ошибки Failed to load cp.notiflow.ru/js/widget.js. Если есть — проверьте брандмауэр сервера, может блокировать исходящие запросы
  4. На страницах админки виджет не нужен — обработчик OnEpilog исключает их через ADMIN_SECTION. Тестируйте на публичной части
  5. Если у вас несколько шаблонов и чат работает только на одном — добавили код не во все header.php

Часто задаваемые вопросы

Чем отличается чат на сайте от Открытых линий Битрикс24?

Чат на сайте — это виджет, который ставится в шаблон 1С-Битрикс CMS. Нотифлоу и подобные сервисы — внешние, со своими сценариями и аналитикой. Открытые линии Битрикс24 — родной канал внутри CRM, проще в связке с воронкой продаж, но беднее по поведенческим триггерам.

Совместим ли Нотифлоу с композитным кэшем?

Да. Скрипт, вставленный в header.php или через OnEpilog, попадает в кэшированный HTML и работает корректно. Динамические данные (атрибуты пользователя) подгружайте отдельным AJAX и вызывайте nw('identify', ...) после получения.

Куда вставить код, если у меня несколько шаблонов?

Либо в header.php каждого шаблона, либо одной строкой в обработчик OnEpilog в /local/php_interface/init.php — тогда скрипт автоматически появится во всех шаблонах.

Нужны ли права администратора?

Для правки header.php или init.php — права на редактирование шаблона сайта и доступ к файлам по FTP / через админку. На большинстве хостингов разработчику этого хватает.

Работает ли в редакции «Старт»?

Да. Установка одинаковая для всех редакций («Старт», «Малый бизнес», «Бизнес»). Маркетплейс и шаблоны доступны во всех версиях.


Поставьте Нотифлоу на 1С-Битрикс за 10 минут — создайте аккаунт, скопируйте код из «Каналы → Чат на сайте → Установка». Сравнение с встроенным чатом Битрикс24 — в статье Битрикс24: встроенный чат vs внешний. Установка на других CMS — в гайдах по Tilda и WordPress. Подробнее о виджете — на странице чата.

Помогла ли эта статья?

Попробовать на своем сайте?

14 дней тарифа «Бизнес», без привязки карты. Подключение за 15 минут.