n8n Form Trigger: как собрать многошаговую форму заявки и раздать данные по этапам - Блог Папы Карло

Опубликовано: 5 месяцев назад
Просмотров: 99

Привет. Я бы для такой задачи собирал схему так: первый экран на Form Trigger, дальше Form-узлы по шагам, а между ними — логика на IF, Set, Merge и нужные интеграции. Такой подход удобен, когда заявка длинная, поля разного типа, а на каждом этапе тебе нужен свой кусок данных: контакты отдельно, детали задачи отдельно, файлы отдельно, финальное подтверждение отдельно.

Ниже покажу, как я это делаю в мастерской: какую структуру workflow беру за основу, как назвать поля, куда складывать ответы, как отправлять их в таблицу или CRM, как подмешивать скрытые данные, и где народ чаще всего ловит косяки на Test URL и ветках.

Если у тебя уже крутится n8n и ты работаешь с входящими заявками, эта статья сэкономит кучу нервов. А если только запускаешь связку, пригодятся мои материалы про вебхуки и защиту от дублей, про сбор заявок в Google Sheets и про контроль ошибок в workflow.

Содержание

Ноутбук с веб-формой заявки и схемой этапов обработки на столе

Почему Form Trigger тут вообще удобен

Когда я вижу задачу уровня «собрать длинную заявку на услугу, не спугнуть человека и аккуратно разнести данные по этапам», я не тащу сразу внешний конструктор форм. В n8n Form Trigger уже умеет стартовать workflow, принимать текстовые поля, даты, выпадающие списки, чекбоксы, файлы и скрытые параметры. А дальше ты можешь продолжить форму через обычные Form-узлы и между страницами вставить свою логику: проверку, классификацию, подготовку переменных, ветвление по типу заявки, запись в таблицу, создание карточки сделки.

Самый кайф в том, что многошаговая форма n8n собирается не как один монолитный экран, а как цепочка страниц. Пользователь не смотрит на полотно из двадцати полей, а двигается по нормальному сценарию. На первом шаге ты спросил имя и телефон, на втором — что нужно сделать, на третьем — прикрепил макет, а в финале либо показал экран завершения, либо перекинул человека на нужную страницу. Для b2b-заявок, сервисных мастерских, студий, агентств и внутренних форм это прям рабочая тема.

Ещё одна полезная штука: если тебе нужно дождаться записи в CRM и только потом показывать финальное сообщение, в Form Trigger можно настроить ответ после завершения workflow. Я обычно использую это, когда важно сначала проверить дубль по номеру телефона, создать lead_id и уже потом отдавать человеку красивое подтверждение.

Как я делю заявку на этапы: контакт, задача, файлы, подтверждение

Вот тут начинается нормальная инженерка, а не хаос. Я почти всегда режу форму заявки на четыре смысловых куска.

  • Шаг 1. Контакт. Имя, телефон, email, удобный способ связи. Это минимум, который позволяет не потерять человека.

  • Шаг 2. Суть задачи. Тип услуги, описание, дедлайн, бюджет, количество, формат работы. Тут уже можно уводить пользователя по разным веткам.

  • Шаг 3. Материалы. Файлы, ссылки, артикулы, комментарии, дополнительная информация. Если нужен n8n Form Trigger file upload, я держу это на отдельной странице, чтобы не смешивать файлы с контактами.

  • Шаг 4. Подтверждение. Короткая сводка, согласие, кнопка отправки и финальный экран.

Почему именно так? Потому что на каждом этапе у пользователя разная когнитивная нагрузка. Сначала он просто оставляет контакт, потом втыкает в детали, потом грузит материалы. Если всё свалить на один экран, конверсия обычно проседает. А когда страница короткая и понятная, человек не устаёт и чаще доходит до конца.

Плюс такая разбивка помогает тебе на стороне автоматизации. Контакты можно сразу сохранить в отдельный объект, описание задачи — прогнать через IF или Switch, файлы — отправить в облако, а финальный шаг использовать для записи полного пакета в Google Sheets, Notion, Airtable или CRM. Если потом захочешь на базе формы автоматически собирать коммерческое предложение, глянь ещё материал про автоформирование КП после формы.

Как собрать workflow в n8n

Мой базовый workflow выглядит так:

  • Form Trigger — первый экран формы.

  • Set — создаю служебные поля: lead_id, source, submitted_at, form_version.

  • IF или Switch — смотрю, какой тип заявки выбрал пользователь.

  • Form — следующая страница с вопросами именно под этот тип.

  • Set / Code / Merge — собираю и нормализую значения из нескольких шагов.

  • Google Sheets / CRM / Telegram / Email — отправляю результат куда надо.

  • Form Ending — финальный экран, redirect или свой HTML.

На первом экране Form Trigger я обычно ставлю поля client_name, phone, email и hidden-параметры вроде utm_source, utm_campaign, page_slug. Скрытые поля полезны, когда форму надо предзаполнить или протащить внутрь workflow контекст страницы. Это особенно удобно, если форма одна, а услуг несколько.

Дальше важный момент: названия полей. Не пиши что-то типа «поле1», «супер_поле», «мойвариант2». Дай внятные field name: service_type, task_description, preferred_date, files, budget, comment. Тогда на следующих узлах ты не будешь угадывать, что лежит в JSON, и выражения читаются человечески.

Второй экран через Form-узел можно отдавать уже после логики. Например, человек выбрал «ремонт», и ты показываешь один набор полей. Выбрал «разработка бота» — показываешь другой. Это сильная сторона n8n Form Trigger multi step form: ты не просто показываешь страницы подряд, а реально строишь маршрут по ответам.

Если нужен файл, на шаге с загрузкой не ленись тестировать бинарные данные отдельно. У меня правило простое: сначала проверяю, как пришёл файл в execution, потом уже шлю его в облачное хранилище или в следующий сервис. Когда файлов несколько, часто удобнее после приёма сделать Split Out и прогнать каждый файл отдельным item. Так дальше жить проще.

Пример логики по шагам

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

  • Шаг 1: имя, телефон, email, компания.

  • Шаг 2: пользователь выбирает, что хочет автоматизировать: заявки, склад, поддержку, отчёты.

  • Шаг 3: в зависимости от выбора ты отдаёшь свою страницу. Для заявок спрашиваешь канал поступления, CRM и объём обращений. Для склада — номенклатуру, остатки и периодичность закупок.

  • Шаг 4: если есть файлы, принимаешь ТЗ, таблицу, скриншоты или пример текущего процесса.

  • Финал: сохраняешь всё в таблицу, шлёшь уведомление в Telegram и показываешь подтверждение.

Вот на этой схеме и появляется главная ценность: данные по этапам не перемешиваются. На каждом шаге ты работаешь только с тем, что нужно именно сейчас.

Как раздать данные по этапам и не устроить кашу

Самая частая ошибка новичка — собрать красивую форму, а потом утонуть в том, как достать значения из разных страниц. Я делаю так: после каждого шага ставлю Set и собираю промежуточный объект с понятной структурой.

Например:

  • contact → name, phone, email

  • request → service_type, description, budget, deadline

  • assets → files, links, notes

  • meta → lead_id, submitted_at, utm_source, form_version

Потом перед записью в конечную систему я либо собираю всё в один объект через Set, либо использую Merge, если ветки шли отдельно. Такой расклад хорош тем, что ты легко делаешь маппинг под любую интеграцию. Для Google Sheets разворачиваешь поля в плоскую строку. Для CRM формируешь объект сделки. Для Telegram собираешь компактное уведомление. Для email — красивую сводку.

Если заявка ветвится по типам услуг, я советую делать взаимоисключающие ветки, а не запускать всё подряд. Иначе можно словить странное поведение на финальной странице. У n8n есть важная особенность: если в одном выполнении пошли несколько веток, финальный Form Ending покажется только один — тот, который относится к последней отработавшей ветке. Поэтому нормальный путь такой: один выбор пользователя — одна активная ветка — один финальный экран.

Ещё совет из практики: не стесняйся добавлять form_version и step_name. Через пару месяцев ты сам себе скажешь спасибо, когда начнёшь сравнивать старую и новую версию формы или разбирать, где именно люди отваливаются.

Тонкости: query parameters, скрытые поля, redirect и ветки

Теперь к мелочам, которые на деле решают половину проблем.

  • Предзаполнение полей через query parameters. Работает это отлично, если тебе нужно передать email, имя клиента, ID записи или рекламный источник. Но проверяй именно production URL. На тестовом адресе ты можешь не увидеть нужный эффект и зря подумаешь, что всё сломалось.

  • Скрытые поля. Удобны для source, campaign, page_slug, менеджера, ID товара, реферального кода. Пользователь их не видит, но workflow получает контекст.

  • Redirect после завершения. Полезен, если нужно отправить человека на страницу оплаты, на thank you page, в Telegram-канал с инструкцией или на страницу с допматериалами.

  • Custom HTML и CSS. Я бы не превращал форму в новогоднюю ёлку, но аккуратно подправить подсказки, добавить блок с пояснением, логотип мастерской или стили кнопки — нормальная история.

  • Ignore Bots. Хорошая опция, когда ссылку на форму начинают дёргать предпросмотры мессенджеров и краулеры. Она помогает не получать мусорные срабатывания.

  • Respond when workflow finishes. Беру этот режим, когда хочу завершить запись в таблицу или CRM до того, как пользователь увидит подтверждение.

А ещё советую сразу продумать антидубль: сравнение по телефону, email или внешнему ID. Если у тебя заявки идут из нескольких каналов, пригодится и статья про дубли в автоматизации, и подборка про готовые шаблоны n8n.

Мини-FAQ

Можно ли в n8n сделать действительно многошаговую форму заявки?

Да. Стартовый экран даёт Form Trigger, а следующие страницы показываются через Form-узлы. Между ними можно вставлять свою логику, ветвление и обработку данных.

Можно ли разнести данные по этапам и потом собрать их в одной записи?

Да, это как раз нормальный сценарий. После каждого шага сохраняешь промежуточную структуру, а перед финальной отправкой собираешь единый объект под таблицу, CRM или уведомление.

Подходит ли связка n8n Form Trigger + Google Sheets для первых запусков?

Да, это один из самых удобных стартов. Сначала принимаешь форму, потом разворачиваешь данные по колонкам и уже дальше смотришь, где нужен CRM, Telegram, email или авторасчёт.

Можно ли сделать загрузку файлов в форме n8n?

Да, Form Trigger и Form-узлы умеют файловые поля. Просто не забывай отдельно проверять, как бинарные данные проходят по workflow, особенно если пользователь отправляет несколько файлов.

Что в итоге

Если коротко, n8n Form Trigger отлично подходит, когда тебе нужна не просто форма на сайте, а форма-запускатель для автоматизации. Первый шаг собирает стартовые данные, следующие страницы уточняют заявку, логика между Form-узлами раскладывает пользователя по правильным сценариям, а финал уже пишет всё в нужные системы и показывает внятное завершение.

Я бы делал так: короткий стартовый экран, дальше шаги по смыслу, понятные field name, промежуточные Set-узлы, одна активная ветка на один сценарий, отдельная проверка файлов и дублей, потом запись в таблицу или CRM. Получается аккуратная заявка, которую не стыдно дать людям и не страшно поддерживать самому через месяц.

Метки: , , , , , , , , ,