Создание и настройка чат-ботов с нуля: инструменты и практика

Курс поможет с нуля понять, как устроены чат-боты, какие инструменты нужны и как собрать рабочего бота для популярных платформ. Вы пройдёте путь от идеи и сценариев до подключения API, тестирования, запуска и поддержки.

1. Что такое чат-бот и какие задачи он решает

Что такое чат-бот и какие задачи он решает

Определение

Чат-бот — это программа, которая ведёт диалог с пользователем в текстовом или голосовом формате через привычный канал (мессенджер, сайт, приложение, соцсеть). Главная идея: пользователь «пишет как человеку», а бот отвечает по сценарию, по данным из систем или с помощью ИИ.

Важно отличать чат-бот от просто формы на сайте:

  • Бот поддерживает диалог (контекст, уточнения, ветвления).
  • Бот работает в канале общения (например, в мессенджере), а не только на веб-странице.
  • Бот может выполнять действия: записывать, создавать заявки, проверять статус, принимать оплату (если подключено).
  • Какие бывают чат-боты

    На практике чаще встречаются смешанные варианты, но полезно понимать базовые типы.

    По логике ответа

  • Сценарные (правила/дерево диалога)
  • - Отвечают по заранее заданным веткам: кнопки, меню, шаблоны. - Хороши там, где процесс стандартизирован (FAQ, запись, статусы).
  • Боты с распознаванием намерений (NLP/интенты)
  • - Понимают смысл сообщения в пределах обученного набора тем. - Удобны, когда пользователи пишут «как попало», а не нажимают кнопки.
  • ИИ-боты (генеративные модели)
  • - Формируют ответы гибко, могут переформулировать и объяснять. - Требуют контроля: источники знаний, ограничения, проверка фактов, безопасность.

    По роли в процессе

  • Информационный — отвечает на вопросы, рассказывает условия, помогает выбрать.
  • Транзакционный — выполняет действие: оформить, оплатить, зарегистрировать, изменить.
  • Поддержка/операторский ассистент — разгружает операторов, собирает данные и передаёт диалог человеку.
  • Из чего обычно состоит чат-бот (простыми словами)

    Даже самый простой бот обычно включает несколько слоёв:

  • Канал — где общается пользователь (сайт, мессенджер, соцсеть).
  • Логика диалога — сценарии, правила, или модуль понимания текста.
  • Данные и интеграции — CRM, база заказов, календарь, платёжные системы, сервисы доставки.
  • Админка и аналитика — где вы обновляете тексты, смотрите статистику, ошибки, просадки.
  • Наглядная схема:

    Какие задачи решает чат-бот

    Ниже — типовые задачи, которые окупаются чаще всего.

    1) Поддержка клиентов 24/7

  • Ответы на частые вопросы (доставка, возврат, тарифы, график).
  • Подсказки по использованию продукта.
  • Сбор проблемы по шаблону (уточняющие вопросы) и создание обращения.
  • 2) Снижение нагрузки на сотрудников

    Бот берёт на себя повторяющиеся обращения и оставляет людям нестандартные случаи. Часто это даёт эффект даже без «умного ИИ», если правильно настроены сценарии и быстрые кнопки.

    3) Продажи и лидогенерация

  • Квалификация лида: что нужно, бюджет, сроки, контакт.
  • Подбор услуги/товара по нескольким вопросам.
  • Запись на консультацию и передача менеджеру.
  • 4) Самообслуживание и статусы

  • Проверка статуса заказа/доставки/заявки.
  • Изменение данных (адрес, время, детали записи) — если интеграции позволяют.
  • 5) Внутренние процессы (для команды)

  • Помощник HR: ответы про отпуска, документы, онбординг.
  • ИТ-поддержка: инструкции, заявки, статусы.
  • Автоматизация согласований (в пределах политики компании).
  • Когда чат-бот не подходит

    Чат-бот — не универсальное решение. Он часто неэффективен, если:

  • Вопросы почти всегда уникальные и требуют экспертизы «в моменте».
  • Нельзя дать быстрый доступ к данным (нет интеграций, процессы не описаны).
  • Цена ошибки высокая (юридические, медицинские решения) — без строгих ограничений и маршрутизации к специалисту.
  • Непонятно, какую именно метрику улучшать (скорость ответа, конверсия, снижение обращений) — тогда сложно оценить успех.
  • Как понять, что бот работает хорошо

    Оценка зависит от цели, но обычно смотрят:

  • Доля решённых диалогов без оператора (self-service rate).
  • Время до первого ответа и время решения.
  • Конверсия (заявка/запись/покупка) для продающих ботов.
  • Удовлетворённость (короткая оценка после диалога).
  • Причины эскалации — на каких шагах пользователи «ломают» сценарий.
  • ---

    Задания для закрепления

    1) Сформулируйте одним предложением, что такое чат-бот, в контексте вашего проекта/работы.

    2) Выберите один реальный процесс (например, запись на услугу) и перечислите 5–7 шагов, которые бот должен пройти с пользователем.

    3) Определите тип бота для трёх ситуаций:

  • FAQ для доставки и возврата.
  • Запись к специалисту с выбором времени.
  • Помощник, который отвечает на «свободные» вопросы о продукте.
  • 4) Назовите 3 причины, почему бот может не дать ожидаемого эффекта именно в вашей компании/задаче.

    5) Придумайте 3 метрики успеха для вашего будущего бота и объясните, почему они важны.

    <details> <summary> Ответы (примерные) </summary>

    1) Пример формулировки: «Чат-бот — это программа в [канал], которая ведёт диалог с пользователем и помогает [цель], используя сценарии и/или ИИ и при необходимости подключая данные из систем».

    2) Пример для записи: - приветствие и выбор цели (записаться/перенести/отменить) - выбор услуги - выбор филиала/формата (онлайн/офлайн) - выбор даты и времени - сбор контактов - подтверждение записи - сообщение с деталями и правилами (адрес, отмена)

    3) Типы бота: - FAQ по доставке/возврату: сценарный бот (меню + поиск по темам) - запись с выбором времени: транзакционный бот (с интеграцией в расписание) - свободные вопросы о продукте: ИИ-бот или NLP-бот (желательно с базой знаний и ограничениями)

    4) Возможные причины: - нет доступа к данным (статусы/расписание/заказы), бот «ничего не может сделать» - процессы не стандартизированы, сценарии постоянно ломаются - не продумана передача оператору и сбор нужных данных до эскалации

    5) Примеры метрик: - доля решённых обращений без оператора (показывает разгрузку) - среднее время решения (показывает удобство) - конверсия в заявку/запись (показывает бизнес-результат)

    </details>

    2. Платформы и каналы: Telegram, WhatsApp, VK, сайт

    Платформы и каналы: Telegram, WhatsApp, VK, сайт

    Канал — это «вход» пользователя в бота: где он пишет сообщения и как получает ответы. Логику, сценарии и интеграции вы проектируете отдельно (см. статью про то, что такое чат-бот и какие задачи он решает), а здесь — как выбрать и настроить правильный канал под аудиторию и процесс.

    Как выбрать канал: практичные критерии

  • Где уже есть ваша аудитория: мессенджер/соцсеть, где вам чаще пишут.
  • Какие действия нужны: меню, формы, платежи, файлы, геолокация, авторизация.
  • Ограничения и правила: модерация, шаблоны сообщений, политика рассылок.
  • Стоимость владения: платные сообщения/провайдеры, поддержка, разработка.
  • Идентификация пользователя: насколько просто связать диалог с CRM/заказом.
  • Сравнение каналов (коротко)

    | Канал | Сильные стороны | Ограничения/риски | Типичные кейсы | |---|---|---|---| | Telegram | Быстро стартовать, удобные кнопки/меню, высокая скорость, много интеграций | Пользовательская база зависит от страны/ниши; нет «номера телефона по умолчанию» как в WhatsApp | Поддержка, FAQ, запись, внутренние боты для команды | | WhatsApp | Максимально привычный канал для клиентов, высокий отклик | Обычно нужен официальный WhatsApp Business API через провайдера, правила шаблонов и ограничений рассылок | Статусы, уведомления, поддержка, сервисные сообщения | | VK | Большая аудитория РФ/СНГ, удобно для сообществ, сочетание с контентом и рекламой | Ограничения платформы/сообщества, важно продумать вход из ленты в диалог | Поддержка сообщества, продажи из соцсети, консультации | | Сайт (виджет) | Пользователь уже на вашем сайте, можно привязать к сессии/корзине, собирать лиды | Нужно решать вопрос спама и идентификации; часть пользователей предпочитает мессенджеры | Подбор товара/услуги, лид-форма, помощь в оформлении |

    Telegram

    Что удобно

  • Низкий порог запуска: бот создаётся быстро, удобно тестировать.
  • Интерфейсы: кнопки, меню, быстрые ответы — хорошо для сценариев.
  • Гибкая интеграция: легко связывать с CRM, базой знаний, сервисами уведомлений.
  • На что обратить внимание

  • Доступ к пользователю: не рассчитывайте, что у вас всегда будет телефон. Если он нужен, продумайте шаг «оставьте номер/почту».
  • UX-детали: пользователи ожидают быстрых ответов и понятной навигации (кнопки, “Назад”, “В меню”).
  • Уведомления: в Telegram проще выстроить подписку на уведомления, но важно делать их полезными и редкими.
  • Когда Telegram — лучший выбор

  • Если у вас B2B, IT, образовательные продукты, внутренние процессы.
  • Если вы хотите быстро прототипировать и часто обновлять сценарии.
  • WhatsApp

    Что удобно

  • Почти у всех клиентов уже есть WhatsApp, особенно в сервисных бизнесах.
  • Высокая «доставляемость» и читаемость сообщений, когда коммуникация релевантна.
  • На что обратить внимание

  • Официальный доступ: чаще всего для бота используют WhatsApp Business Platform (через провайдера). Это влияет на сроки, бюджет и юридические моменты.
  • Шаблоны и правила общения: для некоторых типов исходящих сообщений могут требоваться заранее утверждённые шаблоны. Продумайте, какие сообщения будут сервисными (статус, подтверждение, напоминание), а какие — консультационными.
  • Оплата и лимиты: в WhatsApp часто есть стоимость сообщений/диалогов у провайдера и ограничения на массовые рассылки. Планируйте экономику заранее.
  • Когда WhatsApp — лучший выбор

  • Поддержка клиентов, статусы заказов/записей, сервисные уведомления.
  • Бизнесы, где ключевой идентификатор — номер телефона.
  • VK (Сообщения сообщества)

    Что удобно

  • Естественный путь из контента в диалог: посты, товары, реклама → “Написать”.
  • Подходит для продаж и консультаций внутри сообщества.
  • На что обратить внимание

  • Контекст соцсети: пользователь часто «пришёл посмотреть», а не решать задачу. Первые шаги бота должны быстро объяснять пользу и предлагать понятные варианты.
  • Роль модераторов/операторов: в VK часто нужна быстрая подхватка оператором, особенно при продажах.
  • Единый тон: бот должен звучать как ваше сообщество (стиль, словарь, правила).
  • Когда VK — лучший выбор

  • Если ваш основной трафик и коммуникация уже во VK.
  • Если бот — часть воронки продаж из соцсети.
  • Сайт (чат-виджет)

    Что удобно

  • Максимальная привязка к бизнес-контексту: можно подсказывать по странице, корзине, тарифу.
  • Сбор лидов: посетитель ещё не готов писать в мессенджер, но готов оставить контакт.
  • На что обратить внимание

  • Идентификация: на сайте пользователь может быть анонимным. Продумайте момент, когда нужен контакт: после ценного шага (подбор, расчёт, консультация).
  • Спам и качество обращений: нужен антиспам (лимиты, простая проверка), иначе операторская поддержка «утонет».
  • Передача в привычный канал: часто полезно предложить продолжить в Telegram/WhatsApp, если диалог длинный или нужен статус.
  • Когда сайт — лучший выбор

  • Подбор и помощь в покупке, ответы по продукту на этапе выбора.
  • Когда важно конвертировать трафик сайта в заявки.
  • Мультиканальность: один бот — несколько каналов

    Если пользователи пишут в разные места, выбирайте подход «единая логика + разные каналы».

    Ключевая идея: сценарий и данные единые, а различия — в интерфейсе (кнопки, шаблоны, ограничения) и правилах отправки сообщений.

    Мини-чек: что подготовить перед подключением канала

  • Точки входа: где пользователь увидит кнопку “Написать” или ссылку на чат.
  • Типы сообщений: текст, кнопки, файлы, уведомления, напоминания.
  • Идентификатор: что связывает диалог с клиентом (телефон, email, ID заказа).
  • Эскалация: как передать оператору и какие данные собрать до передачи.
  • Политики: согласие на коммуникации и частота сообщений.
  • ---

    Задания для закрепления

    1) Для вашего проекта выберите 1 основной канал и 1 запасной. Обоснуйте выбор по 3 критериям.

    2) Составьте список из 5 сообщений, которые бот будет отправлять пользователю. Отметьте, какие из них должны быть «сервисными» (подтверждение/статус), а какие — «консультационными».

    3) Придумайте, как вы будете идентифицировать пользователя в каждом канале:

  • Telegram
  • WhatsApp
  • VK
  • Сайт
  • 4) Опишите один риск для каждого канала (Telegram/WhatsApp/VK/сайт) и способ снижения этого риска.

    <details> <summary> Ответы (примерные) </summary>

    1) Пример выбора:

  • Основной: WhatsApp — потому что большинство клиентов уже пишут с телефона, нужен номер для записи и напоминаний, высокий отклик.
  • Запасной: сайт — чтобы ловить трафик и собирать лиды, если пользователь не хочет переходить в мессенджер.
  • 2) Пример 5 сообщений:

  • «Здравствуйте! Чем помочь?» — консультационное.
  • «Выберите услугу» (кнопки) — консультационное.
  • «Подтвердите запись на 14:00» — сервисное.
  • «Запись создана, адрес… правила отмены…» — сервисное.
  • «Оцените ответ от 1 до 5» — сервисное (контроль качества).
  • 3) Пример идентификации:

  • Telegram: запросить номер/почту после полезного шага + сохранять Telegram user id.
  • WhatsApp: номер телефона уже ключевой идентификатор, связать с CRM.
  • VK: хранить VK id, при необходимости запросить телефон/почту.
  • Сайт: cookie/сессия + запрос контакта перед созданием заявки.
  • 4) Пример рисков и снижения:

  • Telegram: нет телефона → добавить понятный шаг «оставьте номер для подтверждения».
  • WhatsApp: правила шаблонов/стоимость сообщений → заранее спроектировать сервисные шаблоны и минимизировать лишние уведомления.
  • VK: пользователь «не в задаче» → короткое приветствие с 2–3 понятными кнопками, минимум текста.
  • Сайт: спам/пустые обращения → антиспам и сбор контакта после ценности (подбор/расчёт).
  • </details>

    3. Инструменты: конструкторы, фреймворки, базы данных, API

    Инструменты: конструкторы, фреймворки, базы данных, API

    В прошлых статьях мы разобрали, что делает чат-бот и как выбирать канал (Telegram/WhatsApp/VK/сайт). Теперь соберём «набор инструментов» — чем именно обычно пользуются, чтобы быстро собрать, подключить данные и поддерживать бота.

    1) Конструкторы (no-code) и платформы (low-code)

    Конструкторы (no-code)

    Подход: вы собираете сценарий в визуальном редакторе, подключаете канал и простые интеграции.

    Когда подходят

  • Нужно быстро запустить MVP.
  • Логика в основном сценарная: меню, ветвления, формы.
  • Интеграции типовые: почта, таблицы, простая CRM, вебхуки.
  • Типичные ограничения

  • Сложные состояния диалога и нетиповые бизнес-правила делать тяжело.
  • Ограничения по кастомизации интерфейса и логики.
  • Зависимость от платформы (перенос сценариев и данных может быть болезненным).
  • Low-code платформы

    Подход: сценарий можно собирать визуально, но есть «точки расширения» (скрипты, вебхуки, собственные микросервисы).

    Когда подходят

  • Нужна скорость конструктора, но есть нестандартные интеграции.
  • Планируется рост: аналитика, A/B, несколько каналов, роли операторов.
  • 2) Фреймворки и «своя разработка»

    Фреймворк — это набор библиотек/паттернов, чтобы писать бота как приложение: обработка сообщений, состояния, маршрутизация, подключения к API.

    Когда это оправдано

  • Много нестандартной логики (тарифы, правила, доступы, сложные формы).
  • Важно контролировать безопасность, хранение данных, аудит.
  • Нужно масштабирование и отказоустойчивость.
  • Цена подхода

  • Потребуются разработка, тестирование, инфраструктура.
  • Дольше запуск, но обычно дешевле развитие на длинной дистанции.
  • 3) Где хранить данные: базы данных и «память» диалога

    Почти любому боту нужно хранить хотя бы:

  • Профиль пользователя (ID канала, контакты, согласия).
  • Контекст (на каком шаге сценария человек находится).
  • Заявки/заказы/записи и их статусы.
  • Логи диалогов для качества и разбора ошибок.
  • Практичные варианты хранения

    | Задача | Частое решение | Плюсы | Риски/минусы | |---|---|---|---| | Прототип/небольшой объём | Таблица/простое хранилище | Быстро стартовать | Трудно поддерживать рост и целостность данных | | Основные бизнес-данные | Реляционная БД (таблицы) | Структура, надёжные связи | Нужно проектирование схемы | | События/логи/аналитика | Хранилище логов/событий | Удобно искать и фильтровать | Важно не хранить лишние персональные данные | | Быстрый контекст (сессии) | Кэш/ключ-значение | Быстро и дёшево | Не «истина», может очищаться |

    Мини-схема сущностей (логика, не код)

    4) API и интеграции: как бот «делает действия»

    API — это способ, которым системы обмениваются данными: бот отправляет запрос → получает ответ → продолжает диалог.

    Какие API встречаются чаще всего

  • API каналов: чтобы получать/отправлять сообщения (детали зависят от выбранного канала — см. статью про платформы и каналы).
  • Внутренние API бизнеса: CRM, ERP, склад, расписание, база заказов.
  • Внешние сервисы: платежи, рассылки, геокодирование, проверки.
  • Два ключевых механизма интеграций

  • Webhook (входящее событие): канал или сервис сам «пушит» событие боту (новое сообщение, оплата прошла, статус изменился).
  • REST/HTTP-запрос (исходящий запрос): бот сам спрашивает данные (проверить статус заказа, создать заявку).
  • Что продумать до подключения API

  • Идентификаторы: как связать пользователя в канале с клиентом в CRM (телефон, email, внутренний ID).
  • Ошибки и таймауты: что говорить пользователю, если CRM недоступна.
  • Права доступа: какие данные бот может читать/менять.
  • Аудит: кто и когда создал заявку, изменил запись, отправил сообщение.
  • 5) Интеграционные «прослойки»: когда не хочется писать всё вручную

    Помимо прямых API-вызовов часто используют промежуточные инструменты:

  • iPaaS/автоматизации (сценарии «если событие → то действие»): быстро соединяют формы, почту, таблицы, CRM.
  • Очереди/фоновые задачи: если действия долгие (например, генерация отчёта), бот отвечает сразу, а результат приходит позже.
  • 6) Эксплуатация: логирование, аналитика, тестирование

    Чтобы бот не «ломался молча», нужны базовые опоры:

  • Логи: ошибки интеграций, недоставленные сообщения, неожиданные ветки.
  • Метрики сценариев: где пользователи чаще уходят, где просят оператора.
  • Тестовые окружения: отдельный бот/канал для проверки изменений.
  • Резервные ответы: понятные сообщения при сбое + маршрут к оператору.
  • 7) Как выбрать стек инструментов (короткая памятка)

    | Критерий | Конструктор | Low-code | Фреймворк/разработка | |---|---|---|---| | Скорость запуска | высокая | высокая/средняя | средняя/низкая | | Нестандартная логика | низкая | средняя | высокая | | Контроль данных/безопасности | средний | средний/высокий | высокий | | Стоимость на старте | низкая | средняя | высокая | | Стоимость развития | может расти | управляемо | управляемо при хорошей архитектуре |

    ---

    Задания для закрепления

    1) Выберите подход (конструктор / low-code / фреймворк) для двух кейсов:

  • FAQ + сбор заявки без интеграций.
  • Запись на услугу с проверкой свободных слотов в расписании и оплатой.
  • 2) Опишите, какие данные вам нужно хранить в базе для бота «запись на услугу» (5–8 полей/сущностей).

    3) Придумайте 3 интеграции через API для вашего проекта и для каждой укажите:

  • Что бот отправляет.
  • Что бот получает.
  • Что делает при ошибке.
  • 4) Нарисуйте (в тексте) схему: канал → бот → интеграции → оператор. Укажите, где будут логи.

    <details> <summary> Ответы (примерные) </summary>

    1) Выбор подхода:

  • FAQ + заявка без интеграций: конструктор (скорость, типовой сценарий).
  • Запись со слотами + оплата: low-code или фреймворк (нужны надёжные API-интеграции, обработка ошибок, состояния, безопасность).
  • 2) Пример данных для «записи»:

  • User: channel_user_id, имя, телефон, согласие.
  • Conversation: state, last_message_at.
  • Booking: услуга, филиал/формат, дата-время, статус, источник (канал), комментарий.
  • Payment: сумма, статус, transaction_id (если есть оплата).
  • MessageLog: направление, текст, метаданные доставки.
  • 3) Пример 3 интеграций:

  • Расписание: бот отправляет выбранную услугу и дату → получает список свободных слотов → при ошибке предлагает выбрать другой день или переводит на оператора.
  • CRM: бот отправляет контакты и параметры заявки → получает ID заявки → при ошибке сохраняет заявку локально и сообщает, что свяжутся вручную.
  • Платёжный сервис: бот отправляет сумму и описание → получает ссылку/статус → при ошибке предлагает альтернативный способ оплаты или резервирует запись без оплаты (если политика позволяет).
  • 4) Пример схемы:

    </details>

    4. Проектирование сценариев: диалоги, кнопки, ветвления, тональность

    Проектирование сценариев: диалоги, кнопки, ветвления, тональность

    Сценарий — это не «текст для бота», а структура решения задачи пользователя: какие шаги он проходит, где выбирает вариант, где бот уточняет, где допускается ошибка, и как человек возвращается на путь.

    1) Начните не с фраз, а с цели и границ

    Сначала зафиксируйте:

  • Цель пользователя (что он хочет получить в конце): статус, запись, консультацию, оформление заявки.
  • Условия успеха (когда считаем диалог завершённым): например, собран контакт + создана заявка.
  • Ограничения (что бот не делает): «не отменяем заказ без номера», «не консультируем по медицине».
  • Эскалация (когда нужен оператор): нестандартный запрос, конфликт, не прошла проверка данных.
  • Практика: одна цель = один основной сценарий. «Универсальный бот на всё» чаще ломается.

    2) Проектируйте сценарий как карту, а не как простыню текста

    Удобная форма — карточки шагов. Для каждого шага:

  • Название шага (например, «Сбор номера заказа»).
  • Что показываем (сообщение, кнопки, подсказка формата).
  • Что ожидаем (тип ввода: кнопка/текст/номер/дата).
  • Валидация (как отличаем корректный ввод от некорректного).
  • Следующий шаг (куда переходим при успехе/ошибке/отмене).
  • Визуально это можно держать в виде простого дерева:

    Важно: у большинства сценариев есть глобальные выходы: «В меню», «Назад», «Оператор». Даже если канал не поддерживает кнопки, эти команды можно принимать текстом.

    3) Диалог: короткие реплики и один вопрос за раз

    Пользователи читают в чатах «по диагонали». Хорошие правила микрокопирайта:

  • Одна реплика — одна задача: не смешивайте приветствие, инструкцию и три вопроса в одном сообщении.
  • Сначала действие, потом детали: «Введите номер заказа» → затем пример формата.
  • Поясняйте “зачем” перед сбором данных: «Нужен телефон, чтобы подтвердить запись».
  • Не заставляйте вспоминать контекст: кратко повторяйте выбор пользователя в ключевых точках: «Вы выбрали: доставка курьером».
  • Закрывайте цикл: в конце — итог и следующий понятный шаг (например, «Хотите получить уведомление об изменениях?»).
  • 4) Кнопки: снижайте когнитивную нагрузку

    Кнопки — это способ уменьшить ошибки и ускорить путь. Проектируйте их как интерфейс:

  • 2–6 вариантов на экран: больше — сложно выбирать.
  • Подписи как действия: «Проверить статус», «Записаться», «Перенести», а не «Статус/Запись».
  • Взаимоисключающие варианты: не давайте рядом «Да» и «Возможно». Лучше конкретика.
  • Кнопка “Другое” только если вы готовы обработать свободный ввод (или честно переводите к оператору).
  • Всегда оставляйте путь назад: «Назад», «В меню».
  • Если канал ограничивает кнопки (или пользователь пишет текстом), поддерживайте «синонимы» команд: «меню», «назад», «оператор».

    5) Ветвления: делайте их “по причинам”, а не “по фантазии”

    Ветвление должно появляться только когда:

  • Меняется процесс (разные шаги дальше): например, «самовывоз» и «доставка» требуют разных данных.
  • Нужно уточнение для точности (минимум вопросов): «город», «тип услуги», «категория проблемы».
  • Есть риски ошибки (нужна проверка): «номер договора», «дата рождения», «код».
  • Техники, которые упрощают ветвления:

  • Прогрессивное уточнение: задавайте следующий вопрос только если без него нельзя продолжать.
  • Сведение веток: разные пути должны сходиться в общие шаги (например, подтверждение и финал).
  • Контрольная точка: перед критическим действием показывайте краткое резюме и просите подтвердить.
  • 6) Обработка ошибок: не ругайте пользователя и давайте следующий ход

    Ошибки бывают трёх типов:

  • Формат ввода: «Похоже, номер заказа должен быть из 6 цифр. Пример: 123456».
  • Нет данных/не найдено: «Не нашёл заказ по этому номеру. Проверьте, пожалуйста, цифры или пришлите телефон, на который оформляли».
  • Сбой системы: «Сейчас не могу проверить статус. Могу переключить на оператора или попросить повторить позже».
  • Правило: в каждом ошибочном ответе должны быть подсказка + варианты действий (повторить, изменить, оператор).

    7) Тональность (tone of voice): единый стиль и “честные обещания”

    Тональность — это не «быть дружелюбным», а соответствовать бренду и ситуации.

  • Определите “3 слова голоса” (например, «спокойный, деловой, заботливый») и проверяйте тексты по ним.
  • Используйте нейтральные формулировки в стрессовых кейсах: возвраты, жалобы, ошибки оплаты.
  • Не создавайте ложного ожидания: если бот часто передаёт оператору, говорите прямо: «Могу подключить специалиста».
  • Шаблон вежливости: приветствие → действие → благодарность → завершение.
  • Мини-проверка: тональность должна совпадать и в успешных, и в ошибочных сообщениях.

    ---

    Задания для закрепления

    1) Выберите один сценарий (например, «проверка статуса» или «запись») и сформулируйте: цель пользователя, условия успеха, 3 ограничения.

    2) Нарисуйте карту сценария в виде дерева на 8–12 узлов (как в примере выше). Обязательно добавьте «Назад/Меню/Оператор».

    3) Составьте набор кнопок для первого экрана (2–6 штук). Подпишите их глаголами-действиями.

    4) Напишите по 1 сообщению для трёх ситуаций: запрос данных, ошибка формата, сбой системы. Укажите, какие варианты действий вы предлагаете пользователю.

    5) Опишите тональность вашего бота тремя словами и перепишите одну реплику в двух стилях: «строго-деловой» и «дружелюбный, но без фамильярности».

    <details> <summary> Ответы (примерные) </summary>

    1) Пример (проверка статуса):

  • Цель: узнать актуальный статус заказа.
  • Успех: пользователь ввёл номер → бот показал статус и дату/следующий шаг.
  • Ограничения:
  • 1) не показываем персональные данные без идентификатора, 2) не меняем адрес доставки в боте, 3) не обещаем точное время, если система даёт только диапазон.

    2) Пример дерева (фрагмент):

    3) Пример кнопок первого экрана:

  • «Проверить статус заказа»
  • «Оформить заявку»
  • «Уточнить условия доставки»
  • «Связаться с оператором»
  • 4) Пример сообщений:

  • Запрос данных: «Введите номер заказа (6 цифр). Пример: 123456» → варианты: повторить ввод, меню.
  • Ошибка формата: «Кажется, номер должен быть из 6 цифр. Проверьте, пожалуйста, и отправьте ещё раз» → варианты: повторить, оператор.
  • Сбой системы: «Сейчас не получается проверить статус из‑за технической ошибки. Переключить на оператора или попробуем через 10 минут?» → варианты: оператор, повторить позже.
  • 5) Пример тональности:

  • Три слова: «спокойный, понятный, уважительный».
  • Фраза в двух стилях:
  • 1) Строго-деловой: «Укажите номер заказа для проверки статуса.» 2) Дружелюбный нейтральный: «Пришлите номер заказа — проверю статус и подскажу, что дальше.»

    </details>

    5. Сборка бота: интеграции, вебхуки, авторизация, платежи

    Сборка бота: интеграции, вебхуки, авторизация, платежи

    Эта стадия — превращение сценария в «бота, который делает действия»: создаёт заявки, проверяет статусы, принимает оплату и безопасно узнаёт пользователя. Про сценарии и базовые понятия API/webhook мы уже говорили в статье про инструменты — здесь концентрируемся на сборке и практических нюансах.

    1) Карта интеграций: что, куда и в каком порядке

    Прежде чем подключать системы, зафиксируйте интеграционную карту:

  • Системы: CRM/таблица/склад/расписание/платёжка.
  • Действия бота: «создать заявку», «получить слоты», «проверить статус».
  • Точки правды: где хранится «истинный» статус (например, статус оплаты — в платёжной системе, статус записи — в расписании).
  • Обязательные идентификаторы: что нужно, чтобы запрос сработал (телефон, ID заказа, email, внутренний client_id).
  • Поведение при сбое: что делаем, если система недоступна (очередь/повтор/оператор/временное сообщение).
  • Мини-визуализация потока:

    2) Вебхуки: настройка, безопасность, устойчивость

    Вебхуки — это «входящие события» от канала/сервисов. Главная задача: сделать обработку надёжной и безопасной.

    Практический чек-лист настройки вебхука

  • Единая точка приёма событий: удобно иметь один вход, который дальше маршрутизирует по типу события.
  • Валидация: проверяйте, что событие реально от вашего поставщика (секрет/подпись/токен, IP-ограничения — если применимо).
  • Идемпотентность: одно и то же событие может прийти повторно. Храните event_id и не выполняйте действие дважды (особенно для оплат и создания заявок).
  • Быстрый ответ поставщику: сначала «приняли», потом обрабатывайте (иначе будут повторы из‑за таймаута).
  • Очередь/фон: долгие действия (CRM, платежи) лучше выполнять асинхронно.
  • Логирование: сохраняйте тип события, время, результат обработки и причину ошибки.
  • Типовые события, которые стоит предусмотреть

    | Источник | Событие | Что делает бот | Риск | Защита/решение | |---|---|---|---|---| | Канал | Новое сообщение | обновить состояние диалога | дубли | message_id + антидубль | | Платёжка | Оплата успешна | подтвердить заказ/запись | повтор вебхука | event_id + идемпотентность | | Платёжка | Оплата не прошла/отмена | вернуть пользователя к оплате | «зависшие» статусы | таймер + напоминание | | CRM/расписание | Изменение статуса | уведомить пользователя | лишние уведомления | фильтры + согласия |

    3) Авторизация и идентификация: как безопасно «узнать» пользователя

    Важно различать:

  • Идентификация — «кто вы?» (телефон/email/номер заказа).
  • Авторизация — «можно ли вам это показать/сделать?» (права доступа, проверка кода, привязка к аккаунту).
  • Частые схемы авторизации в ботах

  • По одноразовому коду (OTP) на телефон/email
  • 1) пользователь вводит телефон/email 2) система отправляет код 3) бот проверяет код и привязывает канал к клиенту

  • Магическая ссылка (актуально для сайта или если можно открыть браузер)
  • 1) бот присылает ссылку 2) пользователь подтверждает вход 3) бот получает подтверждение и продолжает

  • OAuth (вход через аккаунт сервиса)
  • Используется, если вы интегрируете внешний аккаунт (например, личный кабинет). Плюс — меньше паролей, минус — сложнее настройка и поддержка.

    Практические правила безопасности

  • Не просите пароль в чате.
  • Ограничивайте число попыток ввода кода и ставьте «охлаждение».
  • Храните только то, что нужно: например, маскируйте телефон в логах.
  • Разделяйте роли: бот не должен иметь «админский» доступ к CRM.
  • 4) Платежи: сценарий, статусы, возвраты, «что считать успехом»

    Платёжная интеграция состоит не из «кнопки оплатить», а из управления состояниями.

    Базовый платёжный поток (универсально)

  • Бот создаёт платёж в платёжной системе (сумма, назначение, ваш order_id).
  • Пользователь переходит к оплате (ссылка/инвойс).
  • Платёжная система присылает вебхук со статусом.
  • Бот:
  • 1) фиксирует статус у себя/в CRM 2) выдаёт пользователю подтверждение и следующие шаги

    Статусы, которые нужно явно обработать

  • Успех: выдаём подтверждение, чек/квитанцию (если предусмотрено), правила отмены.
  • Неуспех: предлагаем повторить, сменить способ или перейти к оператору.
  • Ожидание: честно сообщаем «платёж обрабатывается» и не создаём дубль заказа.
  • Возврат (если ваш процесс это поддерживает): фиксируем причину, уведомляем о сроках.
  • Важные технические нюансы

  • Не доверяйте только сообщению пользователя «я оплатил» — доверяйте статусу от платёжки (вебхук/проверка).
  • Связка платежа и заказа: всегда передавайте ваш order_id/booking_id, чтобы не гадать, что именно оплатили.
  • Идемпотентность на оплате: «успешная оплата» должна примениться один раз.
  • Согласия и юридические тексты: до оплаты покажите существенные условия (что оплачивается, возврат, контакты поддержки).
  • 5) Эксплуатация: чтобы интеграции не ломали UX

  • Таймауты: если интеграция долго отвечает — лучше «я уточняю, это займёт до 10 секунд» и затем результат.
  • Деградация сервиса: при недоступности CRM — сохраняйте заявку локально и обещайте ручную обработку (если это допустимо процессом).
  • Мониторинг: отдельные алерты на рост ошибок вебхуков и платежей.
  • Трассировка: добавляйте request_id/conversation_id в логи, чтобы разбирать инциденты.
  • ---

    Задания для закрепления

    1) Составьте интеграционную карту для одного сценария (например, «запись + оплата»): системы, действия, идентификаторы, что считается «успехом».

    2) Придумайте 5 событий (вебхуков), которые важны для вашего бота. Для каждого — что бот делает и что пишет пользователю.

    3) Опишите схему авторизации для доступа к персональным данным (статус заказа/записи). Где хранится привязка канала к клиенту?

    4) Нарисуйте (в тексте) платёжный поток из 8–10 шагов, включая статусы «ожидание» и «неуспех».

    5) Назовите 6 рисков при интеграциях (безопасность/дубли/сбои/ошибки пользователя) и по одному способу снижения.

    <details> <summary> Ответы (примерные) </summary>

    1) Пример карты «запись + оплата»:

  • Системы: расписание, CRM, платёжная система.
  • Действия: получить слоты → создать бронь → выставить счёт → подтвердить оплату → финализировать запись.
  • Идентификаторы: phone (привязка), booking_id (в расписании), order_id (в CRM), payment_id (в платёжке).
  • Успех: статус booking = confirmed и payment = succeeded, пользователю отправлено подтверждение.
  • 2) Пример 5 событий:

  • message_received (канал) → обновить state → задать следующий вопрос.
  • payment_succeeded (платёжка) → отметить оплату → подтвердить запись.
  • payment_failed → вернуть к выбору оплаты/оператор.
  • booking_changed (расписание) → уведомить о переносе.
  • crm_ticket_assigned (CRM) → сообщить, что менеджер взял в работу.
  • 3) Пример авторизации по OTP:

  • Пользователь вводит телефон.
  • Отправляем код по SMS.
  • Пользователь вводит код.
  • Проверяем код в сервисе авторизации.
  • Сохраняем связь: channel_user_id ↔ client_id (в вашей БД).
  • 4) Пример платёжного потока:

  • Пользователь выбирает услугу.
  • Выбирает дату/время.
  • Бот создаёт предварительную бронь (pending).
  • Бот создаёт платёж (payment_id) и отправляет ссылку.
  • Пользователь оплачивает.
  • Платёжка присылает payment_pending → бот пишет «проверяю оплату».
  • Платёжка присылает payment_succeeded → бот финализирует бронь (confirmed).
  • Бот отправляет подтверждение и детали.
  • Если payment_failed → бот снимает бронь или держит N минут и предлагает повтор.
  • 5) Пример рисков и мер:

  • Дубли вебхуков → хранить event_id и делать идемпотентно.
  • Подмена запросов → подпись/секрет + валидация.
  • CRM недоступна → очередь + сообщение пользователю + оператор.
  • Пользователь ошибся в данных → валидация формата + уточняющие вопросы.
  • «Зависшие» оплаты → статус pending + таймер + повторная проверка.
  • Утечка данных в логах → маскирование + минимизация хранения.
  • </details>

    6. Тестирование и запуск: ошибки, аналитика, модерация, безопасность

    Тестирование и запуск: ошибки, аналитика, модерация, безопасность

    Запуск чат-бота — это не «нажать кнопку опубликовать», а переход в режим продукта: бот должен стабильно работать в реальном канале, измеряться, быть безопасным и управляемым. Сценарии, интеграции, вебхуки и платежи мы уже разобрали в прошлых статьях — здесь фокус на проверках перед релизом и на том, что нужно для устойчивой эксплуатации.

    1) Тестирование: что проверять, чтобы не краснеть на запуске

    1.1. Матрица тестов: минимум, который реально покрыть

    Соберите тесты не «по сообщениям», а по рискам.

    | Область | Что проверяем | Пример ошибки | Как заметить заранее | |---|---|---|---| | Сценарии | переходы, “Назад/Меню/Оператор”, повторный ввод | пользователь застрял на шаге | чек-лист по каждому узлу карты сценария | | Валидации | формат телефона/даты/номера заказа | “приняли мусор” и ушли в API | набор негативных кейсов | | Интеграции | таймауты, пустые ответы, недоступность | бот молчит или обещает то, чего нет | имитация сбоя (тестовая среда/заглушки) | | Платежи | pending/failed/success + повторы вебхуков | двойное подтверждение | тестовые оплаты + идемпотентность по event_id | | Эскалация | передача оператору + контекст | оператор не понимает, что случилось | проверка «пакета контекста» | | Контент | тональность, юридические тексты, кнопки | жалобы, блокировки канала | ревью текста + требования каналов |

    1.2. Тестовые сценарии: «позитив», «негатив», «края»

  • Позитивные: пользователь идёт идеальным путём и достигает успеха.
  • Негативные: ошибки формата, отсутствующие данные, отмена на середине.
  • Краевые: длинные сообщения, эмодзи/фото вместо текста, двойные клики по кнопке, тишина 30 минут, возврат в диалог через сутки.
  • Практика: для каждого ключевого сценария подготовьте 10–20 тест-кейсов в виде таблицы: «шаг → ввод → ожидаемый ответ → ожидаемое состояние».

    1.3. Регресс и контроль изменений

    Даже маленькая правка текста может сломать ветку или аналитику.

  • Версионируйте сценарии (например, “v1.3”).
  • Держите короткий регресс-чек-лист: 5–10 критических путей (старт, основной сценарий, ошибка формата, оператор, оплата).
  • Обновления выкатывайте через тестовый канал/бота, а затем — в прод.
  • 2) Ошибки в проде: как сделать их управляемыми

    Ошибки неизбежны: сеть, API, человеческий ввод, ограничения канала. Важно, чтобы ошибки были наблюдаемыми и обрабатываемыми.

    Минимальный стандарт эксплуатации:

  • Единый идентификатор диалога (conversation_id) во всех логах и обращениях к операторам.
  • Классификация ошибок: пользовательская (ввод), внешняя (API), внутренняя (логика).
  • План деградации: что бот делает, если ключевой сервис недоступен (например, создать заявку «в очередь» или сразу эскалировать).
  • Алёрты: резкий рост ошибок интеграций, недоставок, провалов платежей.
  • Визуально удобно фиксировать маршрутизацию инцидента:

    3) Аналитика: что измерять, чтобы улучшать, а не спорить

    Аналитика бота — это ответы на вопросы «где мы теряем пользователей?» и «какой сценарий окупается?». Метрики выбираются от цели (см. статью про задачи и метрики), а здесь — как организовать сбор.

    3.1. События и воронки

    Заложите события на уровне шагов сценария и результатов.

  • Показ стартового меню.
  • Выбор сценария (например, “Запись”, “Статус”).
  • Успешный ввод ключевого идентификатора (телефон/номер заказа).
  • Успешное действие (заявка создана, слот забронирован, статус показан).
  • Эскалация к оператору (с причиной).
  • Отказ/выход (таймаут, “не хочу”, “передумал”).
  • Соберите простую воронку по каждому сценарию:

    3.2. Причины эскалации — главный источник улучшений

    Вместо «много ушло к оператору» фиксируйте почему:

  • Не прошла валидация.
  • Нет данных в системе.
  • Сбой интеграции.
  • Пользователь пишет “другое/нестандартное”.
  • Конфликт/жалоба.
  • Это превращает поддержку в список конкретных задач: улучшить подсказки, добавить ветку, починить интеграцию, уточнить ограничения.

    4) Модерация и соответствие правилам каналов

    Под модерацией здесь — не только «антиспам», но и контроль контента и процесса общения.

  • Проверка текстов: обещания, сроки, формулировки про оплату/возвраты, корректность тональности.
  • Правила рассылок и шаблонов (особенно в строгих каналах): отправляйте только то, на что есть согласие и реальная ценность.
  • Контроль “опасных тем”: медицина/юридические советы, персональные данные — заранее определите стоп-темы и маршрутизацию.
  • Операторская модерация: роли, кто может писать от имени бота, кто видит данные, кто подтверждает спорные ответы.
  • Практический приём: заведите «контент-политику бота» на 1 страницу: что можно, что нельзя, и как эскалировать.

    5) Безопасность: минимум, без которого лучше не запускать

    5.1. Данные и доступ

  • Сбор только необходимого (минимизация данных).
  • Разделение доступов: у бота — только нужные права в CRM/платежах.
  • Маскирование персональных данных в логах и выгрузках.
  • Хранение согласий пользователя на коммуникации и уведомления.
  • 5.2. Защита от злоупотреблений

  • Лимиты на частоту сообщений (rate limiting) и антифлуд.
  • Защита от «перебора» кодов/номеров (ограничение попыток + охлаждение).
  • Белые списки действий: бот не должен выполнять непредусмотренные операции по свободному тексту.
  • 5.3. Секреты и инфраструктура

  • Токены каналов и ключи API хранятся как секреты, а не в документах/чатах.
  • Логи доступа: кто менял настройки, кто запускал рассылки.
  • План отката: как быстро выключить проблемный сценарий или переключить на оператора.
  • 6) Чек-лист запуска (короткий, но практичный)

  • Пройден регресс-чек-лист по критическим путям.
  • Подключены логи + алёрты на ошибки и платежи.
  • Настроены события аналитики и воронка по ключевым сценариям.
  • Проверены тексты и правила канала (включая согласия).
  • Настроены роли операторов и пакет контекста при эскалации.
  • Есть план аварийного режима: “только меню + оператор”.
  • ---

    Задания для закрепления

    1) Составьте матрицу тестов для одного сценария (8–12 тестов): позитив, негатив, краевые случаи.

    2) Опишите 6 событий аналитики для вашего бота и одну воронку (этапы → где возможен отвал).

    3) Придумайте классификацию причин эскалации (минимум 5 причин) и что вы будете улучшать по каждой.

    4) Составьте «контент-политику бота» на 10 пунктов: что можно/нельзя говорить и когда подключать оператора.

    5) Сделайте чек-лист безопасности (10 пунктов) для вашего запуска: данные, доступы, антифлуд, секреты.

    <details> <summary> Ответы (примерные) </summary>

    1) Пример матрицы тестов (фрагмент):

  • Старт → кнопка “Запись” → показ выбора услуги.
  • Ввод услуги текстом вместо кнопки → бот предлагает кнопки или уточнение.
  • Неверный формат телефона → подсказка + повтор.
  • Таймаут расписания → “не могу проверить слоты” + оператор.
  • Двойной клик по “Подтвердить” → запись создаётся один раз.
  • Платёж pending → сообщение “проверяю оплату”, без дублей.
  • Платёж failed → предложить повтор/другой способ/оператор.
  • Пользователь пишет “хочу пожаловаться” → эскалация с меткой “жалоба”.
  • 2) Пример 6 событий:

  • bot_start_shown
  • scenario_selected (value: status/booking/support)
  • identifier_collected (type: phone/order_id)
  • api_call_result (service, success/fail, latency_bucket)
  • handoff_to_operator (reason)
  • scenario_completed (result: success/fail/cancel)
  • Пример воронки: start_shown → scenario_selected=booking → identifier_collected(phone) → slot_selected → payment_link_sent → completed(success).

    3) Пример причин эскалации и улучшений:

  • Нестандартный вопрос → добавить FAQ/ветку.
  • Ошибка ввода → улучшить подсказку и примеры.
  • Нет данных в CRM → добавить альтернативную идентификацию.
  • Сбой API → очередь/повтор + алёрты.
  • Жалоба/конфликт → отдельный “стресс-сценарий” + приоритет оператору.
  • 4) Пример «контент-политики» (фрагмент):

  • Не просить пароли.
  • Не давать медицинских/юридических рекомендаций — только маршрутизация.
  • Не обещать сроки, которых нет в системе.
  • Всегда объяснять, зачем нужен телефон.
  • В ошибках — варианты действий (повтор/меню/оператор).
  • В жалобах — нейтральный тон и быстрый перевод к человеку.
  • Любые платежи подтверждать только по статусу платежной системы.
  • Не отправлять уведомления без согласия.
  • Сохранять краткость: одно сообщение — одно действие.
  • В спорных случаях — оператор.
  • 5) Пример чек-листа безопасности:

  • Минимизация данных (собираем только нужное).
  • Маскирование PII в логах.
  • Разделение прав доступа в CRM.
  • Ограничение попыток ввода кода/номера.
  • Rate limiting и антифлуд.
  • Проверка источника входящих событий (вебхуки).
  • Хранение токенов как секретов.
  • Аудит изменений сценариев и рассылок.
  • Аварийный режим “меню + оператор”.
  • Регулярный просмотр логов/алёртов и разбор инцидентов.
  • </details>

    7. Поддержка и развитие: улучшения, A/B тесты, обучение на данных

    Поддержка и развитие: улучшения, A/B тесты, обучение на данных

    После запуска бот становится продуктом: его нужно поддерживать, улучшать и принимать решения на данных, а не «по ощущениям». Базовые вещи про логи, алёрты, аналитику и причины эскалации уже были в статье про тестирование и запуск — здесь фокус на цикле улучшений, A/B тестах и «обучении» бота на реальных диалогах.

    1) Цикл улучшений: от сигналов к изменениям

    Полезно держать простой, повторяемый процесс.

    Источники сигналов, которые реально работают

  • Провалы воронки по шагам: где чаще всего «отваливаются».
  • Причины эскалации: что именно не смог сделать бот.
  • Логи ошибок интеграций: не только «сломалось», но и как это бьёт по UX.
  • Разбор диалогов операторов: какие вопросы люди задают после бота.
  • Короткая оценка после диалога (если вы её внедрили): на каких сценариях падает.
  • Как превращать сигнал в задачу

    Чтобы улучшения не превратились в хаос, оформляйте каждую задачу в одном шаблоне:

  • Симптом (что видим в данных)
  • Локация (какой сценарий/шаг)
  • Причина (предположение)
  • Изменение (что делаем)
  • Метрика успеха и «охранные» метрики (что не должно ухудшиться)
  • 2) Бэклог улучшений: что делать первым

    Приоритизация без сложных моделей тоже работает. Оцените каждую идею по 3 параметрам:

  • Влияние: сколько пользователей/денег затронет.
  • Уверенность: насколько вы уверены в причине (есть ли данные/примеры диалогов).
  • Стоимость: время/риски внедрения.
  • Практика: начинайте с изменений на верхних шагах (старт, выбор сценария, сбор ключевых данных) — там обычно максимальный эффект.

    3) A/B тесты в ботах: как делать корректно

    A/B тест — это проверка гипотезы на реальных пользователях: часть видит вариант A, часть — вариант B.

    Когда A/B оправдан

  • Есть измеримая метрика (конверсия в запись, доля завершённых сценариев, доля эскалаций).
  • Изменение влияет на поведение (текст, кнопки, порядок вопросов, момент запроса контакта).
  • У вас достаточно трафика, чтобы не ждать «вечность».
  • Если трафика мало, используйте подход до/после или тестируйте на конкретном сегменте (например, только Telegram).

    Как поставить A/B тест: минимальный протокол

  • Гипотеза: «Если упростим первый экран до 3 кнопок, то вырастет доля пользователей, начавших сценарий “Запись”».
  • Единица разбиения: почти всегда это пользователь, а не сообщение (чтобы один человек не видел оба варианта).
  • Сегменты: фиксируйте, кому показываете тест (канал, новый/возвратный, регион). Не смешивайте всё без необходимости.
  • Метрика успеха: одна главная, например «завершение сценария без оператора».
  • Охранные метрики: что не должно ухудшиться (рост жалоб, рост ошибок ввода, рост времени решения).
  • Длительность: заранее задайте период (например, 1–2 недели), чтобы не «выключить» тест на эмоциях.
  • Правило остановки: что считаем победой/поражением и что делаем дальше (раскатка, откат, новая итерация).
  • Частые ошибки A/B в ботах

  • Меняют сразу 5 вещей и не понимают, что сработало.
  • Сравнивают несравнимые сегменты (например, B случайно попал на рекламный трафик).
  • Меряют только конверсию, но игнорируют «цену» (рост обращений к оператору).
  • 4) «Обучение на данных»: что это означает в разных типах ботов

    Важно: «обучение» — не обязательно про нейросети. Это про системное улучшение по реальным сообщениям.

    4.1. Сценарный бот: обучение = расширение и шлифовка сценариев

  • Добавление веток для частых «нестандартных» запросов.
  • Синонимы команд (когда пользователь пишет вместо нажатия кнопки).
  • Уточнение валидаций (слишком строгие/слишком мягкие).
  • Снижение количества шагов (прогрессивное уточнение: спрашивать только необходимое).
  • 4.2. NLP/интенты: обучение = разметка и обновление модели

    Рабочий процесс без «магии»:

  • Сбор сообщений (анонимизированных, по правилам вашей политики данных).
  • Кластеризация руками: выпишите 20–50 типовых формулировок на намерение.
  • Разметка: каждому сообщению — интент и (если нужно) сущности (например, номер заказа).
  • Конфьюжн-лист: какие интенты чаще путаются — это кандидаты на переразбиение или уточняющие вопросы.
  • Порог уверенности: при низкой уверенности — уточнение или оператор.
  • Мини-правило: лучше 10 понятных интентов, чем 50 «почти одинаковых».

    4.3. ИИ-бот/LLM: обучение = улучшение знаний и ограничений

    Чаще всего вы улучшаете не «модель», а систему вокруг неё:

  • База знаний: обновление, удаление противоречий, добавление «источника правды».
  • Шаблоны ответов: требования к стилю, длине, структуре.
  • Набор запрещённых тем и маршрутизация (эскалация).
  • Набор тестовых вопросов (регресс качества): чтобы новые правки не ломали старые ответы.
  • 5) Качество данных: как не «обучиться на мусоре»

  • Разделяйте: сообщения пользователей, ответы бота, ответы операторов (это разные «жанры»).
  • Убирайте дубликаты и «шум» (спам, односложные “ок”, случайные символы).
  • Фиксируйте контекст: на каком шаге это было (без него фраза часто бессмысленна).
  • Ведите словарь терминов (названия услуг, тарифов) — это снижает ошибки распознавания.
  • ---

    Задания для закрепления

    1) Выберите один сценарий вашего бота и опишите цикл улучшения для одной проблемы: сигнал → причина → гипотеза → изменение → метрика.

    2) Придумайте A/B тест для первого экрана бота:

  • гипотеза
  • вариант A и B (что отличается)
  • главная метрика
  • 2 охранные метрики
  • правило остановки
  • 3) Составьте план «обучения на данных» на 2 недели для одного типа бота (сценарный / NLP / ИИ): какие данные собираете, кто размечает/проверяет, что меняете.

    4) Возьмите 10 реальных или придуманных сообщений пользователей и:

  • сгруппируйте их в 3–5 намерений
  • отметьте 2 сообщения, которые обязательно должны уходить оператору (и почему)
  • <details> <summary> Ответы (примерные) </summary>

    1) Пример цикла улучшения:

  • Сигнал: воронка «Запись» падает на шаге ввода телефона (много отказов).
  • Причина: непонятно, зачем телефон; часть боится спама.
  • Гипотеза: если добавить объяснение «для подтверждения записи и напоминания» + обещание «не будем писать без согласия», конверсия вырастет.
  • Изменение: переписать сообщение и добавить кнопку «Зачем нужен телефон?».
  • Метрика: доля пользователей, прошедших шаг телефона; охранная — рост запросов «оператор» и жалоб.
  • 2) Пример A/B теста первого экрана:

  • Гипотеза: 3 кнопки вместо 5 повысят выбор целевого сценария.
  • A: 5 кнопок (Статус/Запись/Доставка/Оплата/Оператор). B: 3 кнопки (Записаться/Узнать статус/Оператор) + «Другое» текстом.
  • Главная метрика: доля пользователей, начавших целевой сценарий (например, «Запись») от всех стартов.
  • Охранные: доля эскалаций к оператору; доля сообщений «не нашёл нужное».
  • Остановка: тест идёт 14 дней; если B улучшает главную метрику и не ухудшает охранные — раскатываем, иначе откатываем.
  • 3) Пример плана на 2 недели (NLP):

  • Неделя 1: собрать 500–1000 сообщений, убрать спам, выделить 10 интентов, разметить 200 сообщений на интент.
  • Неделя 2: доразметить до 500, собрать список путающихся интентов, добавить уточняющие вопросы на 2 проблемных места, обновить модель/правила, запустить A/B на пороге уверенности.
  • 4) Пример группировки сообщений:

  • «Где мой заказ?», «Когда привезёте?» → интент: статус.
  • «Хочу записаться на завтра», «Есть время на 18:00?» → интент: запись.
  • «Как вернуть?», «Хочу отменить и вернуть деньги» → интент: возврат.
  • «Вы меня обманули», «Пожалуюсь» → интент: конфликт/жалоба → оператор (нужна ответственность и контекст).
  • «Вот мой паспорт…» (прислал PII) → оператор/безопасность (нельзя обрабатывать без правил, нужен корректный маршрут и предупреждение).
  • </details>