Question types

What value to pass for each kind of Google Forms question. The same shapes work in useGoogleForm and in @ez-gform/core.

QuestionValueNotes
Short answer"text"
Paragraph"text"Use \n for line breaks.
Multiple choice"Option text"
Dropdown"Option text"
Checkboxes["Option A", "Option B"]
"Other" option{ other: "my text" }Works in multiple choice, and inside a checkboxes array.
Linear scale4
Date{ year, month, day }year is optional. Add hour and minute if the question asks for a time.
Time{ hour, minute }
Multiple choice grid{ "entry.<rowId>": "Column" }One key per row. Each row has its own entry id.
Checkbox grid{ "entry.<rowId>": ["Col A", "Col B"] }
File uploadnot supportedGoogle requires sign-in for uploads.
ts
setValue("entry.1", "Jane");                          // short answer
setValue("entry.2", ["Swimming", "Chess"]);           // checkboxes
setValue("entry.3", { other: "Kite surfing" });       // "Other" option
setValue("entry.4", { year: 2026, month: 3, day: 9 }); // date

Watch out for

  • Option text must match the form exactly, including case and spaces. Google silently drops answers that don't match.
  • Empty strings, null and undefined are skipped, not sent as blank answers.
  • Pass a schema to useGoogleForm (or call validateValues) to catch wrong entry ids and missing required answers before submitting.

Writing plain HTML by hand?

Most inputs just use name="entry.N", but a few types split into several fields: dates are entry.N_year, entry.N_month, entry.N_day; times are entry.N_hour, entry.N_minute; "Other" sends entry.N=__other_option__ plus entry.N.other_option_response. It's easier to let the CLI generate the form with --format html.