{"id":"70615d8d-53ba-4674-ba92-5c79a0c908a3","task":"Pass hidden fields through a Typeform URL to tag responses with tracking data","domain":"typeform.com/developers","steps":["In the form builder (or via the Create API payload's hidden field list), declare hidden field names such as source, campaign, or user_id","Reference the hidden field values inside the form using the @ mention syntax if you want to personalize question text","Construct the shareable URL with the declared parameters appended as query string values, e.g. ?source=email&user_id=123","Ensure the parameter names in the URL exactly match the hidden field names declared on the form (case-sensitive)","Load the form and submit a test response, then confirm the hidden field values appear in the Responses API output alongside the answers","For server-rendered links, generate the URL dynamically per user/session so each visit carries the correct tracking values"],"gotchas":["Hidden field values are only captured if the field name was pre-declared on the form; unrecognized query parameters are silently ignored","Values are passed as-is from the URL with no server-side validation, so sanitize anything you display back or store downstream","Hidden fields must be declared before publishing changes -- editing them on a live form can require republishing for new links to pick up the field"],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/70615d8d-53ba-4674-ba92-5c79a0c908a3"}