How to convert an existing email sign up form built using the Luminate Online API to a Pardot form on your website.

One of the options Pardot provides for embedded forms is called a Form Handler. A Form Handler functions as a sort of infrastructure to code into any type of HTML form on your website. It enables you to fully customize the look and feel of your form, including using a third-party form tool in some circumstances.

This method uses an email sign up for built with the Luminate Online API as an example, but the general principals apply to most types of HTML forms.

Prepare a Pardot Form Handler

Create a New Form Handler

  1. Login to Pardot and navigate to Marketing > Forms > Form Handlers
  2. Create a new Form Handler
  3. Assign it to a relevant Folder, Campaign and custom Tracker Domain (if applicable).
  4. Set Success and Error locations
  5. Add Completion Actions, such as adding the submitter to a list or sending a confirmation email
  6. Add Form Fields, such as Email and ZIP (NOTE: Follow steps in next subsection to map fields)
  7. Save

Map Form Handler Fields to HTML Form Fields

NOTE ON FIELD NAMES: In this example, the input field name is cons_email, which is used for syncing data into Luminate Online via their API. In Pardot, this input field's name can stay the same, because the form handler provides a tool to map the web form's input field names to corresponding Pardot fields. The data in those Pardot fields will then be synced to corresponding Salesforce fields through the Pardot-Salesforce connector.

  1. The Pardot Form Handler allows you to use the form fields already coded on your website through a form mapping tool.
  2. During Form Handler setup, click the pencil icon to edit the form fields added to your Form Handler.
  3. External Field Name uses the entry in the name="" parameter of your <input> field.
    1. <input id="in_page_email" class="text-input text-input--long " type="email" name="cons_email" placeholder="Email" required="">
  4. Prospect Field is a drop-down selection field for fields available one the Prospect's record in Pardot.
  5. Data Format sets the type of data to expect from the form and should match the entry in the type="" parameter of your <input> field.
  6. Save

Modify Existing Form's Code

HTML forms use the <form> tag with an action="https://" parameter to set the data submission location. The action parameter is the first item to modify, followed up with field IDs.

Set Form Action URL

  1. Copy your existing forms's HTML code and paste into your text/code editor.
  2. When viewing your saved Form Handler, click on the Edit form handler button to view the base <form> tag with associated action paraemter.
  3. Copy the URL inside the parentheses of the action parameter (ex. http://go.pardot.com/l/123456/2020-01-01/3jp)
    1. <form class="homepage-join__form luminateApi blackbaud-form form__wrapper success-message__hide" method="POST" action="http://go.pardot.com/l/123456/2020-07-27/3jp" data-luminateapi="{&quot;callback&quot;: &quot;quickSignupCallback&quot;, &quot;requiresAuth&quot;: &quot;true&quot;}" _lpchecked="1">
  4. Clean up any Luminate API scripts and extraneous code. Double check classes, such as luminateApi in this example, are not controlling styling before removing.
    1. <form class="homepage-join__form luminateApi blackbaud-form form__wrapper success-message__hide" method="POST" action="http://go.pardot.com/l/123456//3jp" data-luminateapi="{&quot;callback&quot;: &quot;quickSignupCallback&quot;, &quot;requiresAuth&quot;: &quot;true&quot;}" _lpchecked="1">

Clean Up Unneeded Form Fields and API-Related Code


The following code example has any code crossed out that can be removed from form.

NOTE: Always double check styles and related scripts located elsewhere as well. Scripts used for the Luminate API are no longer needed and can be removed from the site. 
<form class="homepage-join__form luminateApi blackbaud-form form__wrapper success-message__hide" method="POST" action="http://go.pardot.com/l/123456/2020-01-01/3jp" data-luminateapi="{&quot;callback&quot;: &quot;quickSignupCallback&quot;, &quot;requiresAuth&quot;: &quot;true&quot;}" _lpchecked="1">
  <div class="form__inner form__inner--col homepage-join__header">
    <h3 class="heading heading--small">JOIN OUR COMMUNITY</h3>
    <div class="body-text body-text--large homepage-join__copy">Sign up for our email list.</div>
  </div>
  <div class="form__inner form__inner--around form__inner--main">
    <input id="in_page_email" class="text-input text-input--long " type="email" name="cons_email" placeholder="Email" required="">
    <input id="in_page_zip_code" class="text-input " type="text" name="cons_zip_code" placeholder="Zip Code" required="">
    <input type="hidden" name="question_2683" id="question_2683" value="1181">
    <input type="hidden" name="cons_info_component" id="cons_info_component" value="t">
    <input type="hidden" name="method" value="submitSurvey">
    <input type="hidden" name="survey_id" value="2143">
    <input type="hidden" name="cons_email_opt_in" value="true">
    <div style="display:none">
      <label for="denySubmit">Spam Control Text:</label>&nbsp;
      <input type="text" name="denySubmit" id="denySubmit" value="" alt="This field is used to prevent form submission by scripts.">&nbsp;Please leave this field empty
    </div>
    <button class="button in_page_form" type="submit">
      <span class="button__copy">SIGN UP</span>
      <div class="button__spinner">
        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve">
          <path fill="#fff" d="M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z" transform="rotate(100.324 25 25)">
            <animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="0.6s" repeatCount="indefinite"></animateTransform>
            </path>
        </svg>
      </div>
    </button>
  </div>
</form>