Skip to main content

Forminator Form GTM Event Listener

Track WPMU Dev Forminator form submissions and errors in Google Tag Manager. Capture formId, user data (email, name, phone), and fire GA4 events on forminator_form_success.

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