Боты · этап 2 из 3

Бот с кнопками, который собирает заявки

Кнопки, короткая анкета и заявка, которая сразу приходит тебе в личные сообщения.

Где
Claude Code
Нужно
Бот с этапа 1
Время
40 мин

Нажимать кнопки проще, чем печатать, поэтому анкету чаще заполняют до конца. Здесь бот проведёт клиента по трём вопросам и пришлёт заявку тебе.

Клиент нажимает кнопку прямо в чате и сразу получает ответ
Клиент нажимает кнопку прямо в чате и сразу получает ответ

1Выпиши сценарий на бумаге

Напиши три вопроса, которые тебе нужны перед ответом клиенту. На каждый придумай варианты для кнопок. Если вопрос без вариантов, это текстовый ввод.

Не проси лишнего: каждый вопрос уменьшает число заполненных анкет. Телефон и почту не собирай, если можешь ответить в Telegram.

2Узнай свой Telegram id

Добавь команду /id: бот отвечает числом telegram id того, кто написал. Покажи, как её вызвать.

Запиши число в .env строкой ADMIN_ID= и после этого попроси убрать команду.

3Собери анкету

Сделай в боте анкету на машине состояний aiogram (FSM).

Кнопка на /start: «<ТЕКСТ КНОПКИ>». Вопросы по порядку:
1. <ВОПРОС> — кнопки: <ВАРИАНТЫ>
2. <ВОПРОС> — кнопки: <ВАРИАНТЫ>
3. <ВОПРОС> — текст свободный

После ответа на кнопку убирай кнопки у прошлого сообщения. На каждом шаге есть кнопка «Назад» и команда /cancel.
В конце покажи ответы и кнопки «Отправить» и «Заново».

4Отправь заявку себе

После «Отправить» пришли заявку на ADMIN_ID из .env: ответы, имя клиента и ссылка на его профиль. Клиенту напиши, что заявка принята и когда ответят: <СРОК>. Если отправка мне не удалась, скажи об этом клиенту и запиши ошибку в журнал.

5Попробуй сломать

Проверь анкету на неприятные случаи: двойное нажатие кнопки, старая кнопка из прошлой анкеты, /start посреди анкеты, очень длинный текст, стикер вместо ответа. Бот не должен падать или молчать. Исправь и покажи, что проверил.

Теперь бот полезен, но живёт на твоём компьютере. На следующем этапе перенесём его на сервер.