Урок 2. Бот на вашем сайте
Урок 1 закончился публичной ссылкой на чат. Ссылку надо кому-то отправить — а виджет ставит того же бота прямо на вашу страницу: кнопка в углу или блок внутри вёрстки.
Что получится в конце: одна строчка <script> в HTML вашего сайта. Посетитель видит
кнопку чата, нажимает и разговаривает с тем же ботом, что и по ссылке из урока 1. Ничего
переписывать в графе не нужно — это та же публикация и тот же токен.
Шаг 1. Убедитесь, что бот опубликован
Виджет не публикуется отдельно от воркфлоу: он читает ту же опубликованную версию, что и публичный чат.
-
Откройте воркфлоу из урока 1 и перейдите на вкладку Публикация.
-
В списке каналов слева включите переключатель у канала Виджет и нажмите Опубликовать версию 1 (номер версии — ваш).
-
Если бот из урока 1 уже опубликован в канал Публичный чат, публиковать заново не обязательно: токен общий, и виджет с ним уже работает. Включение канала Виджет нужно, чтобы канал честно отображался как опубликованный и чтобы публичный чат можно было позже выключить, не выключив виджет.
Шаг 2. Настройте внешний вид
Настройки виджета живут в том же канале и применяются сразу после сохранения, без повторной публикации: это свойства воркфлоу, а не версии графа. Граф — наоборот, только по публикации.
Ассистент поддержки
Виджет
Перекрашивает всю панель и кнопку.
Пусто — «Чат».
Пусто — только иконка.
Что задаётся: Акцент, Положение (слева или справа), Заголовок панели, Текст кнопки и Иконка кнопки, Открывать автоматически и Разрешённые домены (по одному на строку). После правки нажмите Сохранить настройки виджета.
Подпись «Работает на Flow» в панели чата убирается только настройкой white-label, а она на бесплатном тарифе недоступна.
Шаг 3. Скопируйте код для вставки
Внизу того же канала лежит блок Код для вставки с переключателем Пузырёк / Встроенный и кнопкой Копировать. Токен вашего воркфлоу уже подставлен.
Пузырёк — плавающая кнопка в углу страницы:
<script src="https://app.example.com/widget/flow-widget.js"
data-token="<ваш публичный токен>" data-mode="bubble" async></script>
Встроенный — чат рисуется внутри вашего блока, кнопки нет:
<div id="flow-chat"></div>
<script src="https://app.example.com/widget/flow-widget.js"
data-token="<ваш публичный токен>" data-mode="inline" data-target="#flow-chat" async></script>
В разделе Настройки → Виджет лежит тот
же тег, но с заглушкой <PUBLIC_TOKEN> вместо токена: это общая на всё пространство
страница, а токен принадлежит конкретному воркфлоу. Там же — секрет подписи, он нужен
только для авторизованных посетителей (см. «Встраиваемый виджет»).
Шаг 4. Вставьте тег на страницу
Поставьте скопированную строку перед закрывающим </body> вашего сайта. Больше ничего
подключать не нужно: адрес API виджет берёт из адреса самого скрипта, а внешний вид —
из настроек воркфлоу, которые он запрашивает при загрузке.
Чат монтируется в изолированный Shadow DOM. Это значит, что стили вашего сайта не влияют на виджет, а стили виджета — на ваш сайт, даже если у вас агрессивный глобальный CSS.
Шаг 5. Проверьте на своей странице
Откройте страницу в обычном браузере — не в редакторе. Кнопка появляется в правом нижнем углу (или в левом, если так настроено), клик открывает панель, первое сообщение стартует сессию.
Атрибуты data-*
Всё, кроме токена, необязательно: значения берутся из настроек виджета на сервере, а атрибут в теге перекрывает серверное значение. Так одна и та же настройка может быть разной на двух страницах вашего сайта.
| Атрибут | Что задаёт | Если не указан |
|---|---|---|
| data-token | Публичный токен воркфлоу. Обязателен | Виджет не появится вовсе, в консоли браузера — предупреждение |
| data-mode | bubble (кнопка) или inline (блок) | bubble |
| data-target | CSS-селектор контейнера для inline | Встроенный режим не монтируется, в консоли — предупреждение |
| data-height | Высота встроенной панели | 560px |
| data-position | left или right | Настройка воркфлоу, иначе справа |
| data-accent | Цвет акцента | Настройка воркфлоу |
| data-title | Заголовок панели | Настройка воркфлоу, иначе «Чат» |
| data-launcher-text | Подпись на кнопке | Настройка воркфлоу, иначе только иконка |
| data-launcher-icon | Иконка кнопки (эмодзи) | Настройка воркфлоу, иначе значок сообщения |
| data-auto-open | true — открыть панель сразу | Настройка воркфлоу |
| data-lang | ru или en | Язык браузера посетителя, иначе русский |
| data-user-jwt | Подписанный токен посетителя, если сайт знает, кто он | Диалог анонимный |
Ограничение по доменам
Поле Разрешённые домены (по одному на строку) — список источников, с которых виджету
разрешено работать. Пусто означает «любой домен». Проверяется заголовок Origin браузера
при старте сессии и при отправке сообщения; чужой домен получает в панели надпись
«Этот чат не авторизован на данном домене».
Это мягкая защита: заголовок ставит браузер, и запрос не из браузера его не ставит вовсе. Реальным ограничителем остаётся сам токен — кто угодно, кто его увидел, может писать боту, а запуски тарифицируются владельцу пространства. Относитесь к токену как к публикации, а не как к секрету.
Где смотреть диалоги
Переписка посетителей не теряется: раздел Клиенты показывает список сессий выбранного воркфлоу и всю переписку по каждой. Разбор — в «Клиентах». Технические подробности запуска (какая нода что вернула, сколько стоило) — в «Запусках».
Если не получилось
| Что видно | Почему | Что делать |
|---|---|---|
| Виджета на странице нет вообще | Тег вставлен не туда или без токена: без data-token виджет останавливается и пишет предупреждение в консоль браузера | Откройте консоль (F12) — сообщения помечены [flow-widget]. Вставьте тег перед </body> и скопируйте его из канала «Виджет», не набирайте руками |
| Со встроенным режимом не появилось ничего — ни панели, ни пузырька | data-mode="inline" без валидного data-target: контейнера с таким селектором на странице нет, и загрузчик прекращает работу, ничего не вставив (в консоли остаётся предупреждение) | Проверьте, что <div id="flow-chat"></div> стоит ВЫШЕ тега script и селектор совпадает |
| Виджет есть, но пишет об ошибке запуска | Воркфлоу не опубликован либо публикация снята | Вкладка «Публикация» → включить канал → «Опубликовать версию N» |
| «Этот чат не авторизован на данном домене» | Домен страницы не входит в список разрешённых | Добавьте источник целиком, со схемой: https://example.com. Или очистите поле, чтобы разрешить любой домен |
| Отправка сообщения не проходит | Кончились кредиты (на бесплатном тарифе работа сверх остатка запрещена) | Настройки → Использование |
| Кажется, что поехала вёрстка сайта | Виджет тут ни при чём: он в изолированном Shadow DOM, его CSS наружу не выходит | Ищите причину в своей странице; проверьте гипотезу, убрав тег на минуту |
| Посетитель не может приложить файл | Так и есть: анонимной загрузки в продукте нет | Материалы для ответов кладите в базу знаний сами |