Skip to main content

Configure your Sheetgo Forms

Header syntax, the seven groups of configurations, and the complete reference table for Sheetgo Forms.

Written by Jonatan Gomes

A Sheetgo Form is generated from one tab in your Google Sheets file. Each column becomes one question, the column header defines it, and every submission becomes a new row in that tab. You write configurations into the headers, in square brackets, to control what each question accepts, what counts as valid, what it says, and how it reacts to other answers.

This article covers the syntax, the seven groups of configurations, and a complete reference table. If you haven't built a form yet, start with Create a new Sheetgo Form.

The form comes from the spreadsheet

Most form tools work in the other direction: you design questions in a separate builder, and the spreadsheet is just where the answers land. Sheetgo turns that around. The form is a view of your tab, and the spreadsheet is the builder. If you've used a database tool that turns a table into a form with one click, this is the same idea, applied to Google Sheets.

That's why a form with no configurations at all already works. Sheetgo reads each column the way Google Sheets sees it: a plain column becomes a text box, a date-formatted column becomes a date picker, a currency or number column expects a number, and a column with data validation becomes a dropdown with those options. Configurations are the optional layer on top. Most people use them, because they add a lot, but none of them is required.

It's also why there's no drag-and-drop form editor. Anything you would tell an editor, you write in the column header instead, so the form and the tab can never drift apart. And the tab keeps working as a normal spreadsheet: rows can arrive from the form or be typed straight into the sheet, side by side, and dropdowns and lookups read the current contents of your file either way.

Because a header is ordinary cell text, you can even build it with a formula. This header updates its own help text with the date of the most recent submission:

="Registration date [default:today, hidden, description:Last submission on "&TEXT(MAX(B2:B),"mmm d, yyyy")&"]"

The concept is covered in full in How do Sheetgo Forms work?. The rest of this article is about the configurations.

Syntax

Put your headers in the first row of the tab. Sheetgo always reads row 1, so a title or a blank row sitting above your headers would become the questions.

A header has three parts, in this order: the question text, an asterisk if the answer is required, and the question's configurations inside one pair of square brackets, separated by commas. The asterisk is the one mark that sits outside the brackets.

Delivery date *[page:"Order", section:"Delivery", description:"When the order should arrive."]

Some configurations take a value after a colon. Others stand alone. A space after the colon is fine: description:"text" and description: "text" both work.

Wrap a value in straight double quotes when it contains spaces, commas, or punctuation. Without quotes, Sheetgo reads a comma inside your text as the start of the next configuration and drops everything after it. Use straight quotes ("), not the curly quotes (" ") that some apps insert automatically. Quotes never hurt, so when in doubt, add them.

The reference table at the end lists the value each configuration expects.

What configurations control

Every configuration belongs to one of seven groups. A question can combine configurations from any of them.

  • Field type decides what kind of answer the question accepts.

  • Constraints decide what makes an answer valid.

  • Initial value puts something in the field before anyone types.

  • Visibility and editability control whether people see the question and can change it.

  • Wording and layout change what the question says and where it sits.

  • Relationships between questions make one question react to another.

  • File storage decides where uploads go.

Field type

Without a field type, a question is a single-line text box. These configurations change that.

  • paragraph turns the box into a multi-line text area.

  • email checks that the answer is an email address.

  • phonenumber checks for an international number: a plus sign, then country code, city code, and local number.

  • barcode adds a reader button that opens the device camera. It reads QR codes too.

  • dropdown shows a searchable list that expands when clicked. It accepts one answer unless you raise max.

  • radio shows the options side by side and accepts one answer.

  • checkbox shows every option at once. People can pick several answers without any extra configuration.

  • scale shows numbers in a single row, for ratings and quantities. Set the ends with min and max, and name them with minlabel and maxlabel.

  • file accepts one upload. multiplefiles accepts any number.

dropdown, radio, and checkbox take their options from the data validation on that column. Set up the validation in Google Sheets first, then add the configuration. If the column has no validation, the question shows a plain text box. Learn more about data validation.

Dropdown

Radio

Checkbox

Scale

Barcode

Dates need no configuration at all. Format the column as a date in Google Sheets (Format, then Number, then Date) and the form shows a date picker. That formatting is also what the reference table means by a date question.

A question that accepts several answers writes them all into one cell, separated by commas. Google Sheets compares each cell against a single item in your validation list, so a cell with two or more answers shows a small warning marker in its corner. The marker is only visual. The form saves every answer.

Constraints

These decide whether an answer is accepted.

  • required makes the answer mandatory. An asterisk after the question text does exactly the same thing; it's shorthand for required, and the one mark that sits outside the brackets.

  • regex accepts only answers that match a pattern you supply (a regular expression). See Add custom validation to your Sheetgo Forms for ready-made patterns.

  • min and max set the smallest and largest acceptable amount. What that means depends on the field type they sit with:

    • On a dropdown, how many options can be picked. Both default to 1, so raising max is what allows several answers.

    • On a scale, the lowest and highest number shown.

    • On a text question, how many characters the answer can have. For example, min:11 with max:11 accepts exactly eleven characters, which works well for national ID numbers.

Initial value

default fills the field before anyone types. It takes a colon and one of these values.

  • default:"any text" sets a fixed starting answer.

  • default:email fills in the address of the signed-in person.

  • default:today fills in the current date. default:now fills in the current date and time.

  • default:timestamp writes the exact submission time as one long number (a Unix timestamp), useful for sorting.

  • default:incremental numbers each submission in order. default:random generates a unique code.

  • default:vlookup fills the field from a table elsewhere in the file, based on the answer to another question.

default:timestamp, default:incremental, and default:random are hidden and locked automatically: they don't appear on the form, and the value can't be edited (see Visibility and editability).

A vlookup needs two companions, plus two optional ones. key names the question whose answer is the search value. range is the table to search, with the search value in its first column; start the range below your header row, at row 2 in most sheets, so headers aren't searched as data. index picks which column of that range to return, counting from 1, and defaults to the last column. fillempty sets what to show when nothing matches, instead of N/A.

Head of household [default:vlookup, key:"Family group", range:"Families!A2:C", index:3, locked]

Visibility and editability

hidden and locked control what the person filling out the form can see and change. Both usually pair with default or formula, which supply the value no one types.

  • hidden keeps the question off the form. Its value still lands in your spreadsheet, and no one can edit it.

  • locked shows the question but stops anyone from editing it. A prefilled locked question looks greyed out, and the form still saves it.

Wording and layout

None of these affect the data. They change what the form says and how it's divided up.

  • label renames the question on the form. The spreadsheet column keeps its own name.

  • description adds help text under the question.

  • section starts a titled block at the question where you add it.

  • sectiondescription adds an explanation under a section title. It only works together with section.

  • page puts the question on a named or numbered page. Give every question on the same page the same value. The form then shows dots at the bottom and a Next button. page written without a value is ignored.

Full name *[page:"Personal data", section:"About you"]
Date of birth *[page:"Personal data"]
Invoice number *[page:"Invoice"]

See Organize your Sheetgo Forms for worked layout examples.

Sections

Pages

Relationships between questions

formula, conditional, and grouped each make one question depend on others.

  • formula calculates a value from other answers while the person fills out the form. Refer to a question by its name in quotes; only the question names take quotes, not the whole expression. It supports the four arithmetic operators plus SUM, AVERAGE, COUNT, COUNTA, MAX, and MIN (the spreadsheet functions, not the min and max configurations). Errors appear as #VALUE!, #NAME!, or #REF!, just like in a spreadsheet. Add locked so no one edits the result by hand.

Total cost [formula: "Price per order" * "Amount of orders", locked]

  • conditional turns a question into a subquestion: it stays hidden until the question it names is answered, then offers only the options that match. The range is a two-column list. The first column holds the possible answers to the named question, and the second holds the options to show for each answer.

City [conditional: Country, range: "Options!A2:B"]

  • grouped makes a set of questions repeatable, so one submission can register several items. Add grouped to every question in the set; the form shows them together in one block at the end, with an add button to repeat it. Each repeat writes its own row to the spreadsheet, and the answers to ungrouped questions repeat on every one of those rows. To tell the repeats apart, add one more column carrying grouped together with default:incremental or default:random; a plain default:incremental outside the group writes the same submission number on every row of that submission. Keep page markers off the grouped questions: a page tag on a grouped question silently ungroups the whole set.

File storage

destinationfolder sets the Drive folder where uploads go. It works together with file or multiplefiles. The folder ID is the long code at the end of the folder's web address: open the folder in Google Drive and copy everything after /folders/ in the URL. You need edit access to the folder, and it can't be in the trash; otherwise, files land at the top level of your Google Drive (My Drive) instead.

Signed contract [multiplefiles, destinationfolder:"1AbC2DeF3GhI4JkL"]

Complete reference

Configuration

Value

Applies to

What it does

*

none

any question

Makes the answer required. Written after the question text, before the brackets.

barcode

none

text questions

Adds a barcode and QR reader that uses the device camera.

checkbox

none

columns with data validation

Shows all options at once and accepts several answers.

conditional

a question name, with range

any question

Hides the question until the named one is answered, then filters its options.

default

text, or one of the keywords below

any question

Fills the field before anyone types.

default:email

none

any question

Fills in the signed-in person's address.

default:incremental

none

any question

Numbers each submission. Hidden and locked automatically.

default:now

none

date questions (date-formatted columns)

Fills in the current date and time.

default:random

none

any question

Generates a unique code. Hidden and locked automatically.

default:timestamp

none

any question

Writes the submission time as one long number. Hidden and locked automatically.

default:today

none

date questions (date-formatted columns)

Fills in the current date.

default:vlookup

none, with key and range

any question

Fills the field from a table elsewhere in the file.

description

text

any question

Adds help text under the question.

destinationfolder

a Drive folder ID

file, multiplefiles

Sets where uploads are stored. Needs edit access to a folder that isn't in the trash; otherwise files land in My Drive.

dropdown

none

columns with data validation

Shows a searchable list. One answer unless max is raised.

email

none

text questions

Checks that the answer is an email address.

file

none

any question

Accepts one file upload.

fillempty

text

default:vlookup

Sets what to show when the lookup finds nothing. Defaults to N/A.

formula

an expression

any question

Calculates a value from other answers as the form is filled out.

grouped

none

every question in the repeatable set

Makes the set repeatable. Each repeat writes its own row.

hidden

none

any question

Keeps the question off the form. The value is still saved.

index

a number

default:vlookup

Picks which column of the range to return, counting from 1. If omitted, returns the last column.

key

a question name

default:vlookup

Names the question whose answer is the search value.

label

text

any question

Renames the question on the form only.

locked

none

any question

Shows the question but stops anyone from editing it.

max

a number

dropdown, scale, text questions

Most options pickable (default 1), highest scale number, or most characters.

maxlabel

text

scale

Names the high end of the scale.

min

a number

dropdown, scale, text questions

Fewest options pickable (default 1), lowest scale number, or fewest characters.

minlabel

text

scale

Names the low end of the scale.

multiplefiles

none

any question

Accepts any number of file uploads.

page

text or a number

any question

Puts the question on a page. Repeat the same value across the page. Without a value it is ignored.

paragraph

none

text questions

Turns the field into a multi-line text area.

phonenumber

none

text questions

Checks for an international phone number.

radio

none

columns with data validation

Shows the options side by side. One answer.

range

a range such as Tab!A2:C

default:vlookup, conditional

For vlookup: the table to search, search value in the first column. For conditional: parent answers in the first column, options in the second.

regex

a pattern

text questions

Accepts only answers that match a regular expression.

required

none

any question

Makes the answer required.

scale

none

use with min and max

Shows numbers in a single row.

section

text

any question

Starts a titled block at this question.

sectiondescription

text

questions with section

Adds an explanation under the section title.

When a form doesn't look the way you expect

Configurations don't report errors. A typo becomes part of the question text, and an incomplete configuration is ignored, so a mistake shows up as a form that looks wrong rather than as an error message. Start with the group the problem belongs to.

  • Everything at once. The form shows your sheet title as a question, or questions that make no sense. Sheetgo reads headers only from row 1. Move your header row to the top and delete anything above it.

  • Field type. A question shows a plain text box instead of options. Either the column has no data validation, or Sheetgo didn't recognize the type configuration.

  • Constraints. min or max isn't doing what you expected. Check which field type it sits with. The same pair means selection count, scale bounds, or character length, depending on the question.

  • Initial value. A prefilled question stays empty. Check that the range starts at row 2, that the search value is in the first column of that range, and that key names the question exactly.

  • Visibility. A question you expected to be read-only can still be edited. Check the spelling of locked and make sure it shares the bracket pair with the question's other configurations.

  • Wording and layout. Text is cut short, or a section or page didn't appear. A value with a comma in it needs straight double quotes around it, and page needs a value repeated on every question of that page.

  • Relationships. A conditional question (subquestion) never appears. It stays hidden until its parent is answered, which is how it should work. If it stays hidden after that, check the conditional range: the parent's answers go in the first column, paired with the options to show in the second.

  • File storage. Uploads land in My Drive instead of your folder. Check that the folder ID matches the code in the folder's URL, that you can edit the folder, and that it isn't in the trash.

  • Any group. Only the first configuration applied. They all have to share one pair of brackets, separated by commas. An unquoted comma inside a value also swallows every configuration after it.

Options for dropdown, radio, and checkbox questions load after the form opens, and a long list can take several seconds to appear. If the options haven't shown up yet, give the list a moment before you conclude something is wrong.

Still stuck? Open the chat in the bottom-right corner of this page and send us the header text you're using, plus a link to your spreadsheet. We'll take a look.


Related articles

Did this answer your question?