Core concepts

Supported forms

Jellyhook records the leads your forms collect, whatever tool made the form. This page lists what works, how to mark your form for each tool, and the few cases that cannot be tracked, so you know before you install.

The short version

  • Forms that appear on your own pages are tracked with name, email and phone. That is almost every form: your own HTML, WordPress form plugins, HubSpot, Salesforce Web-to-Lead, Pardot form handlers, Marketo, Mailchimp and most website builders.
  • Forms inside an iframe belong to another website, so your page cannot read them. Typeform, Calendly and Jotform announce submissions, so each one is counted as a lead without name or email. Other iframes (a Pardot iframe form, Zoho, Pipedrive, Google Forms) cannot be tracked at all.
  • Settings, Tracking, Attribute check shows which of your pages have a form that cannot be tracked.

What works, by tool

ToolHow it appears on your pageWhat you get
Your own HTML or React formA form on the pageName, email, phone, every field. Works even when the form submits with JavaScript instead of a page reload.
HubSpot (script embed)A form rendered into the pageName, email, phone, every field.
HubSpot (iframe embed)An iframe that reports to the pageName, email and fields, when HubSpot reports the submission to your page.
Salesforce Web-to-LeadA plain HTML form that posts to SalesforceName (first and last), email, phone, company, every field.
Pardot / Account Engagement form handlerYour own HTML form that posts to PardotName, email, every field.
Pardot / Account Engagement form (iframe)An iframe from go.pardot.com or your own tracker domainCannot be tracked. Use a form handler instead.
Marketo Forms 2.0A form rendered into the page by scriptName, email, phone, every field.
Mailchimp embedded formA form that posts to MailchimpEmail and name, every field. Its hidden spam-trap field is ignored.
Contact Form 7, Gravity Forms, WPFormsA form rendered by the pluginName (first and last), email, phone, every field.
TypeformAn iframe or pop-upA lead without name or email when someone submits.
CalendlyAn inline or pop-up schedulerA lead without name or email when someone books.
Jotform (iframe)An iframeA lead without name or email when someone submits.
Zoho Forms, Pipedrive Web Forms, Google Forms (iframe)An iframeCannot be tracked.
How this was checked

Each row marked with a form on your page was tested in a real browser against that tool's standard markup, by typing into the form and submitting it. The iframe rows were tested by simulating the message those providers document sending to your page. Vendors can change their markup; if a form stops being captured, tell support which tool and which embed option you use.

Where to put the attribute

If your site is set to Only the form I label (recommended), the form you want counted must carry data-conversion="true". You can put it on the <form> itself, or on any element around the form. The second option is what you use for forms a tool builds for you, because you cannot edit the form tag it produces.

A form you can edit (your own HTML, Web-to-Lead, a Pardot form handler, a Mailchimp embed)

<form data-conversion="true" action="..." method="post">
  ...
</form>

HubSpot, Marketo and other script embeds

Wrap the embed in an element that carries the attribute.

<div data-conversion="true">
  <script src="//js.hsforms.net/forms/embed/v2.js"></script>
  <script>
    hbspt.forms.create({ portalId: "...", formId: "..." });
  </script>
</div>

WordPress form plugins (Contact Form 7, Gravity Forms, WPForms)

Put the plugin's shortcode or block inside a Custom HTML block that adds the wrapper:

<div data-conversion="true">
  [contact-form-7 id="123" title="Contact"]
</div>

Typeform, Calendly, Jotform

<div data-conversion="true">
  <iframe src="https://form.typeform.com/to/..."></iframe>
</div>

Sites set to Every form on my site need no attribute for any of these.

Choosing which fields are tracked

By default every field of a form is tracked (recommended). To track only some, add data-track-field to those inputs. See Tracking attributes. This applies to forms on your own page; it cannot reach inside an iframe.

Forms that cannot be tracked, and what to do instead

A form inside an iframe is a page from another website shown inside yours. Browsers do not let your page see inside it, and neither can Jellyhook. The fix is never a Jellyhook setting; it is to show the tool's form on your own page instead of in an iframe:

If you useUse this instead
Pardot iframe formA Pardot form handler: build the form in your site and let Pardot receive the submission. Pardot keeps scoring and routing the lead.
Salesforce hosted form pagesSalesforce Web-to-Lead, which is plain HTML on your page.
Zoho Forms iframeZoho's JavaScript embed option, which renders the form in your page.
Pipedrive web form (embed)Your own form on your page, with the Pipedrive integration or its API receiving the submission.
Google FormsA form on your own page. Google Forms cannot be tracked from outside.
Leads without a name or email

A lead counted from Typeform, Calendly or Jotform has no name or email, because the iframe never shares them. It still counts as a conversion and ties to the visitor's whole visit, so session replay and conversion paths work. It shows a dash in the Leads list. Your CRM holds the person's details.

Check it yourself

Open Settings, then Tracking, then Attribute check. Conversion form says whether a marked form was found and whether a real lead has come from it. Forms inside an iframe lists the pages that have a form the tracker can only count (Typeform, Calendly, Jotform) or cannot see at all, with the tool's name. See Tracking attributes for the four states.