Build a form from a spreadsheet of questions
Turn an XLSX or CSV sheet of questions into a new FormFlow Form. The sheet is reviewed row by row before anything is saved, and the upload is not kept.

A spreadsheet of questions is often where a form starts: one row per question, written by whoever owns the process. FormFlow can turn that sheet into a new Form. It reads an XLSX or CSV file, shows you what it understood, and creates nothing until the sheet is clean and you press Create form. The upload itself is not kept as a customer file.
Before you start
Download the template rather than writing headers from memory. On the Forms list, choose Import form schema, then Download form template. You get form-template.xlsx with two sheets: a questions sheet holding six example rows, and a reference sheet listing, for each field type, whether it takes options, rows and columns, min and max, and which rules.
The questions sheet knows these columns: label, name, type, required, placeholder, options, validation, step, rows, columns, min and max. Only label and type must be present as headers. Every other column may be left out.
The steps
Fill in one row per field. Give each a label and a type. Leave name empty and FormFlow derives it from the label; fill it in if you want a specific name.
Write required as yes, y, true, 1, x or a tick mark. Anything else, including an empty cell, means not required.
Separate list values with a vertical bar: Free|Pro|Team in options, or min:2|max:60 in validation. For a grid, rows and columns take the same bar-separated form. For a scale, min and max take the bounds.
Set step to a whole number to split the Form into Steps. Numbering starts at 0, so the first field must be on step 0. An empty step cell reuses the step of the row above.
Save the file as XLSX or CSV. The default size limit is 2048 KB, and a deployment can change it.
On the Forms list, choose Import form schema and upload the file. Press Review sheet.
Read the review (below). If it lists problems, fix those rows in your sheet and upload it again. If it lists fields, type a name for the Form (it starts as the file name without its extension) and press Create form.
FormFlow opens the new Form's edit page. Check it there before you share the link.
What the review shows
Review sheet reads the file on the server and checks every row before anything is saved. There are two outcomes.
If something is wrong, you see a table with three columns, Row, Column and Problem, under the heading The sheet needs changes, and the message Nothing has been saved. Row numbers are the ones your spreadsheet shows, so row 1 is the header. Typical problems are a missing required column, an empty label or type, a name that cannot be derived from the label, a step that is not a whole number, and anything the Form builder would refuse for that field, which the review words the way the builder does. There is no Create form button while problems remain, and one bad row blocks the whole import.
If the sheet is clean, you see a read-only preview with one row per field: Field name, Label, Type, Required, Options, Validation and Step. Blank rows in the sheet are skipped.
Where it is blunt
It creates a new Form. It never changes the schema of an existing one.
The preview is read-only. To change a field you edit the sheet and upload it again, or edit the Form after creating it.
It does not set correct answers or marks. The template says these are set in the form builder, so the answer key is not copied around in a spreadsheet.
It does not keep your upload. The file is read for the review and then deleted; the review itself travels as an encrypted token tied to your Team.
It does not guarantee the final step. The fields are checked again when you press Create form, and if that check refuses them, no Form is created.
Limits to know about
Accepted files are XLSX and CSV only, up to 2048 KB by default.
A sheet can use at most 10 steps. The problem is reported on the first row whose step goes past the limit.
A file field in the sheet is refused with File fields are not available on this plan unless your Plan allows file fields.
The sheet has no columns for branching rules, styles or step titles. Set those in the builder.
The import code does not close the new Form. Its own comment says the Form is live when you land on it, like one built by hand, so check its settings before you publish the link.