All Collections
Developer resources
Populating the email field on forms using URL parameters
Populating the email field on forms using URL parameters
Technical documentation for developers on using URL query strings to populate data fields
Marcus Warren avatar
Written by Marcus Warren
Updated over a week ago

Forms displayed on hosted landing pages (standalone pages that aren't part of your website) will have the email field prefilled automatically when URL of the hosted landing page is access from an email.

Forms that are embedded on web pages will only have the email prefilled when the web page with the form on it includes the custom code below and the link to the web page in the email passes the email address using a URL query string, for example:

https://website.com/page/?email={email}

/* Update the email field from URL parameter */
window._nvkForm = window._nvkForm || [];

var nvkUrlParameters = function () {
  var query_string = { };
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if ( pair[0] ) {
      pair[0] = decodeURIComponent(pair[0]).replace('[]', '');
      if ( pair[1] ) {
        pair[1] = decodeURIComponent(pair[1]);
      }
      // If first entry with this name
      if (typeof query_string[pair[0]] === "undefined") {
        query_string[pair[0]] = pair[1];
        // If second entry with this name
      } else if (typeof query_string[pair[0]] === "string") {
        var arr = [ query_string[pair[0]],pair[1] ];
        query_string[pair[0]] = arr;
        // If third or later entry with this name
      } else {
        query_string[pair[0]].push(pair[1]);
      }
    }
  }
  return query_string;
}();

if ( nvkUrlParameters.email ) {
  window._nvkForm.push({
    on: 'load',
      updateField: function(fieldData) {      
          return { formFieldId: 'emailField', newValue: nvkUrlParameters.email };
    }
  });
}

NOTE: the "formFieldId" property will need to be updated to the correct value when implemented. It will not be "emailField" by default.

Did this answer your question?