Fillo matches prefill values to stable field IDs, not labels. Hidden fields use their configured paramName and fall back to the field ID when no parameter name is set.
Test one field directly
Open the hosted form with one simple parameter:
https://fillo.so/f/your-form?email=person%40example.comReplace email with the exact field ID. Parameter names are case-sensitive. URL-encode spaces, plus signs, ampersands, and other reserved characters.
Use the expected value shape
| Field | URL value |
|---|---|
| Text, email, URL, phone, date, hidden | One string |
| Number, rating, linear scale | A valid numeric string |
| Select or dropdown | Option ID |
| Multi-select or checkbox group | Comma-separated option IDs |
| Standalone checkbox | A supported boolean value |
Labels are presentation text and can change. Use option IDs for choice fields.
File upload, ranking, matrix, signature, and custom fields aren't filled from URL parameters. Pass a supported value through application-owned initialData when the renderer accepts that field shape, or let the respondent fill it in.
Check precedence and timing
Explicit application values win over URL prefill. Saved progress and verified update-in-place response data can also restore later in the initialization flow. So if the URL value appears briefly and then changes, look at initialData, draft restore, and respondent identity behavior.
With a custom UI, create the form controller after the location parameters are available. If a client-side router changes the query string without remounting or resetting the controller, the existing session doesn't automatically become a new form session.
Keep hidden attribution honest
Hidden fields are respondent-supplied unless your server verifies them separately. Anyone can edit a campaign, account, or plan parameter in the address bar, so don't use URL prefill as authorization.
Related
- Prefill: See the complete parser contract and code examples.
- Prefill from URL parameters: Build and encode a complete share link.
- Capture UTM attribution: Store campaign context in hidden fields.