Превратите длинную Форму в Шаги, не меняя конечную точку
Шаги делят длинную Форму на экраны, не трогая конечную точку: один POST по-прежнему несёт все поля, разрыв едет вместе с полем под ним, а Форма откатывается к одной странице.
Эта статья переведена машинным способом. Читать оригинал на английском

Длинная Форма — это одна страница вопросов, и именно на одной странице люди уходят. Шаги делят её на экраны. Чего они не делают — не меняют конечную точку: Форма по-прежнему отправляется один раз, со всеми полями, на адрес, который уже назван в вашей разметке.
Шаг — это решение о представлении
Шаг — именованная группа полей Формы, которая показывается Отправителю по одному экрану за раз. Ни приём, ни квота, ни оценка спама, ни хранение не меняются, когда Форма разбита на несколько: судья получает то же тело, что и раньше, а одна Отправка остаётся одной учтённой отправкой.
Это весь контракт, поэтому добавление Шага — изменение представления, а не вашей интеграции. Адрес в вашем HTML, имена полей в разметке и число Отправок в вашем тарифе остаются на месте. Шаги доступны на платных тарифах.
Разрыв принадлежит полю под ним
В конструкторе разрыв Шага — это метка на поле, которое открывает следующий Шаг, то же самое, что линия, проведённая над этим полем. Он едет вместе с полем, поэтому перетаскивание поля перемещает и разрыв. Разрыв Шага — не разделитель, брошенный между вопросами; это свойство одного поля, и чтение списка полей сверху вниз — это чтение порядка Шагов.
Отсюда два следствия. Перестановка полей переставляет Шаги, поэтому полюбившийся Шаг может быть поглощён тем, что выше. А пустой Шаг закрывается: FormFlow не хранит экран, на котором ничего нет.
Один POST несёт все поля
Форма рисует один Шаг за раз, но браузер по-прежнему отправляет один запрос. Всё, что ответил Отправитель, приходит вместе, с ключами имён полей из схемы Формы. Справочник конечной точки — в /docs/api: один POST, одно тело, один ответ.
curl -X POST https://formflow.digital/api/v1/f/ff_live_example \
-H 'Content-Type: application/json' \
-d '{
"name": "Lena Ortiz",
"email": "lena@example.com",
"company": "Ortiz Studio",
"budget": "5000",
"brief": "A one-page site, live in June."
}'Пять полей, три Шага, один запрос. Нет частичной Отправки, которую нужно сводить между экранами, нет второго запроса для повтора и нет квитанции на каждый Шаг. Запрос не прошёл — попытка не прошла; прошёл — у FormFlow одна Отправка, и он судит её один раз.
Когда Форма рисуется плоско
Форма рисуется со всеми полями на одной странице под одной кнопкой отправки в трёх случаях: она не объявляет Шагов, тариф Команды их больше не разрешает, или браузер Отправителя не выполняет JavaScript. Плоская отрисовка — не запасной вариант, добавленный потом; это то, вокруг чего Шаги служат оболочкой.
Тот, у кого скрипты отключены, получает те же поля, те же имена и ту же кнопку отправки — просто на одной странице. Форма не сломана, она просто одна страница. Потеря Шагов из-за смены тарифа — тоже не миграция: Форма хранит Шаги в своей схеме, рисуется плоско, пока разрешения нет, и снова рисует их, если оно вернётся.
Где Шаги резки
Шаги и не прячут схему. Всё, что вы объявили, входит в контракт, показывает это экран или нет, и мнение браузера о том, какие поля видны, никогда не решает, что будет принято. Если поле должно отсутствовать, а не просто быть невидимым, не объявляйте его.
Запись Списка изменений для v1.0.0 фиксирует фразу, на которой всё это держится: направьте любую HTML-форму на FormFlow, или используйте размещённую страницу либо встраивание, и он получает, фильтрует, хранит и передаёт каждую отправку. Шаги переставляют середину этой фразы. Они её не удлиняют.