Skip to main content
If you already know a respondent’s email address or name (because they are clicking a link from your CRM or email newsletter), you should never force them to type it again. Flex Forms prefills inputs automatically when query parameters match a field’s internal name — on embed and popup routes only. The plain (non-embed) fill link does not read prefill params.

How Prefilling Works

1

Locate the Internal Name

Open the Field Settings for the block you want to prefill. Look for the Internal Name at the very top of the panel (e.g., email_address). This is the programmatic key.
2

Use an embed or popup URL

Prefill only runs when the form is loaded as an embed or popup (not the standalone fill link). Append ? followed by the Internal Name, an =, and the value. Example: https://yoursite.com/forms/contact/[email protected]
3

Chain Multiple Parameters

You can prefill multiple fields simultaneously by separating them with an &. Example: [email protected]&company=AcmeCorp
Validation Still Applies: Prefilling a field does not bypass security. If you prefill an Email block with the string "not_an_email", the block will still throw a validation error when the user attempts to submit, exactly as if they had typed it manually.
Prefill does not run on the plain fill link (/forms/your-slug). If you need prefill on a shared URL, use a Standard embed (or Popup) and put the query string on the embed/popup URL.

Silent Prefilling

If you want to track UTM parameters (e.g., ?utm_source=twitter) or internal CRM Account IDs without exposing them to the respondent:
  1. Add a text (or other scalar) block whose internal Name matches the query key (e.g. utm_source).
  2. Open field settings and use Hide so the field is hidden from respondents.
Query values still prefill that field and appear in the submission — respondents never see the input.

Reserved System Parameters

Flex Forms uses a few specific Query Parameters internally to control how embedded forms render. Do not name any of your blocks with these exact strings, as it will cause conflicts.
No. Prefilling is designed for standard scalar data (Short Text, Long Text, Numbers, Emails, Phones, Dates, and Choice Blocks). You cannot prefill complex binary arrays like File Uploads, Signatures, or full Matrix Grids via URL parameters.
No. A prefilled field behaves exactly like a typed field. The respondent is free to delete your prefilled value and type something else before submitting. If you want to prevent them from changing it, you must use the Logic Board to mark the field as Read-Only.
Last modified on September 7, 2026