Проектируем бота под заказчика

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

Чему научишься в этом уроке:
• записать сценарий бота по шагам вместе с заказчиком;
• объяснить, зачем бот спрашивает каждое поле, и не собирать лишнего;
• понимать, что важно знать про согласие и 152-ФЗ, и куда складывать заявки.

Сценарий по шагам

Сценарий похож на анкету у стойки администратора: вопросы идут по одному, на каждый есть понятный ответ. Для «Кодиума» он такой:

  1. /start: бот здоровается от имени школы, коротко говорит, что спросит и зачем, и просит согласие кнопками «Согласен», «Не согласен», «Прочитать согласие». Последняя кнопка показывает текст целиком;
  2. «Не согласен»: вежливый отказ, дальше бот ничего не спрашивает и ничего не сохраняет, предлагает начать заново командой /start;
  3. «Согласен»: бот запоминает время нажатия и спрашивает имя;
  4. имя: бот проверяет его и спрашивает телефон;
  5. телефон: бот проверяет формат. Неверный номер отбивает с примером и спрашивает снова;
  6. курс: четыре кнопки: Python, Веб-разработка, Нейросети, Пока не знаю;
  7. заявка готова: владельцу уходит уведомление, в файл на Яндекс Диске дописывается строка, человеку приходит «Спасибо! Ваша заявка принята».
Схема сценария бота «Кодиум» сверху вниз: /start → приветствие и согласие, кнопки Согласен, Не согласен, Прочитать согласие. От «Не согласен» боковая стрелка: «вежливый отказ, ничего не спрашиваем и не сохраняем, /start заново». От «Согласен» вниз: «Как вас зовут?» → «Ваш телефон?» (боковая стрелка «неверный формат → пример и повтор») → кнопки Python, Веб-разработка, Нейросети, Пока не знаю → две стрелки: «Новая заявка» владельцу в Telegram и строка в zayavki.xlsx на Яндекс Диске. Подпись внизу: на сервере имя и телефон не хранятся.

Каждый шаг согласуй с владельцем вслух: «Человек нажал “Пока не знаю”. Что вы с ним делаете?» Такие вопросы вытаскивают то, о чём заказчик не подумал. Например, нужна ли кнопка для тех, кто передумал.

Какие данные и зачем

Правило простое: бот спрашивает только то, что владелец реально использует. Каждое лишнее поле удлиняет анкету, часть людей бросает её на середине, а лишние персональные данные ещё и добавляют обязанностей.

  • Имя: чтобы администратор обратился к человеку по имени при звонке;
  • Телефон: чтобы перезвонить. Поэтому формат проверяется сразу, иначе заявка бесполезна;
  • Курс: чтобы позвонил тот, кто ведёт нужное направление. Кнопки вместо текста;
  • Дата согласия: чтобы при вопросе «а с чего вы мне звоните?» показать, когда человек нажал «Согласен».

Почты, отчества и возраста в списке нет. Владелец их не просил, значит и в тексте согласия их быть не должно. Согласие перечисляет ровно те поля, которые бот собирает.

Согласие и 152-ФЗ: что важно знать

Это не юридическая консультация. Ниже то, что курс нашёл в открытых источниках поиском; текст закона в актуальной редакции и схему именно твоего заказчика сверяет юрист.
  • Имя и телефон относятся к персональным данным (ПД), на них распространяется закон 152-ФЗ.
  • Согласие должно быть явным: с целью, составом данных и сроком хранения. В открытых источниках советуют спрашивать его до сбора данных. Сбор начинается в момент, когда человек пишет имя, а не когда ты записываешь его в файл. Поэтому кнопка «Согласен» стоит первым шагом, а время её нажатия сохраняется.
  • Отвечает за данные (оператор ПД) обычно владелец бизнеса, а разработчик работает по его поручению. Политику обработки данных публикует владелец.
  • Уведомлять Роскомнадзор как оператор ПД обычно нужно, но зависит от случая.
  • Есть требование о первичной записи данных граждан РФ в базу на территории РФ (ст. 18 ч. 5 152-ФЗ). Как именно оно применяется к боту в Telegram, поиск ответа не дал: Telegram иностранная платформа, и этот риск есть у любого Telegram-бота. Это вопрос юристу заказчика.

Из этого в курсе сделаны два решения. Первое: согласие спрашиваем до первого вопроса. В первой версии прогона оно стояло в конце, после имени, телефона и курса; заказчик решил перенести его в начало, и бота переделали (как, увидишь в уроке 2.4). Второе: на сервере бота имя и телефон не хранятся. Бот пропускает их через себя и сразу пишет в файл на Яндекс Диске владельца, а в своей базе держит только номер заявки, курс и даты. Почему сам сервер стоит за рубежом, разберём в уроке 2.5 на замере. Текст согласия говорит об этом прямо: данные хранятся на Яндекс Диске владельца, а бот работает на сервере за пределами РФ.

Куда падают заявки

Владельцу нужен список заявок, который он откроет без тебя. Основной путь курса: файл zayavki.xlsx в папке «Кодиум» на Яндекс Диске владельца. Каждая заявка дописывается в него новой строкой; открыть можно в браузере или в Excel. В прогоне бот сам создал папку и загрузил файл.

Вариант: Google Таблица. Она удобна, если заказчик уже живёт в Google, но данные тогда лежат у Google за рубежом, а работу Google Cloud из РФ и с российского сервера курс не проверял. Предлагай её, только если заказчик сам попросил и понимает, где окажутся данные.

Одна страница для агента

Итог встречи записываешь в файл scenariy.md в папке проекта. В уроке 2.3 ты отдашь его агенту вместе с заданием. Что в нём должно быть:

  • кто заказчик и какая боль: «школа “Кодиум”, заявки теряются в директе»;
  • шаги сценария с точными текстами кнопок, начиная с согласия;
  • поля и зачем каждое;
  • что происходит при «Не согласен» и при неверном телефоне;
  • куда уходит заявка: уведомление владельцу и строка в файле на Яндекс Диске;
  • чего бот не делает: не хранит имя и телефон на сервере, не отвечает на свободные вопросы.

Такой файл работает как CLAUDE.md из урока 1.5, только про один продукт: агент не гадает, а сверяется.

Контрольный вопрос. Агент прислал текст согласия: «Я согласен на обработку ФИО, телефона и адреса почты». Бот спрашивает только имя и телефон. Что делаешь?

АОставляю: чем больше полей в согласии, тем надёжнее
БУдаляю кнопку «Прочитать согласие», чтобы текст никто не видел
ВПрошу агента переписать согласие ровно под поля, которые бот собирает: имя, телефон, курс
ГДобавляю в бота вопросы про отчество и почту, чтобы текст совпал

Подсказка: Согласие описывает реальные действия бота, а не наоборот.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Человек нажал /start и сразу «Не согласен». Что бот должен сделать дальше?

АВсё равно спросить имя и телефон, вдруг передумает
БСпросить только телефон, чтобы администратор перезвонил и уговорил
ВЗаписать в файл строку с пометкой «отказ»
ГВежливо отказать, больше ничего не спрашивать и ничего не сохранять

Подсказка: Вспомни, на каком шаге стоит согласие и что разрешено до него.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Владелец хочет добавить в анкету вопрос «Сколько вам лет?», но не знает, зачем. Что посоветуешь по уроку?

АДобавить: данных много не бывает
БНе добавлять, пока не появится понятное применение: лишнее поле удлиняет анкету и добавляет персональных данных
ВДобавить, но не говорить о нём в согласии
ГЗаменить вопрос про телефон вопросом про возраст

Подсказка: Правило из раздела «Какие данные и зачем».

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Задание. МИССИЯ «Страница сценария». Составь файл scenariy.md для «Кодиума» или своего заказчика из миссии 2.1: шаги сценария с точными текстами кнопок, список полей с причиной для каждого, поведение при неверном телефоне и при «Не согласен», куда уходит заявка. Отдельной строкой укажи, на каком шаге спрашиваешь согласие и почему. Отдельным абзацем напиши черновик текста согласия: цель, состав данных (ровно поля из списка), где хранятся, срок хранения. Сделай в среде: Прогони сценарий вживую в Telegram: ты «бот», знакомый или однокурсник — клиент; отвечаешь строго по scenariy.md. Где собеседник споткнулся, поправь сценарий. Принято, если: приложен файл scenariy.md; согласие стоит до первого вопроса о данных, и объяснено почему; у каждого поля есть причина; в тексте согласия перечислены те же поля, что в сценарии, и ни одного лишнего; описаны обе ветки («Согласен» и «Не согласен»); срок хранения назван (любой, согласованный с заказчиком или выбранный тобой с пометкой «уточнить у владельца»); приложен снимок переписки прогона и правка в scenariy.md («было → стало» или git diff).

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

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Читайте также: Telegram-бот заявок и 152-ФЗ: где хранить данные клиентов

Что дальше

Сценарий записан. В следующем уроке ты создашь проект, отдашь сценарий агенту и запустишь первую версию бота у себя на компьютере, а заодно увидишь, как агент споткнулся о версии библиотек в прогоне курса.

Итог:
• сценарий «Кодиума»: согласие первым шагом, потом имя, телефон с проверкой, курс кнопками;
• каждое поле нужно владельцу, согласие перечисляет ровно их;
• имя и телефон не хранятся на сервере, заявки идут в zayavki.xlsx на Яндекс Диске владельца.

← Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева