Проектируем поток: код или n8n

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

Чему научишься в этом уроке:
• разложить интеграцию на шаги: вход, проверка, выходы, отчёт;
• решить, какие поля спрашивать в форме и как;
• выбрать вместе с заказчиком путь «код» или «n8n» по понятным признакам;
• записать решение так, чтобы его можно было отдать агенту.

Поток по шагам

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

  1. Вход. Яндекс Форма на сайте школы. Человек вводит имя, телефон, выбирает курс и ставит галочку согласия.
  2. Приём. Форма шлёт заявку на адрес вебхука. Адрес содержит секрет: без него запрос не принимается.
  3. Проверка. Нет согласия, значит заявку не сохраняем и честно отвечаем форме ошибкой.
  4. Выход 1. Уведомление владельцу в Telegram тем же ботом, с пометкой «Источник: сайт».
  5. Выход 2. Строка в zayavki.xlsx на Яндекс Диске. Колонка «Источник» у всех строк.
  6. Отчёт. Каждый день в 9:00 по Москве: заявки за вчера по источникам и курсам.
Схема потока слева направо: значок формы «Яндекс Форма: имя, телефон, курс (список), галочка согласия» → стрелка «POST на адрес с секретом» → блок «Приём: секрет верный? согласие есть?» с боковой красной стрелкой «нет согласия → ответ 400, не сохраняем» → две стрелки: «Telegram владельцу, Источник: сайт» и «zayavki.xlsx на Яндекс Диске, колонка Источник». Ниже часы «9:00 МСК» → «Отчёт за вчера в Telegram».

Какие поля и как их спрашивать

Поля те же, что у бота: имя, телефон, курс, согласие. Важно, как они устроены в форме.

  • Курс выбором из списка. В прогоне курс в форме был свободным текстом, и пришла заявка на курс «Backend», которого нет в списке бота. В отчёте по курсам такая строка ломает подсчёт. Делай вопрос с вариантами: Python, Веб-разработка, Нейросети, Пока не знаю.
  • Согласие галочкой. Без галочки сервис заявку не сохраняет. Текст согласия тот же, что в боте (урок 2.2).
  • Источник не спрашиваем. Его ставит сам поток: «бот» или «сайт». Колонка нужна с первого дня, это ты видел в кейсе урока 3.1.

Где лежат данные

Правило из П1 остаётся: имена и телефоны на сервере в Амстердаме не храним, они уходят в файл на Яндекс Диске заказчика. Сервер только принимает заявку и передаёт дальше. Это касается обоих путей.

Яндекс Таблицы кажутся естественным местом для заявок, но открытого API для записи в них на 09.10.2026 не нашлось. Поэтому хранилище остаётся прежним: xlsx на Диске, проверенный в П1.

Это не юридическая консультация. Если поток идёт через облачный сервис вроде n8n, заявка проходит через его серверы. Расскажи заказчику, через какие сервисы идут данные, а выводы по 152-ФЗ пусть он делает со своим юристом.

Код или n8n: как выбрать

Оба пути дают заказчику одно и то же: уведомление, строку в файле и отчёт. Разница в том, кто и как будет жить с этим потом. Задай себе и заказчику четыре вопроса.

  • Кто будет менять сценарий после сдачи? Если сам владелец или его администратор хочет поправить текст уведомления или добавить шаг, n8n удобнее: там шаги видны на схеме. Если менять будешь ты, код проще поддерживать через Claude Code.
  • Сколько своей логики? Проверить согласие, разобрать формат формы, дописать строку в файл: это уже немало кода внутри блоков n8n. Если проверок много и они особые, код честнее.
  • Сколько стоит в месяц? Облако n8n на 09.10.2026: тариф Starter 20 € в месяц при оплате за год, 2 500 запусков; Pro 50 € в месяц при оплате за год, 10 000 запусков. Запуск это один прогон сценария, сколько бы в нём ни было шагов. Есть ли пробный период и примут ли карту РФ, мы не проверяли: посмотри на странице цен n8n до выбора. Путь «код» работает на сервере, за который заказчик уже платит с П1 (цена по счёту Timeweb).
  • Где данные? В пути «код» заявка проходит только через твой сервер. В пути «n8n» ещё и через облако n8n.

Сводка «когда что»:

  • Заказчик хочет править шаги сам, логики мало, 20 € в месяц его не пугают → n8n.
  • Нужны свои проверки, данные под контролем, без абонентской платы, а на поддержку есть исполнитель (ты) → код.
  • Не уверен → спроси на созвоне «кто будет менять сценарий?». Этот вопрос решает выбор чаще остальных (урок 3.7).

n8n можно поставить и на свой сервер бесплатно (Community edition), это разобрано в уроке трека 2 про установку на сервер. Он ставится пятью контейнерами, и поместится ли он рядом с ботом на сервер с 1 ядром и 1,9 ГБ памяти, мы не проверяли. Поэтому в курсе путь n8n идёт через облако.

Миссии следующих уроков. Урок 3.3 собирает поток кодом, урок 3.4 тот же поток в n8n. Обязательна миссия одного урока, того пути, который ты выберешь здесь. Второй урок прочитай и ответь на вопросы, а миссию делай по желанию.

Кейс: задание без плана

В прогоне первое задание агенту было «всё сразу»: nginx, сертификат, файрвол, сервис приёма, служба, тесты и проверка одним текстом. Через 3 минуты и 8 ходов агент не сделал ничего и спросил: делать по шагам или одним скриптом? Когда ту же работу разбили на шаги, каждый шаг прошёл без вопросов. Твоя схема потока заранее делит работу на такие шаги.

Запиши решение

Перед сборкой оформи короткий документ проекта. Его же ты потом положишь в CLAUDE.md проекта (урок 1.5), чтобы агент знал контекст.

Поток: Яндекс Форма «Запись на курс» → вебхук → уведомление владельцу + строка в zayavki.xlsx на Диске
Поля формы: имя, телефон, курс (список: Python, Веб-разработка, Нейросети, Пока не знаю), согласие (галочка)
Проверки: верный секрет в адресе; без согласия не сохраняем
Источник: «бот» или «сайт», колонка в файле с первого дня
Отчёт: ежедневно 9:00 МСК, за вчера, по источникам и курсам
Данные: имена и телефоны на сервере не храним
Путь: код / n8n (выбери), причина: <кто меняет сценарий, бюджет>

Тетрадь проекта: как не терять ход работы

Документ выше и CLAUDE.md хранят то, что не меняется: цель и правила проекта. Но работа идёт шагами, и после каждого шага что-то меняется: шаг сделан, выяснилась деталь, появился вопрос к заказчику. Это удобно держать в отдельном файле, например brief.json. Каждое задание агенту начинается со слов «прочитай brief.json», а заканчивается словами «допиши в него итог шага». Тогда новую сессию можно открыть на любом шаге, и агент продолжит с нужного места, а не начнёт с нуля.

JSON здесь просто текст с подписанными полями, как анкета: у каждого значения есть название. Образец для «Кодиума»:

{
  "цель": "заявки с формы → уведомление владельцу + строка в zayavki.xlsx",
  "решения": [
    "путь: код",
    "имена и телефоны на сервере не храним"
  ],
  "шаги": [
    {
      "шаг": "nginx, сертификат, файрвол",
      "статус": "готово",
      "итог": "curl по HTTPS отвечает 200"
    },
    {
      "шаг": "сервис приёма",
      "статус": "в работе",
      "итог": ""
    },
    {
      "шаг": "подключить форму",
      "статус": "не начат",
      "итог": ""
    }
  ],
  "открытые_вопросы": [
    "в какой часовой пояс слать отчёт?"
  ]
}
  • «Готово» ставишь ты. Шаг закончен, когда ты сам проверил результат, а не когда агент написал «сделано».
  • Шаги по одному. Отдал шаг, прочитал итог, проверил, только потом следующий. Всю цепочку разом не запускай.
  • Никаких секретов. Тетрадь лежит в репозитории рядом с кодом, поэтому ключей, паролей и данных клиентов в ней нет (почему, разбирали в уроке про секреты).
Почему JSON, а не обычная заметка: агент надёжнее читает и дописывает подписанные поля, а ты одним взглядом видишь, какой шаг сейчас в работе.

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

АКод на сервере, раз он без абонентской платы
БНикакой, пусть переносит руками
Вn8n в облаке: шаги видны на схеме, и он сможет править их сам
ГMCP для Яндекс Диска

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

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

Контрольный вопрос. В отчёте «Кодиума» по курсам появилась строка «Backend», хотя такого курса у школы нет. Что поправить в проекте?

АУдалять такие заявки при выгрузке
БДобавить курс Backend в бота
ВПеренести отчёт на неделю
ГСделать вопрос о курсе в форме выбором из списка

Подсказка: Откуда вообще могло взяться название курса, которого нет в боте?

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

Контрольный вопрос. Ты отдал агенту всю интеграцию одним длинным заданием. Через несколько минут он вернулся с вопросом «по шагам или скриптом?» и ничего не сделал. Что разумнее?

АПовторить то же задание ещё раз
БРазбить работу по схеме потока и давать по одному шагу с проверкой в конце каждого
ВПопросить сделать всё одним скриптом и не проверять
ГСменить модель

Подсказка: Что изменилось в прогоне, когда задания стали короче?

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

Задание. МИССИЯ «Поток и выбор». 1. Возьми схему «стало» из миссии урока 3.1. 2. Разложи поток на шаги: вход, приём, проверки, выходы, отчёт. 3. Для каждого поля формы реши, как его спрашивать (текст, список, галочка). 4. Ответь на четыре вопроса выбора и выбери путь: код или n8n. 5. Заполни документ проекта по образцу из урока. 6. Заведи brief.json: цель, решения и шаги потока из п. 2 со статусом «не начат». Сделай в среде: Проверь, что brief.json читается программой: в папке с ним выполни python -m json.tool brief.json. Принято, если: приложены схема потока (снимок или файл), документ проекта и brief.json со всеми шагами потока; в нём есть хотя бы одна проверка и решение, что делать с заявкой без согласия; выбран путь и названа причина одной-двумя фразами со ссылкой на ответ «кто будет менять сценарий»; приложен вывод команды без ошибки (видна разобранная структура).

Подсказка: Если заказчика пока нет, отвечай за «Кодиум», но причину выбора пиши своими словами.

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

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

Контрольный вопрос. Ты сделал три шага из шести, сессия стала длинной и дорогой. Открываешь новую. Как сделать, чтобы агент продолжил с четвёртого шага, а не начал заново?

АСкопировать в новую сессию весь прошлый диалог
БПопросить агента первым делом прочитать brief.json, где записаны решения и статусы шагов
ВВписать ход работы в CLAUDE.md
ГПродолжать старую сессию: новая всё равно ничего не знает

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

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

Что дальше

Поток нарисован, путь выбран. Дальше собираем его по шагам: сначала кодом на том же сервере, где живёт бот, а потом тот же поток в n8n.

Итог:
• поток делится на вход, приём, проверку, выходы и отчёт;
• курс в форме выбором из списка, согласие галочкой, источник ставит поток;
• n8n, когда заказчик правит сам и логики мало; код, когда нужны свои проверки и нет абонплаты;
• большую работу агенту отдают по шагам.

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

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