Re: URL parameters

Anonymous
Not applicable

URL parameters

Can I pass an e-mail address or lead ID to a landing form as a URL parameter, so that it populates the form with the relevant lead data (rather than pulling the info from a cookie)?
Tags (1)
4 REPLIES 4
Kenny_Elkington
Marketo Employee

Re: URL parameters

Hey Gareth,

You can do this natively with hidden fields like this(https://community.marketo.com/MarketoArticle?id=kA050000000LH7uCAG).  For visible fields you need to use some JS with forms 2 api.  This snippet will do that with a parameter called 'Email' and map it to your forms' email field:


<script>
//function to make query parematers into an associative array
  function getUrlVars(url) {
    var vars = [],
        hash;
    var hashes = url.slice(url.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
  }
  
MktoForms2.whenReady( function(form) {
var urlEmail = getUrlVars(location.href)['Email'];//get Email from URL
form.vals( {"Email":urlEmail} );//set value in Email field
})
</script>
Josh_Hill13
Level 10 - Champion Alumni

Re: URL parameters

Some folks think that using the email address or LeadID like this is a security risk, so just be aware of that.
Anonymous
Not applicable

Re: URL parameters

I had an issue with this script, but was able to get it to work with the following change. I'm not a javascript guy, so don't expect a good explanation of what exactly it did. 🙂

...replace...
var hashes = url.slice(url.indexOf('?') + 1).split('&');

...with...
 var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
Anonymous
Not applicable

Re: URL parameters

How do you get the lead data based on the email address provided?  I am trying to build an email subscription landing page that will prepoulate the form based on the email parameter in the url, not from the cookie.