Форма как настоящий trigger
Содержание курса
Настройка полей формы: типы, метки и обязательность
Каждое поле формы в n8n Form Trigger определяется тремя параметрами, и между ними есть прямая связь с тем, что окажется в JSON item после отправки.
Field Label — это не просто подпись для пользователя. Именно это значение становится ключом в JSON item. Если вы написали «Описание проблемы», то в item появится ключ Описание проблемы, и именно к нему нужно обращаться в expressions: {{ $json['Описание проблемы'] }}. Никакой нормализации или переименования n8n не делает — что написали, то и получили.
Field Type определяет, какой тип ввода видит пользователь:
text— обычная строкаnumber— поле с числовым вводом (HTML рендерит<input type="number">); значение в JSON item приходит как строка, а не как число — если планируете числовые операции в expressions, приводите тип явно:{{ Number($json['Количество']) }}. Всегда проверяйте фактический тип значения в панели Output, прежде чем писать арифметику.email— строка с валидацией формата на стороне браузераdropdown— выбор из предзаданного списка вариантов
Required — флаг обязательности. Если поле помечено как Required, форма не отправится, пока оно не заполнено. Если не помечено — пользователь может оставить его пустым, и тогда ключ в JSON item либо не появится совсем, либо придёт с пустой строкой в зависимости от типа поля. К этому поведению подробнее вернёмся в секции об ошибках.
Посмотрим, как это выглядит на конкретном примере. Форма настроена с тремя полями:
- «Имя» — тип
text, Required - «Email» — тип
email, Required - «Описание проблемы» — тип
text, Required
После того как пользователь заполняет поля и нажимает Submit, n8n создаёт один item со следующей структурой:
{
"Имя": "Алексей",
"Email": "alex@example.com",
"Описание проблемы": "Не работает вход"
}
Ключи совпадают с Field Label один в один. В следующем узле к значению «Имя» обращаются как {{ $json['Имя'] }}, к email — {{ $json['Email'] }}. Это тот же механизм expressions из предыдущего урока, просто теперь ключи определяет конфигурация формы, а не вы вручную.
Практический вывод: называйте поля сразу так, как вам удобно на них ссылаться в expressions. Пробелы и кириллица работают, но их придётся оборачивать в квадратные скобки. Если планируете активно использовать поле в expressions, латинское имя без пробелов (name, email, description) сделает код чище.
