В чат-боте интерфейс — это сообщения и кнопки. Никакой графики, минимум иерархии, всё внимание на текст и логику переходов. UX-ошибки здесь дороже, чем на сайте: пользователь не видит структуру и быстро уходит. Разберём принципы, которые делают диалог в MAX-боте понятным — от первого экрана до эскалации на оператора.
MAX — это российский мессенджер от VK Tech, и аудитория здесь немного отличается от Telegram: больше госсектора, больше сервисных сценариев, больше пользователей старшего возраста. Это влияет на тон и на ожидаемую формальность. То, что работает в подростковом боте на английском рынке, в MAX будет восприниматься как «несерьёзно». Поэтому подход к диалогам — спокойный, ясный, без избыточного юмора и сленга.
Принцип первого экрана
Пользователь нажал «Старт» — у нас есть 3–5 секунд внимания. На первом экране должно быть:
- Короткое объяснение, что это за бот и какие задачи он решает (1–2 строки).
- Главное действие — самая заметная кнопка с самым частым сценарием.
- Альтернативы — 2–4 варианта поменьше: «Узнать больше», «Связаться с менеджером», «Помощь».
Не вываливаем сразу меню из 10 пунктов. Если пользователь не понял, что с ботом делать — он закроет чат. Принцип: одна задача на экран, одно явное действие.
Пример «до/после»:
До: «Здравствуйте! Мы рады приветствовать вас в официальном боте компании. Чтобы мы могли подобрать удобное решение, пожалуйста, ознакомьтесь с нашим меню ниже…»
После: «Привет! Помогу записаться или ответить на вопрос. С чего начнём? [Записаться] [Задать вопрос]»
Второй вариант пользователь поймёт за секунду. Первый пролистает или закроет.
Onboarding в первых 3 сообщениях
Первый контакт решает, останется ли пользователь. Правило трёх сообщений:
- Что я умею — одно предложение, без списков фич. «Я помогу записаться, посмотреть свободное время и оплатить услугу».
- Быстрый wow — предложите попробовать сразу. «Хотите выбрать время прямо сейчас?» с кнопкой «Да».
- Согласие/контакт — попросите минимум данных. Телефон не на старте, а в момент, когда он реально нужен.
Антипаттерн — выкатить простыню: «Привет! Я бот. Я могу: 1) записать… 2) отменить… 3) напомнить… 4) показать… Чтобы начать, напишите /start или нажмите кнопку меню снизу или /help для справки». Никто это не дочитает.
Длина сообщений и структура
Длинные стены текста никто не читает. Правила, которые работают:
- Сообщение менее 6 строк — иначе разбиваем на несколько.
- Жирный для ключевых слов, курсив — для термина или примера.
- Списки через нумерацию или дефисы при перечислении более 3 пунктов.
- Один вопрос — одно сообщение. Если задаём два сразу, пользователь ответит только на последний.
- Маркеры состояния: «Шаг 2 из 4» — снимает тревогу при длинных формах.
Хорошо помогает «правило восьмого класса»: текст должен быть понятен без специальных знаний. Если в боте слово «верификация», «авторизация», «токен» — переписывайте на «подтверждение», «вход», «код».
Кнопки и клавиатуры
В MAX, как и в Telegram, два типа клавиатур: reply (заменяет клавиатуру внизу) и inline (под сообщением). Принципы:
- Reply-клавиатуру оставляем для главного меню — постоянно под рукой.
- Inline-кнопки — для контекстных действий: подтвердить, отменить, оплатить.
- Менее 4 кнопок в ряду — иначе текст обрезается.
- Менее 8 кнопок на экране — больше создаёт перегрузку.
- Главное действие — первой строкой, отказ — последней.
- Текст кнопки — глагол + объект: «Записаться», «Отменить заказ», а не «Запись» или «Заказ».
Если вариантов больше 8 — делаем многоступенчатое меню или поиск через текстовый ввод.
Сравнение типов клавиатур:
| Тип | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| Inline-клавиатура | Выбор слота, оплата, подтверждение | Привязана к сообщению, не засоряет ввод | Исчезает при пересылке |
| Reply-keyboard | Главное меню, частые команды | Всегда видна | Занимает место под полем ввода |
| Свободный текст | Имя, телефон, адрес, описание | Любые данные | Ошибки ввода, нужна валидация |
Команды (/cancel, /menu) | Глобальные действия | Доступны всегда | Нужно знать заранее |
Команды /menu, /cancel, /help должны работать всегда — на любом шаге, в любом состоянии. Это «аварийный выход» для пользователя.
Прогрессивное раскрытие
Не вываливайте 10 опций сразу. Покажите 2–3 главных и кнопку «Ещё». Пример: меню записи в салон показывает «Маникюр», «Педикюр», «Стрижка» и «Все услуги». Под «Все услуги» — полный список с категориями.
Это работает потому, что 80% пользователей выберут одно из топ-3 предложений. Остальные 20% доберутся до полного списка через одно дополнительное нажатие. Зато «топ-3» не теряются в шуме.
В MAX-ботах для госуслуг или ЖКХ это особенно важно: реальных частых сценариев — 3–5, а возможных — 50. Прячьте редкие за второй уровень меню.
Тон голоса
Тон должен быть последовательным и человечным:
- Не превышаем уважительные обращения: «Вы» с большой буквы — старомодно, лучше нейтральное «вы».
- Без канцелярита: «Просим вас выбрать категорию» → «Выберите категорию».
- Без ложного оптимизма: «Ой, что-то пошло не так! 😅» — раздражает на третьем разе. Лучше «Не получилось обработать запрос. Попробуйте ещё раз».
- Без сюсюканья: «Привет, дорогой друг» — выглядит инородно в B2B-контексте.
Тон фиксируется в гайдлайнах копирайтинга на этапе ТЗ — иначе разные части бота начинают звучать как разные люди.
Сравнение тонов:
| Тон | Аудитория | Пример приветствия | Пример ошибки |
|---|---|---|---|
| Дружеский | B2C, молодёжь | «Привет! Чем помочь?» | «Не нашёл такой адрес. Попробуйте ещё раз?» |
| Деловой | Корпоративные клиенты | «Здравствуйте. Выберите раздел» | «Не удалось найти. Уточните, пожалуйста» |
| Сервисный | Запись, поддержка, ЖКХ | «Добрый день! Запишем к мастеру?» | «К сожалению, такой адрес не найден. Напишите ближайший» |
| Технический | Разработчикам и админам | «Привет. Что задеплоить?» | Error: not found. Try /list |
Для MAX чаще всего подходит «деловой» или «сервисный» — аудитория ожидает спокойствия и ясности, а не «йоу!».
Эмодзи и форматирование
Эмодзи — акцент, не декорация. Один в начале сообщения для эмоции (✅ Готово, ⚠️ Внимание, 💳 Оплата), один в конце для завершения. Три подряд — перебор.
MAX поддерживает базовое форматирование, аналогичное MarkdownV2/HTML в Telegram. Что использовать:
| Элемент | Когда |
|---|---|
| Жирный | Главное действие, сумма, дата |
| Курсив | Цитата, второстепенный комментарий |
Моноширинный | Код, ID заказа, телефон для копирования |
| Списки | 3+ однотипных пункта |
| Заголовки | Длинные сообщения с разделами |
Не злоупотребляйте: чат — не статья. Если каждое слово жирное, ничего не выделяется.
Свободный ввод и подтверждения
Если без свободного ввода не обойтись — телефон, имя, описание заказа — добавьте подсказку формата прямо в подзапросе:
Введите телефон в формате +7 999 123-45-67
После ввода — подтверждение:
Записываю телефон +7 999 123-45-67. Всё верно? [Да] [Изменить]
Деструктивные действия — отмена записи, удаление аккаунта, возврат — всегда через двойное подтверждение:
Точно отменить запись на 15 марта в 14:00? [Да, отменить] [Нет, оставить]
Без подтверждения один случайный тап превращается в потерю клиента и негативный отзыв. В MAX это особенно важно для сервисных ботов — там цена ошибки выше, чем в развлекательных.
Обработка ошибок и неожиданного ввода
Пользователь обязательно введёт что-то не то: пришлёт фото вместо текста, нажмёт не на ту кнопку, отправит «привет» в форме номера. Бот должен:
- Не молчать — всегда отвечать, даже если не понял.
- Подсказать, что нужно сделать: «Введите номер телефона в формате +7 ХХХ ХХХ ХХ ХХ».
- Дать выход — кнопка «Назад» или «Главное меню» в каждом состоянии.
- Не повторять одинаковую ошибку дважды подряд — после второй неудачной попытки предлагаем оператора.
Хорошо иметь специальное «всё пошло не так» состояние: бот извиняется, сохраняет контекст, переключает на человека. Никогда не показывайте пользователю «Internal Server Error», стек или ID ошибки без контекста.
Антипаттерн «извините, я вас не понял» 5 раз подряд — после двух неудач предложите эскалацию: «Кажется, я не справляюсь. Соединить с менеджером?».
Скорость ответа и индикаторы
Если действие занимает больше 2 секунд, бот должен показать индикатор:
sendChatAction("typing")— для текстового ответа.- Загрузка медиа — соответствующий action для фото/документа.
- Сообщение «Обрабатываю…» с обновлением через
editMessageText, когда готово. - Для долгих операций (10+ секунд) — частичный ответ: «Ищу подходящие слоты, это займёт около 15 секунд…».
Без индикатора пользователь решит, что бот сломался, и начнёт писать снова. Дублей сообщений становится больше, очередь растёт, бот реально ломается.
Состояния и контекст
Бот должен помнить, на каком шаге пользователь. Если он начал записываться, отвлёкся и вернулся через час — спросите: «Продолжим запись на маникюр или начнём заново?». Без этого пользователь повторяет шаги и злится.
Технически — FSM (StatesGroup в aiogram, dialogue в teloxide, conversations в grammY) + хранилище (Redis, Postgres). Никаких глобальных переменных в коде — у вас всегда несколько пользователей одновременно.
Локализация и эскалация на человека
Если бот работает на нескольких языках — RU/EN — учитывайте не только перевод, но и тон. В RU допустимо «ты» для молодёжного сервиса, в EN формальность нейтральнее. Форматы дат, валют, чисел тоже локализуются: 1 000,00 ₽ против $1,000.00. Время — 24-часовое для RU, AM/PM для EN.
Эскалация на человека — обязательная функция любого сервисного бота. Критерии:
- Пользователь явно попросил («менеджер», «человек», «оператор»).
- 3 неудачных fallback подряд.
- Обнаружено ключевое слово (жалоба, возврат, юрист, претензия).
- Сложный кейс, который не описан в сценариях.
Кнопка «Соединить с менеджером» должна быть видна в FAQ, в ошибках и в главном меню. Подробнее про live-chat — в отдельной статье про передачу диалога оператору.
A/B-тесты копирайта
Копирайт в боте — гипотеза, а не догма. Что стоит тестировать:
| Что | Метрика | Пример |
|---|---|---|
| Первое сообщение | Конверсия в первый клик | «Привет!» против «Запишем к мастеру?» |
| Кнопка CTA | Клики | «Записаться» против «Выбрать время» |
| Текст ошибки | Восстановление сценария | «Не понял» против «Уточните, пожалуйста» |
| Подтверждение | Завершение оплаты | «Оплатить 1500 ₽» против «К оплате» |
Делите аудиторию по user_id % 2 и логируйте вариант — этого хватит для базового сравнения. Точные значения подбираются по конкретному проекту.
Доступность
В MAX, как и в любом мессенджере, читают через скринридеры. Основные правила:
- Не передавайте смысл только через эмодзи. «✅ Готово» с текстом — ок. «✅» одиноко — нет.
- Не злоупотребляйте картинками без описаний. Если бот шлёт схему, продублируйте текстом.
- Кнопки называйте действием, а не «Кнопка 1». «Записаться», «Отменить», «Подробнее».
- Alt-text для изображений, если платформа поддерживает.
Тестирование на пользователях
5 пользователей вне команды найдут больше проблем, чем 50 ревью внутри. Дайте им конкретную задачу: «запишись на услугу за 1000 ₽», «верни деньги за заказ». Запишите экран и реакцию. Каждая фрустрация — пункт для редизайна.
Дополнительные методы:
- Cardsorting — попросите пользователей разложить пункты меню по группам. Покажет, как они мысленно структурируют услуги.
- Модерируемые тесты — наблюдатель рядом с пользователем, фиксирует «затык».
- Глубинные интервью — после прохождения сценария расспросите про эмоции и сомнения.
Антипаттерны
Список вещей, которые ломают любой бот в MAX:
- «Приветствую вас, уважаемый клиент компании X» — сразу мимо.
- Навязчивые рассылки чаще раза в неделю без явного согласия — мьют, потом блок.
- «Извините, я вас не понял» 5 раз подряд — пользователь уходит и не возвращается.
- Тупиковые ветки без
/menuи кнопки «назад» — фрустрация, особенно на мобильном. - Сообщения длиннее экрана — пользователь видит первое предложение и закрывает.
- Кнопки с непонятными названиями («Опция 1», «Далее»), не описывающими действие.
- Эмодзи как единственный носитель смысла — теряется в скринридере и при копировании.
- Подтверждение оплаты без итоговой суммы — нет доверия.
- Технические тексты ошибок («Bad Request 400», «null reference») — пугают и не помогают.
Если в боте есть хотя бы три пункта из списка — пора садиться за редизайн диалогов.
Чек-лист перед запуском
Прогоните диалоги по этому списку:
| Проверка | Что смотрим |
|---|---|
| Длина сообщений | Не больше 6 строк |
| Кнопки | До 8 на экране, до 20 символов в тексте |
| Главное меню | Доступно с любого шага |
| Команды | /start, /menu, /cancel, /help работают везде |
| Ошибки | На каждый ввод есть fallback |
| Подтверждения | Деструктивные действия требуют двойного клика |
| Индикаторы | Долгие операции показывают typing |
| Эскалация | Кнопка «менеджер» видна в FAQ и ошибках |
| Эмодзи | Не несут уникального смысла |
| Тон | Единый во всех сообщениях |
Итого
UX в боте MAX — это короткие сообщения, понятные кнопки, обязательный выход из любого состояния и уважительный, но человечный тон. Не наращивайте функциональность, пока базовый диалог не вычищен — лишние пункты только мешают пользователю. Перед запуском прогоните проект по чек-листу и протестируйте на 3–5 живых людях: это ловит больше проблем, чем недели внутреннего ревью. Хороший бот не тот, который умеет всё, а тот, в котором не теряются.
Частые вопросы
Что должно быть на первом экране диалога с ботом MAX?
После нажатия «Старт» у бота есть 3–5 секунд внимания. Три обязательных элемента. Короткое объяснение, что это за бот и какие задачи он решает (1–2 строки). Главное действие — самая заметная кнопка с самым частым сценарием. Альтернативы — 2–4 варианта поменьше: «Узнать больше», «Связаться с менеджером», «Помощь». Не вываливаем сразу меню из 10 пунктов: если пользователь не понял, что с ботом делать — он закроет чат. Принцип: одна задача на экран, одно явное действие. Onboarding строится по правилу трёх сообщений: «что я умею» → «быстрый wow» → «согласие/контакт».
Какой длины должны быть сообщения бота в MAX?
Сообщение менее 6 строк — иначе разбиваем на несколько. Жирный для ключевых слов, курсив — для термина или примера. Списки через нумерацию или дефисы при перечислении более 3 пунктов. Один вопрос — одно сообщение: если задаём два сразу, пользователь ответит только на последний. Маркеры состояния («Шаг 2 из 4») снимают тревогу при длинных формах. Хорошо помогает «правило восьмого класса»: текст должен быть понятен без специальных знаний. Длинные стены текста никто не читает в чате — пользователь читает сообщение бота как push-уведомление, 2–3 секунды максимум.
Как правильно использовать кнопки и клавиатуры в боте MAX?
Reply-клавиатуру оставляем для главного меню — постоянно под рукой. Inline-кнопки — для контекстных действий: подтвердить, отменить, оплатить. Менее 4 кнопок в ряду, иначе текст обрезается. Менее 8 кнопок на экране, больше создаёт перегрузку. Главное действие — первой строкой, отказ — последней. Текст кнопки — глагол + объект: «Записаться», «Отменить заказ», а не «Запись» или «Заказ». Если вариантов больше 8 — делаем многоступенчатое меню или поиск через текстовый ввод. Прогрессивное раскрытие: показывайте 2–3 главных пункта и «Ещё», 80% пользователей выберут топ-3.
Как обрабатывать неожиданный ввод и ошибки пользователя?
Пользователь обязательно введёт что-то не то: пришлёт фото вместо текста, нажмёт не на ту кнопку, отправит «привет» в форме номера. Четыре правила. Не молчать — всегда отвечать, даже если не понял. Подсказать, что нужно сделать: «Введите номер телефона в формате +7 ХХХ ХХХ ХХ ХХ». Дать выход — кнопка «Назад» или «Главное меню» в каждом состоянии. Не повторять одинаковую ошибку дважды подряд — после второй неудачной попытки предлагаем оператора. Никогда не показывайте пользователю «Internal Server Error», стек или ID ошибки без контекста — пугают и не помогают.
Какой тон голоса должен быть у бота MAX?
Последовательный и человечный. Не превышаем уважительные обращения: «Вы» с большой буквы старомодно, лучше нейтральное «вы». Без канцелярита: «Просим вас выбрать категорию» → «Выберите категорию». Без ложного оптимизма: «Ой, что-то пошло не так! 😅» раздражает на третьем разе, лучше «Не получилось обработать запрос. Попробуйте ещё раз». Без сюсюканья: «Привет, дорогой друг» выглядит инородно в B2B-контексте. Для MAX чаще подходит «деловой» или «сервисный» тон — аудитория ожидает спокойствия и ясности. Тон фиксируется в гайдлайнах копирайтинга на этапе ТЗ.
Когда подключать живого менеджера в боте MAX?
Эскалация на человека — обязательная функция любого сервисного бота. Критерии. Пользователь явно попросил («менеджер», «человек», «оператор»). 3 неудачных fallback подряд. Обнаружено ключевое слово (жалоба, возврат, юрист, претензия). Сложный кейс, который не описан в сценариях. Кнопка «Соединить с менеджером» должна быть видна в FAQ, в ошибках и в главном меню. Технически это либо переадресация в отдельный чат поддержки, либо передача диалога в helpdesk-систему через webhook. Главное — не делать «тупиковых» сценариев, где пользователь упирается в стену без выхода.
По какому чек-листу проверять диалог бота MAX перед запуском?
Десять пунктов. На первом экране ясно, что делает бот. В каждом состоянии есть «Назад» или путь к главному меню. Все сообщения короче 6 строк. Кнопок не более 8, главное действие первой строкой. Любая ошибка сопровождается понятным объяснением. После двух подряд непонятых вводов предлагается оператор. Тон голоса единый, без сленга и канцелярита. Все названия услуг и кнопок синхронизированы между сообщениями. Длинные формы разбиты на шаги, есть индикатор прогресса. Все «тупиковые» состояния протестированы — везде есть выход. Дополнительно: 5 живых пользователей вне команды найдут больше проблем, чем 50 ревью внутри.