Form Options SyncGoogle Forms · Google Workspace add-on

Seat limits and live options for Google Forms.

Form Options Sync fills a Google Forms question from a Google Sheet, or keeps the options it already has, and limits how many people can pick each option. When an option is full, it leaves the form on its own, or stays on it marked "(FULL)". You get an email when it happens.

Free plan · Pro from $4 a month

A Google Form where full meeting slots have been removed, next to the Form Options Sync sidebar.

What it does

Two jobs: keep a question's options up to date, and stop options from overfilling.

Options from a Google Sheet

Keep the list in a sheet: time slots, class names, sessions. The question's options follow the sheet. Add a row and the option appears on the form. Filter a row out and the option goes.

Seat limits

Give each option a number of seats. The add-on counts the responses. When an option is full, it is removed from the form or marked "(FULL)". Options can also show how many seats are left, for example "Monday 9am (2 left)".

Three question types

Dropdown, multiple choice and checkboxes. On a checkbox question, each ticked option takes one seat. Grid questions are not supported yet.

Who it is for

Anyone running a sign-up sheet in Google Forms.

Respondents do not install anything. Only the person who manages the form uses the add-on.

Teachers

Parent-teacher meeting slots, club and elective sign-ups, class lists kept in a sheet. Each slot closes when it is taken.

Event organisers

Workshop sessions, time slots and tours with a fixed number of places. Full sessions drop off the form.

Clinics

Appointment slots and health camp time slots, with a set number of people per slot.

Volunteers

Shifts and rotas, with a fixed number of people per shift. The coordinator gets an email when a shift fills.

How it works

Four steps, all inside your form.

STEP 1

Install and open

Install Form Options Sync from the Google Workspace Marketplace. Open your form, click the puzzle-piece icon, choose Form Options Sync, then Open sidebar.

STEP 2

Pick a question

Choose a dropdown, multiple choice or checkbox question. Choose where its options come from: a Google Sheet, or the options already in the question.

STEP 3

Set the seats

Tick Limit how many people can pick each option. Set one number for every option, or a number per option. Choose to remove full options or mark them "(FULL)".

STEP 4

Save

Click Add & sync. The question is updated straight away, and again after every response.

Features

Everything is in the free plan.

The plans differ only in how many questions and forms you can sync.

Row filter

Use only the rows where a column says, for example, Active or TRUE. A sheet tick-box column works.

Seats from the sheet

A seats column sets the seats for each option. Blank cells use the default number.

Seats left

Options can show "(N left)" so people see what is still open.

Tidy lists

Blank rows are skipped and duplicates merged. Keep the sheet's order, or sort A to Z or Z to A.

Sections and quizzes

"Go to section based on answer" and quiz answer keys are kept for options whose name did not change, even when a full option is hidden and later comes back.

Emails

When an option fills or has space again, when an option is overbooked, and when a background sync fails.

Never an empty question

If the sheet gives no options, the question is left as it is and the sidebar tells you why.

Sheet outages

If Google Sheets cannot be read, the add-on uses the last copy it read, so seat limits keep working, and says so.

Activity

Each synced question shows when it last synced, how many options it has and which are full. Recent activity lists the latest syncs.

Check setup

One menu item tests everything the add-on depends on and shows the result in one box.

The one limit you should know about

Two people who submit at the same moment can both get the last seat.

Google Forms has no way to hold a seat while someone fills in the form. The add-on counts a response after Google has saved it, then updates the form. In our tests that took about 20 seconds. Anyone who submits in that gap, or in the same moment as someone else, can take a seat that has just gone.

What the add-on does

It notices when an option has more responses than seats. The sidebar marks the option Overbooked, and you get an email that names the option and gives the count, for example 11 of 10.

What you do

Look at the latest responses for that option and contact the extra people. The add-on does not know who they are; your form's responses do.

Other limits

Dropdown, multiple choice and checkbox questions only. Up to 1,000 options per question. Seats are counted per option name, so if you rename an option, responses under the old name no longer count towards it. " (N left)" and " (FULL)" at the end of an option name are reserved for the add-on.

Pricing

Free for one question. $4 a month for everything else.

Every plan has every feature. Prices are also shown in the sidebar before you set anything up.

Free

$0

1 synced question in 1 form. All features: sheet sync, seat limits and emails.

The free plan belongs to the first form you set up. Use my free plan here in the sidebar moves it to another form.

Pro

$4 per month

$36 per year

Unlimited synced questions and forms.

Per Google account: Pro is matched to the email address of the Google account you use the add-on with.

Domain licence

$199 per year

Pro for the people in one Google Workspace domain, for example a school.

Contact us to set it up.

Pro checkout is opening soon. Until then, email [email protected] to upgrade, and tell us the Google account you use with the add-on. After you are upgraded, click Already upgraded? in the sidebar to check again straight away.

If Pro ends, only the oldest synced question in the form that holds your free plan keeps syncing. The others stay set up, and the sidebar shows why they stopped. See the terms for billing, cancellation and refunds.

Setting it up

From an empty sidebar to a working sign-up form.

Before you start, the form needs at least one dropdown, multiple choice or checkbox question. If the options will come from a sheet, you must be able to open that sheet with the same Google account.

  1. Open the form in Google Forms, in edit mode.
  2. Click the puzzle-piece icon (Add-ons) at the top, then Form Options Sync, then Open sidebar.
  3. The first time, Google asks you to allow the add-on's permissions. The add-on needs all of them. If you untick one, the sidebar shows a Grant permissions button instead. The privacy policy explains what each permission is used for.
  4. Click + Add a question and fill in the fields below.
  5. Click Preview to see the options the question would get. Nothing on the form changes yet.
  6. Click Add & sync. The add-on saves your settings, switches on automatic syncing and updates the question. This can take up to a minute.

The fields in the sidebar

QuestionThe dropdown, multiple choice or checkbox question to sync. Each question can have one sync. Once saved, a sync stays with its question. To sync a different question, add a new sync.
Options come fromA Google Sheet: the options are read from a column in a sheet. The options already in the question: the add-on keeps the options you typed into the form and only adds seat limits. Options you add or remove in the form editor are picked up on the next sync.
Spreadsheet linkPaste the link to the spreadsheet, then click Load (or press Enter). You need at least view access to it. The add-on only reads the sheet. It never writes to it.
Sheet tabAfter Load, choose the tab that holds the list.
Options columnThe column letter that holds the option names, for example A. Each row becomes one option. Values are used as the sheet shows them, so dates keep their format.
First row is a headerTicked by default, so the first row (for example "Slot") is not used as an option. Untick it if your list starts in row 1.
Seats columnOptional, under Seats and filter columns. The column letter that holds the number of seats for each option. Blank cells use the default seats.
Filter column and valueOptional. Only include rows where column C equals Active. Capital letters do not matter. Separate several values with commas. Leave the value empty to include every row where that column is not blank and not FALSE, which suits a tick-box column.
OrderAs in the source, A → Z or Z → A. Numbers sort the way people expect: "Slot 2" comes before "Slot 10".
Seat limitsTick Limit how many people can pick each option to switch seat limits on. The add-on then counts every response the form already has.
Default seats per optionA whole number used for every option that has no number of its own. Leave it empty for no limit, unless the seats column or the per-option boxes set one. 0 means the option is full from the start.
When an option is fullRemove it from the form, or Keep it, marked "(FULL)". If every option is full, they are all shown marked "(FULL)", because a question needs at least one option.
Show seats leftAdds the number of free seats to each option, for example "Monday (2 left)".
Seats per optionOnly when the options come from the question itself: one box per option. Blank boxes use the default seats.

What the add-on does with the sheet's rows

  • Blank rows are skipped.
  • Duplicate names are merged into one option, because Google Forms does not allow the same option twice.
  • Up to 1,000 options are used. Names longer than 500 characters are shortened.
  • If the sheet gives no options at all, the question is left as it is and the sidebar shows an error. The add-on never empties a question.
  • The sidebar lists what it did, for example "2 blank rows skipped."

Section jumps ("Go to section based on answer") and quiz answer keys stay with each option as long as its name does not change. When a full option is removed and later comes back, it gets them back too.

When to sync

After every response, and on a timer if you want.

These settings are at the bottom of the sidebar. They apply to the whole form and are saved as soon as you change them.

  • After every response (on by default). The add-on counts each new response and updates the form. Seat limits need this to update quickly.
  • Refresh from the sheet: Only after responses or when I click Sync (the default), Every hour, or Once a day. Choose hourly or daily if you edit the sheet and want the form to follow without waiting for the next response.

Automatic syncing runs from the Google account that switched it on. A sync that reads a sheet only runs from the account that set it up, because that is the account with access to the sheet.

Email me when

Three emails, all on by default.

An option becomes full or has space again

For example when a response is deleted and a seat frees up.

An option is overbooked

Two people submitted in the same moment and the option now has more responses than seats. The email names the option and gives the count.

A sync fails

For automatic syncs only, and once when the failures start, not every hour. If a sync you started yourself fails, the sidebar shows the error instead.

Emails are sent from your Google account to your own address: the account that runs the sync. They contain the form and question names, the options concerned and a link to edit the form.

Sync now, Sync all, Recount responses

Run it by hand whenever you like.

Sync now

On each synced question's card. Reads the source again and updates that question.

Sync all

At the bottom of the sidebar. Syncs every question in the form.

Recount responses

Counts every response again from the start. Use it after you delete or edit responses. The add-on also recounts on its own: on the first sync, when you switch seat limits on, and on the first sync after 24 hours without a recount. With the hourly or daily refresh on, that means about once a day.

Each synced question has a card showing where its options come from, its seat limit, when it last synced, how many options it has, which options are Full or Overbooked, and any warning or error. Edit changes everything except the question. Recent activity lists the latest syncs, what started them and what changed.

Remove a sync

Stop syncing, and put the plain options back.

Click Remove on the question's card. The sidebar asks Stop syncing this question? and shows one tick box, ticked by default:

  • Put the plain options back: the add-on removes "(N left)" and "(FULL)" from every option and brings back the options that were removed because they were full.
  • Untick it to leave the question with the options it shows right now.

Click Yes, stop syncing. The add-on deletes that question's response counts and the copy of the sheet rows it kept. Your responses and your sheet are not touched. When you remove the last sync in a form, the add-on also removes its automatic syncing for that form, and your free plan becomes free to use in another form.

Check setup

One box that says what works and what does not.

In the form, click the puzzle-piece icon, then Form Options Sync, then Check setup. A box opens with one line per item, each starting with OK or FAIL. Check setup works even when the sidebar does not. If you write to support, send a screenshot of this box.

AuthorizationWhether the add-on has the permissions it needs.
AccountThe Google account the add-on is running as.
FormThe form's name and how many questions the add-on can sync.
Stored settingsHow many synced questions ("mappings") the form has.
User storageHow many of your forms have syncs.
PlanFree or Pro, and where that answer came from.
Licence APIWhether the licence check is set up.
Google Sheets accessWhether the first linked sheet can be read, with its tab names.
TriggersThe automatic syncing installed in your account for this form.
Last scheduled runWhen the hourly or daily refresh last ran, and whether it found the form.

Troubleshooting

The messages you might see, and what to do.

The sidebar shows PERMISSION_DENIED

For example "a server error occurred while reading from storage. Error code PERMISSION_DENIED". This happens when several Google accounts are signed in to the browser: Google runs the sidebar as the browser's default account, not the form owner's. Open the form in a window where only the form owner's account is signed in, such as a private window or a separate Chrome profile. The menu items, including Check setup, still work.

"Google Sheets refused access"

The account that set up the sync cannot open the spreadsheet. Open the sheet with that account and check that it is shared with it. Also check that you allowed the add-on's Sheets permission. A new sheet sync that cannot be read is not saved.

"Spreadsheet not found" or "That sheet tab was not found"

Check the link. If the tab was renamed, click Edit, then Load, choose the tab again and save.

"Google allows 20 triggers per account"

Google lets each account have 20 automatic triggers. Each form with automatic syncing uses one or two of yours: one for "after every response" and one for the hourly or daily refresh. Remove the syncs from forms you no longer use (removing a form's last sync removes its triggers). Then change a setting under When to sync in this form so it tries again.

An option name lost its ending

" (N left)" and " (FULL)" at the end of an option are added and removed by the add-on. It strips them from names in the sheet too, so "Room 4 (FULL)" is treated as "Room 4". Do not end your own option names with these.

"This sync was set up by … so it only runs from their account"

Another editor set up this sheet sync. Automatic syncs from your account skip it, so your account never reads a sheet on their behalf. Ask them to open the add-on, or set the sync up again yourself.

"The source produced no options, so the question was left unchanged"

The column is empty, or the filter matched no rows. Check the column letter, the header setting and the filter value. Use Preview to test.

A full option is still on the form

Check that After every response is ticked and seat limits are switched on for that question. If you deleted responses, click Recount responses. Look at the card and Recent activity for an error.

"Another sync is still running for this form"

The add-on runs one sync at a time per form so no response is counted twice. Wait a moment and try again.

"The free plan covers 1 form"

Your free plan is used in another form. Click Use my free plan here to move it. The other form stops syncing until you move it back or upgrade.

Frequently asked

The questions people ask first.

Does it change or delete responses?

No. It reads the answers to the synced questions to count them. It never edits or deletes a response.

Can it read my other files?

No. It can see and change only the form it is opened in, and read only the spreadsheets you link. It has no access to Google Drive, Gmail or your contacts.

How quickly does a full option disappear?

A few seconds after the response is saved. In our tests it took about 20 seconds. See the one limit for what can happen in that time.

What happens when I delete a response?

The seat is freed at the next full recount (about once a day if the hourly or daily refresh is on), or straight away if you click Recount responses. A removed option then comes back, and you get a "has space again" email if that email is on.

Can I edit the sheet while the form is live?

Yes. Changes reach the form after the next response, at the hourly or daily refresh, or when you click Sync now.

Do respondents see how many seats are left?

Only if you tick Show seats left. Otherwise they only see the option names.

Can other editors of the form use it?

Yes. Every editor who opens the add-on sees the same synced questions. Each person's plan is checked against their own Google account.

Do respondents need a Google account?

No. The add-on changes nothing about who can fill in the form.

What about the "Other" option?

The add-on counts only the options it manages. Free-text "Other" answers are not counted.

Where is my data?

Settings and counts are stored with your form, inside Google. Only a licence check leaves Google. The privacy policy lists everything.

Support

Ask the people who built it.

Send a screenshot of Check setup, the name of the question, and the exact text of any message in the sidebar. We never need your Google password.

Form Options Sync pages