Google Forms prefilled links let you populate form fields with default values. Respondents see pre-filled answers they can keep or modify—great for surveys, registrations, and feedback forms.
Key Takeaways
- 1Use Google Forms built-in "Get pre-filled link" feature
- 2Each field uses entry.XXXXXXXX parameter format
- 3Respondents can edit pre-filled values
- 4Works with text, multiple choice, checkboxes, and dropdowns
- 5URL gets very long with multiple fields—consider shorteners
Creating a Prefilled Link (Easy Way)
Google Forms has a built-in feature that generates prefilled URLs for you. This is the easiest approach and works for most use cases where you need a one-off prefilled link.
Open your form in edit mode
Go to forms.google.com and open your form
Click the three dots menu
Top-right corner → "Get pre-filled link"
Fill in the answers
Enter the default values you want in each field
Click "Get link"
Copy the generated URL with all prefilled parameters
The generated URL contains all your prefilled values as query parameters. You can modify these values manually if you understand the parameter format.
URL Structure
Understanding the URL structure helps you create prefilled links programmatically or modify existing ones. Each form field has a unique entry ID that identifies it in the URL.
https://docs.google.com/forms/d/e/FORM_ID/viewform?usp=pp_url&entry.123456=John&entry.789012=john@example.comThe table below explains each component of the prefilled URL so you can construct or modify them manually.
| Component | Description |
|---|---|
viewform | Standard form view endpoint |
usp=pp_url | Indicates prefilled parameters |
entry.XXXXXX | Field ID with prefilled value |
The usp=pp_url parameter indicates that the URL contains prefilled values. Google Forms uses this to properly handle the entry parameters.
Prefilling Different Field Types
Different form field types require different value formats in the URL. Text fields are straightforward, but multiple choice, checkboxes, and date fields each have their own syntax.
Text Fields
# Short answer or paragraph
entry.123456789=Your%20text%20hereText fields are the simplest to prefill. Just URL-encode your text and assign it to the entry ID.
Multiple Choice / Dropdown
# Use the exact option text
entry.123456789=Option%20AFor multiple choice or dropdown fields, use the exact text of the option as it appears in the form. The value must match precisely, including capitalization.
Checkboxes (Multiple Selections)
# Repeat the entry for each selected option
entry.123456789=Option%20A&entry.123456789=Option%20CCheckboxes allow multiple selections. Repeat the same entry ID for each selected option. In this example, options A and C are both pre-selected.
Date and Time
# Date: YYYY-MM-DD format
entry.123456789_year=2026&entry.123456789_month=1&entry.123456789_day=15
# Time: HH:MM format
entry.123456789_hour=14&entry.123456789_minute=30Date and time fields use suffixes like _year, _month, and _day to specify each component separately. This format is more complex but gives you precise control.
Building Links Dynamically
When you need to generate prefilled links programmatically, such as for email campaigns or CRM integrations, this JavaScript function handles all the URL encoding and checkbox logic.
function createPrefilledFormLink(options) {
const { formId, fields } = options;
const baseUrl = `https://docs.google.com/forms/d/e/${formId}/viewform`;
const url = new URL(baseUrl);
url.searchParams.set('usp', 'pp_url');
Object.entries(fields).forEach(([entryId, value]) => {
if (Array.isArray(value)) {
// Handle checkboxes - multiple values for same entry
value.forEach(v => {
url.searchParams.append(`entry.${entryId}`, v);
});
} else {
url.searchParams.set(`entry.${entryId}`, value);
}
});
return url.toString();
}
// Usage
const link = createPrefilledFormLink({
formId: '1FAIpQLSd...xyz',
fields: {
'123456789': 'John Doe', // Name field
'987654321': 'john@example.com', // Email field
'456789123': ['Option A', 'Option C'] // Checkboxes
}
});The function detects arrays and handles checkbox fields automatically by appending the entry ID multiple times. Use it in your server-side code to generate personalized form links.
Finding Entry IDs
To build prefilled links programmatically, you need to know the entry IDs for each form field. There are a few ways to find these IDs depending on your access level to the form.
If you need to build links programmatically, find entry IDs in the page source:
// In browser console on the form page:
document.querySelectorAll('[name^="entry."]').forEach(el => {
console.log(el.name, el.closest('[data-params]')?.querySelector('[role="heading"]')?.textContent);
});This script logs all form field entry IDs along with their question text, making it easy to map entry IDs to specific fields.
Or inspect the network request when submitting the form. Entry IDs appear in the form data payload, which you can see in your browser's developer tools.
React Component
If you are building a web application with React, this component provides a clean interface for creating prefilled form links with proper URL encoding.
interface GoogleFormLinkProps {
formId: string;
prefill: Record<string, string | string[]>;
children: React.ReactNode;
className?: string;
}
function GoogleFormLink({ formId, prefill, children, className }: GoogleFormLinkProps) {
const href = useMemo(() => {
const url = new URL(`https://docs.google.com/forms/d/e/${formId}/viewform`);
url.searchParams.set('usp', 'pp_url');
Object.entries(prefill).forEach(([entryId, value]) => {
if (Array.isArray(value)) {
value.forEach(v => url.searchParams.append(`entry.${entryId}`, v));
} else {
url.searchParams.set(`entry.${entryId}`, value);
}
});
return url.toString();
}, [formId, prefill]);
return (
<a href={href} target="_blank" rel="noopener noreferrer" className={className}>
{children}
</a>
);
}
// Usage
<GoogleFormLink
formId="1FAIpQLSd...xyz"
prefill={{
'123456': 'Conference Registration',
'789012': 'john@company.com'
}}
>
Register Now
</GoogleFormLink>The component uses useMemo to rebuild the URL only when props change, efficiently handling both single values and checkbox arrays.
Best Practices
Following these practices helps you create reliable prefilled links that work consistently and avoid common issues that can break your forms.
Use Google's built-in tool
The "Get pre-filled link" feature is the safest way to generate correct URLs.
URL-encode special characters
Spaces, @, &, and other special characters must be encoded.
Entry IDs can change
If you duplicate or significantly edit your form, entry IDs may change.
With these techniques, you can create personalized form experiences that save respondents time and improve completion rates. The FAQ below addresses specific questions about Google Forms prefilling behavior.
Try the URL Builder
Use our Google Form template to build prefilled links interactively.