HubSpot forms V4 trigger a conversion on submit

HubSpot embedded forms are not able to be selected as a conversion with button click selectors, as they are embedded in an iframe and security rules don’t allow for us to ‘watch’.

To catch a conversion in HubSpot forms v3 or v4

<script>
  // MUST run before/independent of how the form is embedded
  window.addEventListener('message', function (event) {
    // HubSpot posts structured messages from its iframe
    if (!event || !event.data || event.data.type !== 'hsFormCallback') return;

    // v3 & v4 both emit onFormSubmitted on successful persist
    if (event.data.eventName === 'onFormSubmitted') {
      try { 

        abstConvert(1234);      // CHANGE TO YOUR TEST ID

       } catch (e) { console.error('abstConvert failed', e); }
      // Optional: inspect event.data for formGuid, portalId, fields, etc.
      console.log('HubSpot form submitted:', event.data);
    }
  });
</script>

HubSpot v2

You will need to modify your existing HubSpot form embed code to add a onFormSubmitted object

NOTE: this is a community snippet and has not been verified by the team. We recommending upgrading to HubSpot forms v4


<!-- 1) Load HubSpot forms v2 -->
<script src="https://js.hsforms.net/forms/embed/v2.js" async></script>

<!-- 2) Container to render the form -->
<div id="hs-form-container"></div>

<script>
//find your existing form embed and make changes as per below
  window.addEventListener('load', function () {
    if (!window.hbspt || !hbspt.forms) return;

    hbspt.forms.create({
      region: "na1",               // adjust if your portal uses a different region
      portalId: "YOUR_PORTAL_ID",
      formId:  "YOUR_FORM_GUID",
      target:  "#hs-form-container",

      // add this to your create object change 1234 to your test ID
      onFormSubmitted: function ($form) {
        try { abstConvert(1234); } catch (e) { console.error(e); }
      },

      // Optional: fires right before data is sent
      onFormSubmit: function ($form) {
        // e.g., disable UI; do not fire conversions here
      }
    });
  });
</script>

Leave a Comment

You must be logged in to post a comment.