Skip to main content

WS Form GTM Event Listener

Track WS Form submissions, errors, and button clicks in Google Tag Manager. Capture form_id, instance_id, and form name. Fire GA4 events on wsform_submit_success.

ws-formwordpressformsgtmga4lead-generation

Key variable

form_id

WS Form

Overview

WS Form is a powerful WordPress form builder with conditional logic and multi-step support. This listener tracks three events: submit button clicked (pre-success, for error detection), successful submission, and submission error.

Events fired:

  • wsform_submit_clicked, submit button pressed
  • wsform_submit_success, successful submission
  • wsform_submission_error, submission failed

Variables: form_id, instance_id, form_object.label

Common Use Cases

  • Track confirmed form submissions in GA4
  • Monitor form submission errors for UX optimization
  • Segment conversions by form name and instance
  • Fire Google Ads conversions on form success

Installation

html
<!-- GTM Custom HTML Tag: WS Form Listener -->
<script>
jQuery(document).on('wsf-submit-before', function(e, form_object) {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    'event': 'wsform_submit_clicked',
    'form_id': form_object.id,
    'instance_id': form_object.instance_id,
    'form_object': form_object
  });
});

jQuery(document).on('wsf-submit-success', function(e, form_object) {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    'event': 'wsform_submit_success',
    'form_id': form_object.id,
    'instance_id': form_object.instance_id,
    'form_object': form_object
  });
});

jQuery(document).on('wsf-submit-error', function(e, form_object) {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    'event': 'wsform_submission_error',
    'form_id': form_object.id,
    'instance_id': form_object.instance_id
  });
});
</script>

Fire on: DOM Ready. Requires jQuery.

Data Layer Output

json
{
  "event": "wsform_submit_success",
  "form_id": "1",
  "instance_id": "1",
  "form_object": { "id": "1", "label": "Contact Form", "instance_id": "1" }
}

Triggers to Create

TriggerEvent Name
CE – WS Form Successwsform_submit_success
CE – WS Form Errorwsform_submission_error

Variables to Capture

Variable NameDL KeyExample
DLV – WS Form IDform_id"1"
DLV – WS Form Labelform_object.label"Contact Form"

GA4 Mapping

GA4 EventParameterValue
generate_leadform_idDLV – WS Form ID
generate_leadform_nameDLV – WS Form Label

Related Listeners