Skip to content
🚀 Find us on Product Hunt

Google Analytics 4 Contact Form 7 Submission Event Tracking for WordPress

Quick answer: Select Google Analytics 4 and the Contact Form 7 Submission event in the free container builder wizard, enter your tracking ID, then import the generated file into Google Tag Manager - the trigger is wired up automatically, no manual setup required.

Configure the Contact Form 7 Submission event so Google Analytics 4 fires correctly on your WordPress store, then generate an importable Google Tag Manager container - no manual tag, trigger, or variable setup required.

Generate my Google Analytics 4 Contact Form 7 Submission container →

How it works

  1. Open the container builder with Google Analytics 4 and the Contact Form 7 Submission event already selected.
  2. Enter your tracking ID/pixel credentials for this platform.
  3. Generate and download the GTM container JSON file.
  4. In Google Tag Manager: Admin > Import Container > choose the file > Merge into a new workspace, then verify in Preview mode before publishing.

Track Contact Form 7 Submission with other platforms

How this event is built in your container

Contact Form 7 Submission is detected automatically. Contact Form 7 dispatches a native wpcf7mailsent document CustomEvent - no jQuery required - the moment a submission's mail is confirmed sent, not merely submitted.

This container includes a small Custom HTML tag, firing on All Pages, that listens for that native event and pushes dataLayer.push({ event: 'cf7_form_submission', ... }) itself - unlike this plugin's other events, there's no code for you to add manually.

For this to work, though:

For reference, here is the exact script this container's bridge tag runs:

(function(){
  if (window.__gtmcbCf7Bridge) { return; }
  window.__gtmcbCf7Bridge = true;
  document.addEventListener('wpcf7mailsent', function (event) {
    var detail = event.detail || {};
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: 'cf7_form_submission',
      cf7_form_id: detail.contactFormId || '',
      cf7_form_unit_tag: detail.unitTag || ''
    });
  });
})();

The Google Analytics 4 tag itself is added automatically and wired to this trigger - you won't need to create or configure it by hand in GTM.

Troubleshooting

The event never fires even though the form appears to submit.
Check whether the form is reaching wpcf7mailsent or falling into wpcf7mailfailed instead - a mail delivery failure (misconfigured SMTP, a blocked wp_mail() call, etc.) blocks this event even when the form itself validated correctly.

cf7_form_id comes through blank.
Confirm the form is actually built with Contact Form 7 and not a similarly-named or CF7-styled third-party plugin - only genuine CF7 dispatches this specific event.

The event fires, but values show up blank or undefined.
Check that the pushed object's key names match exactly (case-sensitive) - a mismatched key like "Value" instead of "value" will show as undefined in GTM's variable preview.

Contact Form 7 Submission fires twice for the same action.
You likely also have a manually-added Google Analytics 4 snippet listening for the same action alongside this container's own bridge tag. Remove the manual one, or disable it, before publishing.

Frequently asked questions

What triggers the Contact Form 7 Submission event?

It's detected automatically - Contact Form 7 dispatches a native wpcf7mailsent document CustomEvent - no jQuery required - the moment a submission's mail is confirmed sent, not merely submitted.. This container includes a ready-made bridge tag for it, so there's nothing to configure manually.

Why should I track Contact Form 7 Submission with Google Analytics 4 specifically?

It shows engagement further up the funnel, which Google Analytics 4 can use to build audiences and understand what leads to a purchase, even before the sale happens.

Is this free to set up?

Yes - the free tier covers 1 tracking platform at a time. If you need this event across several platforms in one container, unlocking full access covers all of them together.

Will this conflict with Google Analytics 4 code I already added manually?

It can, if the same event fires twice from two separate sources. Remove any manually-added Google Analytics 4 tag for this event before importing the generated container, or use GTM's Preview mode to confirm it only fires once.

How long does setup take?

A few minutes - select Google Analytics 4 and the Contact Form 7 Submission event in the wizard, enter your tracking ID, download the container, and import it into GTM.

Do I need to add any code to my site for Contact Form 7 Submission?

No. Unlike most events in this wizard, this one ships its own small Custom HTML tag inside the container itself that detects the submission and pushes it to the dataLayer - there's no snippet to paste into your theme or a code snippets plugin.

Are there any conditions for this to actually work?

Contact Form 7's default AJAX submission - no configuration changes needed, this is how CF7 works out of the box.

← See all Google Analytics 4 events

Share with