Skip to main content
Question

Hidden Fields in Embedded Forms: Query String (?) vs Fragment (#) – Best Practice and Compatibility

  • October 16, 2025
  • 3 replies
  • 67 views

Hi Typeform Community,

I’m working on a WordPress site using the Essential Addons for Elementor Lite plugin to embed Typeform forms. I need to pass hidden fields (like user_id) to the embedded form dynamically.

I’ve read the official documentation, which states that hidden fields can be passed as fragment/hash (after the #) in the form URL. However, I’ve noticed that when embedding a Typeform using the Typeform Embed library (makeWidget), any parameters after the # are not included in the iframe src, and thus are not received by the form. Only parameters passed as query string (after the ?) are actually sent to the embedded form and appear in the results.

My questions:

  • Is it officially supported and safe to always use the query string (?) for hidden fields in embedded Typeforms, or are there scenarios where the fragment/hash (#) is required or preferable?
  • Are there any known issues or limitations when using the query string for hidden fields, especially in embedded forms on WordPress or with the Typeform Embed library?
  • Is there a recommended best practice for passing hidden fields to embedded Typeforms to ensure maximum compatibility?

Thank you for your help and clarification!

3 replies

Phoebe VA
Community Team
Forum|alt.badge.img+5
  • Community Team
  • 99 replies
  • October 17, 2025

Hi ​@v-pinti,

 

Good questions! Essentially you can use both ? and # for for hidden fields in embedded forms. It’s recommended that you use # for any personal information as it’s more private and to use ? for general tracking hidden fields.  

 

You can also use a combination of ? and # together in the form URL something like: https://form.typeform.com/to/JiEfd000?utm_source=fb&location=homepage#name=joe


  • Author
  • Explorer
  • 2 replies
  • October 24, 2025

Thanks a lot for the explanation!

In my case, it looks like WordPress (specifically the Essential Addons for Elementor plugin) strips everything after the # from the embed URL — probably for security or sanitization reasons.
So I’m forced to pass all hidden fields via the query string (?).

As long as using ? for all hidden fields is officially supported and won’t break in future updates, that should work perfectly for my setup.

Appreciate your help and clarification!


Phoebe VA
Community Team
Forum|alt.badge.img+5
  • Community Team
  • 99 replies
  • October 24, 2025

Yep, both # and ? are supported for passing hidden fields 🙂 Let us know if you have any other questions!