В прогоне курса поток «Кодиума» собирали дважды. Кодом это заняло 8 заданий агенту, около 40 минут его работы. В n8n два сценария собрались примерно за 15 минут, но агент работал через программный доступ к n8n; ты импортируешь готовый файл из урока 3.4 и настраиваешь его. Теперь твоя очередь: свой заказчик, один путь на выбор и обоснование, почему именно он.
Чему научишься в этом уроке:
• выбрать путь для своего заказчика и объяснить выбор;
• собрать поток «форма → уведомление → файл → отчёт» по чек-листу П2;
• проверить его вживую, включая отказ без согласия;
• сдать комплект без секретов в снимках.
Выбери заказчика и путь
Лучше заказчик, с которым ты провёл созвон в уроке 3.7. Если его нет, возьми образец «Кодиума» и поменяй услуги. Путь выбери по таблице из урока 3.2 и запиши обоснование в три-четыре предложения: кто будет менять сценарий, где живут данные людей, сколько заказчик готов платить в месяц.

Пример обоснования для «Кодиума»: «Форму и список курсов будет менять администратор, код она не трогает, но с таблицами дружит. Данные людей лежат на Яндекс Диске в обоих путях. Абонплата n8n 20 € в месяц для школы приемлема, но сервер для бота уже оплачен. Выбираю код, а список курсов в форме администратор меняет сама в Яндекс Формах». Другой ученик при тех же фактах выберет n8n, и это тоже нормально, если причина записана.
Чек-лист П2
Отмечай пункт только после живой проверки: заявка с настоящей формы, сообщение в Telegram, строка в файле на Диске.
- Форма: поля имя, телефон, курс выбором из списка (не свободным текстом), галочка согласия.
- Путь «код»: домен с A и AAAA, https отвечает, nginx слушает и IPv4, и IPv6 (curl -6 отвечает 200), ufw с OpenSSH, 80 и 443 (урок 3.3).
- Путь «код»: адрес приёма с секретом, без секрета 404; служба kodium-forma active и enabled, бот не сломан.
- Путь «n8n»: учётные данные Telegram и Яндекс Диска завёл ты сам, сценарий импортирован, chat_id вписан, протестирован через «Execute workflow» и включён (урок 3.4).
- Форма подключена: в интеграции заданы параметры name, phone, course, consent; адрес с секретом вставил ты сам.
- Без согласия заявка не сохраняется, ответ 400.
- Заявка с согласием: уведомление владельцу с пометкой «Источник: сайт» и строка в zayavki.xlsx, старые строки на месте.
- В рабочем файле есть колонка «Источник», у старых строк она заполнена (урок 3.5).
- Отчёт в 9:00 по Москве: таймер в списке или сценарий с поясом Europe/Moscow, пробный отчёт пришёл.
- В журналах нет строк с api.telegram.org/bot, вход по паролю на сервер выключен (урок 3.6).
Как давать задания агенту
Главный урок прогона: первое задание «сделай всё сразу» агент не выполнил. За 3 минуты он не сделал ничего и спросил, делать по шагам или скриптом. Сработало по-другому: одно задание на nginx, сертификат и файрвол, отдельное на сервис приёма, отдельное на колонку, на отчёт, на журнал. От 1,1 до 11 минут каждое. После каждого живая проверка.
Если в журнале сервиса видишь «Получен JSON с полями: [jsonrpc, method, params, id]», а сервис отвечает 400 «без согласия», вспомни урок 3.3: данные лежат внутри params, а в форме нужно добавить параметры.
Перед снимками закрой телефоны, токены, адрес сервера и секрет в адресе приёма. Секрет в адресе такой же секрет, как токен: кто его знает, может слать тебе заявки.
Порядок работы
- Первый заход: форма, выбор пути с обоснованием.
- Второй: приём заявки до уведомления и строки в файле, проверка без согласия.
- Третий: колонка «Источник» в рабочем файле и отчёт в 9:00.
- Четвёртый: журналы без секретов, страница «Что может сломаться», снимки для сдачи.
Если не получилось
- Агент на большое задание только спрашивает «по шагам или скриптом?» → дели задачу на шаги.
- SSH закрыл соединение сразу после включения ufw → в прогоне вход со второй попытки сработал; главное, чтобы OpenSSH был разрешён до включения.
- curl -6 на свой адрес даёт 000 → nginx слушает только IPv4; нужны listen [::]:443 ssl и [::]:80.
- nslookup на Windows не видит запись AAAA → проверь через другой DNS: в прогоне запись была верной, ошибался локальный nslookup.
- Форма шлёт заявку, сервис отвечает 400 «без согласия» → в интеграции нет параметров, данные пустые.
- В поле «Курс» пришло слово, которого нет в боте → в форме свободный текст вместо списка.
- n8n: загрузка файла на Диск падает → ссылку на загрузку надо брать до сборки файла, а адрес в PUT указывать выражением из узла «Ссылка на загрузку».
- n8n: боевой адрес /webhook/ не отвечает → сценарий не включён (Publish).
Контрольный вопрос. Ты дал агенту одно задание на nginx, сертификат, файрвол, сервис и службу сразу. Через 3 минуты он спрашивает «по шагам или скриптом?». Что делаешь?
Подсказка: Вспомни, какое задание в прогоне сработало после первой неудачи.
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Контрольный вопрос. Какие снимки годятся для сдачи?
Подсказка: Что из этого позволит постороннему управлять ботом или слать заявки?
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Контрольный вопрос. Заявка с формы пришла в Telegram, но в файле у неё пустой «Источник», а у новых строк из бота он есть. Где искать?
Подсказка: Какая часть потока пишет строку именно для заявок с сайта?
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Задание. МИССИЯ «Интеграция для своего заказчика». 1. Запиши заказчика и обоснование выбора пути (код или n8n) в 3–4 предложениях. 2. Собери поток по чек-листу П2. 3. Сломай и почини: отправь форму без галочки согласия, убедись, что заявка не сохранилась; потом отправь с галочкой. 4. Проверь отчёт в 9:00 (пробный ручной запуск) и журналы на секреты. Принято, если: приложено обоснование выбора пути; снимок уведомления в Telegram с «Источник: сайт»; снимок строки в zayavki.xlsx с колонкой «Источник» (телефоны закрыты); снимок журнала службы или списка запусков n8n без токенов и без секрета в адресе; снимок пробного отчёта.
Подсказка: Сначала добейся одной заявки от формы до файла, потом отчёт.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Что дальше
П2 закрыт: заявки из бота и с сайта сходятся в одном файле, владелец получает отчёт. В П3 учимся собирать данные из интернета и разбирать их с помощью нейросети.
Итог:
• собран поток для своего заказчика одним из двух путей, выбор обоснован;
• заявка проходит от формы до Telegram и файла, без согласия отбивается;
• комплект сдачи готов, секретов в снимках нет.
