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

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.
How do you get a prefilled link in Google Forms?
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.
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.
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.
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.
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.
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 type | Parameter pattern | Watch out for |
|---|---|---|
| Short answer / paragraph | entry.111=Jane+Doe | Encode spaces, &, # and + (use ENCODEURL in Sheets) |
| Multiple choice / dropdown | entry.222=Option+text | Must match the option text exactly |
| Checkboxes | entry.333=A&entry.333=B | One repeat per ticked box |
| Linear scale | entry.444=4 | Must be a value on the scale |
| Date | entry.555=2026-10-15 | Year-month-day, whatever your locale shows |
| File upload | Not supported | Can'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
How do you build prefilled links in bulk with Google Sheets?
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.
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.
Workarounds compared: prefilled links vs hidden fields
Checked 28 September 2026. "Hidden" means the respondent can't see or edit the value in the normal form UI.
| Approach | Hidden from respondent | Value reliably submitted | Reads utm_* directly | Cost |
|---|---|---|---|---|
| Prefilled link, visible question | No | Yes | No (one link per channel) | Free |
| Prefilled question in a skipped section | Yes | Reported not to be | No | Free |
| Formfacade Prefill & Email add-on | Listing says readonly or hidden | Per vendor | Check with vendor | $18/month |
| Form builder with native hidden fields | Yes | Yes | Yes, if named utm_* | Varies; Zunoform includes them on Free |
Sources: Google Workspace Marketplace: Formfacade Prefill & Email · Google Apps Script community thread on skipped sections
Before you send a batch of prefilled links
- Every value is wrapped in ENCODEURL (or otherwise URL-encoded).
- Choice values match the option text exactly, including capitals.
- The form is published and accepting responses.
- You opened two or three generated links in a private window and submitted a test.
- The test response shows every prefilled value in the linked sheet.
- No personal or sensitive data sits in the URL; an opaque reference code does the job.
- If you edited the form after generating the template, you regenerated the link and rechecked the entry IDs.
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.
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 LinkedInKeep reading
Marketing attribution
Google Forms
Google Forms
Google Forms
Comparison

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