Hi Zach - how would you include a source field if you wanted to use the same form in different locations? We have over 20 forms that enables site visitors to subscribe to email products by topic. I want to be able to use the same forms, but in a different location and know which location the form was completed.
I want to avoid creating another 20 forms.
Or if you can include the source in the query string, you can read that value right into a hidden field without any code (see the AutoFill option).
If you are talking about global lead sources, as a best practice, I would recommend having this assigned at the global level in a marketo operational program. However, it sounds like you just want to use a global form on different pages and that is entirely different from pulling in source on your form.
You can simply create a smart list with filled out form and use a constraint on webpage X.
Even better would be if you created separate programs. Say you are using the same form for 5 pieces of different content, then you would create a separate program one for each piece of content and pull in people that filled out form on webpage X in one program and then in another program filled out form on webpage Y, etc.
The Web Page constraint is not suitable for embedded forms, where you must use Referrer.
Using a hidden field to identify the hosting URL (or the URL simplified to a simple canonical name) works for both embedded forms and those hosted on Marketo LPs. What you do with this information in a flow is flexible, but the most accurate way to track the hosting web page is at form submit time, not in a flow.