Google Forms · Updated September 2026 · 10 min read

Google Forms prefilled link: entry IDs, bulk links and hidden fields

A Google Forms prefilled link opens your form with some answers already filled in, such as a name, an order number or a campaign tag. Google builds the first link for you, and once you understand the entry.XXXX pattern behind it you can generate hundreds from a spreadsheet. What it cannot do is hide those values, which is where most UTM and tracking plans run into trouble.

By Raj Kumar, Founder, Zunoform

A chain of ceramic links on linen, with some links already filled with terracotta inlay

The short answer

Open the form, click the three-dot More menu, choose "Pre-fill form", type the answers you want pre-populated and click "Get link", then copy the link. The link carries each answer as a URL parameter named entry. followed by the question's numeric ID, so you can swap in other values to make personal links.

  • Prefilled answers are visible and editable by the respondent. Google Forms has no native hidden fields.
  • Google Forms ignores parameters it doesn't recognize, so utm_source in the URL is not captured on its own.
  • Hiding a prefilled question in a section people skip usually loses the value, because unvisited sections aren't submitted.
  • For bulk links, build the URL in Google Sheets with ENCODEURL around each value.

Steps from Google's "Publish & share your form with responders" help page, checked 28 September 2026. The link only works for respondents once the form is published and accepting responses.

01

Open the form in edit mode

Go to forms.google.com and open the form you want to share. You need edit access; people with a respond-only link can't generate prefilled links.

02

Open More, then Pre-fill form

Click the three-dot More menu at the top right and choose "Pre-fill form". A copy of the form opens in a new tab in a special pre-fill mode.

03

Fill only the answers you want pre-populated

Type or select values for the questions you want filled. Leave the rest blank. Use obvious sample values such as TESTNAME, so they are easy to find in the URL later.

04

Click Get link and copy it

Click "Get link" at the bottom, then copy the link. Paste it into a text editor before doing anything else: this is your template for every personal link you build.

05

Test it in a private window

Open the link in an incognito window and confirm each answer appears. If an answer is missing, the value probably didn't match an option exactly, or the question sits in a later section you haven't reached yet.

What does the entry.XXXX parameter mean?

A prefilled link looks like this: https://docs.google.com/forms/d/e/FORM_ID/viewform?usp=pp_url&entry.1234567890=Jane&entry.2345678901=Order+1042. The usp=pp_url part marks it as a prefilled URL. Each entry.<number> is one question, and the number is that question's internal ID, which stays the same when you edit the question text.

To find the ID for a question, prefill it with a distinctive word and look for that word in the link. The entry number just before it is the one you need. Write the IDs down next to the question titles, because they are the only mapping between your spreadsheet columns and the form.

How each question type is prefilled

Short answer and paragraph take any text. Multiple choice, dropdown and linear scale take the option text (or the number, for a scale), and the value has to match an option exactly, including capitals and spacing, or nothing is selected. Checkboxes repeat the same parameter once per ticked box: entry.111=Red&entry.111=Blue.

Dates come out in year-month-day order (entry.333=2026-10-15) regardless of how your locale displays them. For anything unusual, such as an "Other" option or a time question, don't guess the format: prefill it once with Google's tool and copy the exact parameters it produces. File upload questions can't be prefilled.

Which parameter format goes with which question type?

What the Get link button produces for common question types. Copy the pattern from your own generated link before building in bulk.

Question typeParameter patternWatch out for
Short answer / paragraphentry.111=Jane+DoeEncode spaces, &, # and + (use ENCODEURL in Sheets)
Multiple choice / dropdownentry.222=Option+textMust match the option text exactly
Checkboxesentry.333=A&entry.333=BOne repeat per ticked box
Linear scaleentry.444=4Must be a value on the scale
Dateentry.555=2026-10-15Year-month-day, whatever your locale shows
File uploadNot supportedCan't be prefilled

Google documents the Get link button, not the parameter syntax, and the syntax can change. Treat these patterns as a guide and copy the exact format from a link you generate yourself.

Sources: Google Docs Editors Help: Publish & share your form with responders

Put one row per person in a sheet: name in column A, email in column B, order number in column C. Keep your base link, everything up to and including usp=pp_url, in a single cell, say F1, so you only have to change it in one place.

Then build each link with a formula and fill it down. ENCODEURL matters: without it, a name like "Ali & Sons" breaks the link at the ampersand, and a plus sign turns into a space. Google's help page describes ENCODEURL as encoding text "for the purpose of using in a URL query", which is exactly this job.

Source: Google Docs Editors Help: ENCODEURL

Copyable formula: one prefilled link per row

Cell F1 (your base link):
https://docs.google.com/forms/d/e/FORM_ID/viewform?usp=pp_url

Cell D2 (then fill down):
=IF(A2="", "", $F$1 & "&entry.1111111111=" & ENCODEURL(A2) & "&entry.2222222222=" & ENCODEURL(B2) & "&entry.3333333333=" & ENCODEURL(C2))

Replace FORM_ID and the three entry numbers with the ones from your own generated link. In locales that use commas as decimal separators, Sheets expects semicolons between function arguments. Use a mail merge or your email tool to send each row's link.

Can a prefilled Google Form have hidden fields?

Not natively. Every prefilled answer is a normal question that the respondent can see, change or delete before submitting. There is no setting that hides a question while still recording its value.

Two workarounds circulate. The first is to put the tracking question in its own section and use "Go to section based on answer" or the section's "After section" setting so respondents jump past it. It sounds right, and it is still repeated in tutorials, but it has a known problem: answers in sections the respondent never visits are not submitted. In a 2020 Apps Script community thread about exactly this setup, the reported result was that the prefilled value came back blank, and Nerdy Form's current guide warns about the same limitation. If you try it, submit a real test response and check the sheet before relying on it.

The second workaround is honest rather than hidden: put the question on the last page, label it clearly ("Reference code, please leave as is"), and accept that it is visible. It works, and the value arrives. It is also trivial to edit.

Source: Google Apps Script community: hidden prefilled fields in Google Forms

Source: Nerdy Form: How to add hidden fields to Google Forms

Why prefilled tracking values can't be trusted

Anything in a URL can be changed by whoever has the URL. A respondent can edit entry.2222222222=Order+1042 to another order number, forward their personal link to a colleague, or strip the tracking values out entirely. Treat a prefilled ID as a hint that saves typing, not as proof of who responded. If identity matters, match on something the respondent must know, or use sign-in.

Privacy cuts the other way. A personal link with a name and email in plain text ends up in browser history, email archives, analytics tools and any page the respondent shares it on. Prefill an opaque reference (a random code you can look up in your sheet) rather than personal data, and never put anything sensitive in the URL.

Can Google Forms capture UTM parameters?

Only indirectly. Google Forms reads entry.<id> parameters and ignores the rest, so a link ending in ?utm_source=newsletter&utm_campaign=october is logged nowhere in your responses. There is also no field in Google Forms for a Google Analytics or Tag Manager ID, so you can't see the campaign in GA either.

The workable approach is to translate: create a short-answer question such as "Source", find its entry ID, and publish one prefilled link per channel, for example entry.4444444444=newsletter for the email and entry.4444444444=linkedin for the social post. You can build those channel links in the same sheet, or tag your landing pages with our free UTM builder at /tools/utm-builder and then map each campaign to a prefilled form link.

The limits are the ones above: the source question is visible and editable, a skipped section may drop it, and a person who arrives on your site first and then clicks a plain form link brings no source at all. If attribution matters, you need a form that reads utm_* parameters into real hidden fields. Our guide to capturing UTM parameters in forms (/blog/utm-tracking-forms) covers first-touch versus last-touch storage and embed pitfalls in detail.

Checked 28 September 2026. "Hidden" means the respondent can't see or edit the value in the normal form UI.

ApproachHidden from respondentValue reliably submittedReads utm_* directlyCost
Prefilled link, visible questionNoYesNo (one link per channel)Free
Prefilled question in a skipped sectionYesReported not to beNoFree
Formfacade Prefill & Email add-onListing says readonly or hiddenPer vendorCheck with vendor$18/month
Form builder with native hidden fieldsYesYesYes, if named utm_*Varies; Zunoform includes them on Free

Sources: Google Workspace Marketplace: Formfacade Prefill & Email · Google Apps Script community thread on skipped sections

Where Zunoform fits (and where it doesn't)

Zunoform does both jobs separately. Visible questions can be prefilled from the URL by their field ID or by their question text (?company=Acme fills a question titled Company), and each question can also have a named "Prefill from URL parameter" in the field editor. Hidden fields are a different thing: you declare names such as utm_source in Settings, the respondent never sees them, and the values are saved with the response on every plan, including Free.

Those hidden values appear in the response view, the CSV export, and deliveries: webhooks and Zapier catch hooks get them as a hidden object, and Google Sheets and Excel add one column per hidden field. Our embed script also forwards the host page's query string into the form. The honest gaps: the native HubSpot and Mailchimp integrations don't map hidden fields, so CRM attribution goes through Zapier or a webhook, and Free is capped at 500 responses a month where Google Forms is unlimited. If visible prefilled answers are all you need, Google Forms is fine and free.

Questions people ask

Why is my Google Forms prefilled link not working?

The usual causes are an unencoded value (an ampersand or plus sign in a name cuts the link), a choice value that doesn't exactly match an option, a stale entry ID after you rebuilt a question, or a form that isn't published. Regenerate the link with Get link, compare the entry numbers, and wrap values in ENCODEURL.

Can respondents change prefilled answers in Google Forms?

Yes. A prefilled answer is just a default value in a normal question. The respondent can see it, edit it or clear it before submitting, and they can also edit the URL itself. Don't treat a prefilled ID as verified identity; use sign-in or a lookup code if that matters.

Does a prefilled link work if the question is in a later section?

Yes, the value is filled in when the respondent reaches that section. The problem is sections respondents never reach: answers in skipped sections are reported not to be submitted, which is why the hide-it-in-a-skipped-section trick tends to lose the value. Always check a test response.

What is usp=pp_url in a Google Form link?

It is the marker Google adds to links made with the Pre-fill form tool, telling the form the URL carries prefilled answers. Keep it in your base link and add each answer after it as &entry.<question ID>=<value>.

Can I create prefilled Google Form links from a spreadsheet?

Yes. Put the base link in one cell, then build each row's link with a formula that joins the base link, each &entry.<ID>= parameter and ENCODEURL of the cell holding the value. Fill the formula down and send the links with a mail merge.

How do I find the entry ID of a Google Form question?

Open More, then Pre-fill form, type a distinctive word such as TESTNAME into the question, click Get link and search the copied URL for that word. The number in the entry.<number> parameter just before it is the question's ID. It stays the same when you reword the question, but a deleted and recreated question gets a new one.

Does Google Forms support hidden fields for UTM tracking?

No. Google Forms has no hidden field type and ignores utm_* parameters in its URL. You can approximate it with one visible "Source" question prefilled per channel, or an add-on such as Formfacade, or use a form builder with native hidden fields that read utm_* values directly.

About the author

Raj Kumar · Founder, Zunoform

Raj Kumar is the founder of Zunoform, the form builder made by Symphonic Grow. He builds the product and writes these guides, checking every competitor price and feature claim against the vendor's own pages before publishing.

Raj Kumar on LinkedIn

Keep reading

Ready when you are

Better forms.
Better data.

Start with a conversation, a document or a single page.
Unlimited forms and 500 responses per month on Free.
No card required.

  • No credit card
  • Unlimited forms
  • 500 responses / month