Skip to main content

Track Forminator Form Submissions in GTM (forminator:form:submit:success)

GTM Custom HTML tag for tracking Forminator form submissions. Uses the forminator:form:submit:success event to capture formId, email, name, phone for GA4 Enhanced Conversions.

forminatorwpmu-devwordpressformsgtmga4lead-generationenhanced-conversions

Key variable

formId

Forminator Form

Overview

Forminator is WPMU Dev's free WordPress form builder. This is one of the most feature-rich form listeners available: it captures the form ID, first name, last name, email, and phone number, making it ideal for GA4 Enhanced Conversions. It also tracks failed submissions for form error monitoring.

Events fired:

  • forminator_form_success, successful submission with user data
  • forminator_form_failed, failed submission

Variables: formId, forminator_user_data (firstname, lastname, email, phone), formData

Why Use This Listener

The user data capture makes this listener excellent for GA4 Enhanced Conversions and Meta Conversion API. You get hashed email and phone directly from the form submission.

Common Use Cases

  • Track contact form and lead form completions
  • Capture hashed email/phone for Enhanced Conversions
  • Monitor form submission errors for UX improvement
  • Send first-party data to GA4 for identity resolution

Installation

html
<!-- GTM Custom HTML Tag: Forminator Listener -->
<script>
(function() {
  document.addEventListener('forminator:form:submit:success', function(e) {
    var data = e.detail;
    var formData = {};
    
    if (data && data.formData) {
      data.formData.forEach(function(field) {
        formData[field.name] = field.value;
      });
    }
    
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': 'forminator_form_success',
      'formId': data ? data.formId : '',
      'forminator_user_data': {
        'form_firstname': formData['name-1'] || formData['first-name'] || '',
        'form_lastname': formData['name-2'] || formData['last-name'] || '',
        'form_email': formData['email-1'] || formData['email'] || '',
        'form_phone': formData['phone-1'] || formData['phone'] || ''
      },
      'formData': formData
    });
  });
  
  document.addEventListener('forminator:form:submit:fail', function(e) {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': 'forminator_form_failed',
      'formId': e.detail ? e.detail.formId : ''
    });
  });
})();
</script>

Fire on: DOM Ready.

Data Layer Output

Success Event

json
{
  "event": "forminator_form_success",
  "formId": "1",
  "forminator_user_data": {
    "form_firstname": "Jane",
    "form_lastname": "Smith",
    "form_email": "jane@example.com",
    "form_phone": "+1234567890"
  },
  "formData": { "name-1": "Jane", "email-1": "jane@example.com" }
}

Triggers to Create

TriggerEvent Name
CE – Forminator Successforminator_form_success
CE – Forminator Failedforminator_form_failed

Variables to Capture

Variable NameDL KeyExample
DLV – Forminator Form IDformId"1"
DLV – Forminator Emailforminator_user_data.form_email"jane@example.com"
DLV – Forminator First Nameforminator_user_data.form_firstname"Jane"
DLV – Forminator Phoneforminator_user_data.form_phone"+1234567890"

GA4 Mapping: Enhanced Conversions

GA4 EventParameterValue
generate_leadform_idDLV – Forminator Form ID
Enhanced ConversionsemailDLV – Forminator Email
Enhanced Conversionsphone_numberDLV – Forminator Phone
Enhanced Conversionsfirst_nameDLV – Forminator First Name

Use GTM's User-Provided Data variable for Enhanced Conversions setup.

Debugging

ProblemCauseFix
Events not firingForminator JS not loadedSwitch to Window Loaded
User data emptyField IDs differAdjust field name keys in the script

Best Practices

  1. Hash email and phone before sending to GA4 Enhanced Conversions
  2. Monitor forminator_form_failed as a GA4 custom event to spot form issues
  3. Use formId in all GA4 parameters to enable per-form reporting

Related Listeners

Frequently Asked Questions

Q: How do I track Forminator form submissions in Google Tag Manager? A: Add a Custom HTML tag in GTM with a document.addEventListener('forminator:form:submit:success', ...) listener. This fires when Forminator confirms a successful submission. The listener pushes a forminator_form_success event to the dataLayer with the form ID and user data. Set the tag to fire on DOM Ready, then create a Custom Event trigger for forminator_form_success to connect it to your GA4 or Google Ads tags.

Q: What is the forminator:form:submit:success event? A: forminator:form:submit:success is a native JavaScript event that the Forminator WordPress plugin dispatches on the document when a form is submitted successfully. The event's detail object contains formId (the numeric form ID) and formData (an array of all submitted field name/value pairs). There is also a companion event - forminator:form:submit:fail - that fires when submission fails, useful for tracking form errors.

Q: How do I send Forminator form data to GA4 for Enhanced Conversions? A: The listener extracts first name, last name, email, and phone from the formData array and pushes them into the dataLayer under forminator_user_data. In GTM, create Data Layer Variables for forminator_user_data.form_email, forminator_user_data.form_firstname, and forminator_user_data.form_phone. Then configure a User-Provided Data variable in GTM using these values, and attach it to your GA4 event tag. GA4 Enhanced Conversions will hash and send this first-party data automatically.

Free compliance and tracking tools

Check your cookie consent setup or audit your GA4 implementation - free, no login required.