Статья
Как составить карту сценариев Telegram-бота
Карта сценариев связывает намерения пользователя, состояния диалога, данные и передачу человеку до написания кода.
Начните с точек входа и намерений
Перечислите ссылки, команды, QR-коды и повторные открытия бота. У каждой точки входа может быть свой контекст: рекламное предложение, приглашение участника клуба или переход из личного кабинета. Затем назовите намерения глаголами: узнать условия, подобрать вариант, записаться, изменить запись, позвать сотрудника. Не делайте меню картой бизнеса; пользователь мыслит задачей, а не внутренними отделами.
Опишите состояние после каждого действия
Вынесите общие переходы из отдельных веток
Команды «назад», «в начало», «отмена» и «позвать человека» должны работать предсказуемо в любом состоянии. Решите, что происходит с незавершёнными данными при возврате и как долго живёт сессия. Свободный текст нельзя автоматически считать ответом на последний вопрос: сначала проверьте формат, а при неоднозначности повторите варианты. Для внешних систем обозначьте ожидание, повторный запрос и защиту от двойной записи.
Пример: карта вступления в закрытый клуб
Человек приходит по ссылке конкретной встречи. Бот показывает тему и правила, проверяет наличие профиля, а затем предлагает вступить или открыть расписание. Новичок принимает условия, выбирает город и получает заявку на модерацию. Участник сразу видит карточку встречи. Если проверка профиля недоступна, бот не создаёт новый аккаунт вслепую: сохраняет точку входа, сообщает о задержке и предлагает сотрудника. На карте отдельно показаны отклонённая заявка, повторная подача и переход по уже завершившейся встрече.
Проверьте карту проходами, а не чтением
Дайте карту коллеге и назовите цель без подсказок. Он должен пройти основной путь, передумать посередине, отправить неверное значение и вернуться через день. В каждом проходе фиксируйте потерю контекста, тупик и действие, которое нельзя отменить. Затем сопоставьте узлы с событиями аналитики и уведомлениями команды. Если разработчик не может однозначно определить следующее состояние, узел описан недостаточно.
Передайте карту вместе со словарём данных
К диаграмме приложите таблицу состояний, тексты кнопок, источники справочных значений и перечень событий. Для каждого записываемого поля укажите формат, обязательность и срок жизни. Версионируйте карту: изменение одной кнопки может повлиять на аналитику, уведомление и возврат из старой сессии. На спорных узлах оставляйте решение с автором, а не комментарий «уточнить позже». Перед разработкой команда отдельно подтверждает команды общего назначения, правила повторного входа и передачу оператору. После сборки карта становится основой приёмочных проходов; найденное расхождение исправляют либо в реализации, либо в согласованной спецификации.
Вопросы о карте сценариев
Рисовать каждое сообщение отдельным блоком?
Нет. Отдельный узел нужен там, где меняется состояние, доступный выбор, данные или внешнее действие.
Как учитывать свободный текст?
Как отдельный тип входа с правилами распознавания, уточнением и гарантированным выходом к человеку.
Кто утверждает карту?
Владелец процесса подтверждает правила, разработчик — исполнимость, а будущий оператор — качество передачи диалога.