Guide 111 · Container · GA4 + Tag Manager
Build a form submission trigger: fire a tag when a form is sent
A form submission is a conversion on most sites: a newsletter signup, a contact request, a checkout. Tag Manager has a trigger type for it, and it filters the same way a click trigger does — on the form that was submitted. Google's trigger page lists the Form Submission trigger, and the built-in variables page lists the Form variables the filter can use: Form Classes, Form ID, and the element values the submission carries. The worked example measures the newsletter form, whose ID is newsletter-form, out of two forms on the page.
After step 4, Preview mode shows the tag under Tags Fired on the form submission event for the newsletter form, and under Tags Not Fired when the contact form is submitted.
Download the container fragment: the form submission trigger fragment (JSON) (export format version 2, 1234 bytes, MD5 4f6eab6e9849e41add1466e7ae48ec43). It holds the form submission trigger filtered on Form ID newsletter-form, and a GA4 event tag that fires on it. The file is a hand-built import template, validated structurally — it was not exported from a live container.
What you need
- The Form built-in variables enabled. The filter compares Form ID, so Form ID must be enabled first — that is the built-in variables guide.
- The form's ID. The worked example uses
newsletter-form. The ID is in the form's HTML, or in the Form ID variable in Preview mode. - Edit access to the container. Creating a trigger is a container edit.
The trace
- Go to Triggers and click New. Triggers live in their own list in the left navigation. Click New and name the trigger
Form - newsletter signup. - Click Trigger Configuration and choose Form Submission. The trigger listens for the form submission event. Two options sit below the type: Wait for Tags, which holds the submission briefly so tags can fire first, and Check Validation, which only fires the trigger when the browser's own form validation passes.
- Set the trigger to fire on Some Forms. Choose Some Forms and add one condition: Form ID equals
newsletter-form. The page has 2 forms in the worked example — the newsletter form and the contact form — and the condition matches 1 of the 2, so the tag fires on 1 submission in 2. - Attach the trigger to the tag and save both. Open the GA4 event tag, click Triggering, pick the new trigger, and save. Submit the newsletter form in Preview mode and the tag fires; submit the contact form and it stays under Tags Not Fired.
Dead ends
DEAD END — A FORM THAT SUBMITS WITH JAVASCRIPT, NOT A SUBMIT EVENT. Some forms send their data with JavaScript and never fire a browser submit event. The Form Submission trigger never sees them, and the tag never fires. The fix is a custom event pushed from the form's own JavaScript — that is the custom event guide.
DEAD END — CHECK VALIDATION LEFT OFF ON A FORM WITH REQUIRED FIELDS. Without Check Validation, the trigger fires when the submit button is pressed even if a required field is empty and the browser blocks the submission. The tag then records a signup that never happened.
DEAD END — WAIT FOR TAGS SET TOO LONG. Wait for Tags holds the form submission while tags fire, up to the limit you set. A long limit makes the form feel stuck; a short one fires the tag after the page has already moved on. Keep the wait short and test the form in Preview mode.
End state
One form submission trigger, Form - newsletter signup, firing only on the newsletter form, attached to one GA4 event tag. The contact form gets its own trigger with its own Form ID when it needs measuring.
Sources
- Tag Manager Help — Trigger types — Form Submission trigger type
- Tag Manager Help — Built-in variables for web containers — Form Classes and Form ID built-in variables, set by Form triggers
Checked 11 November 2026. The click paths above are the ones in Google's help pages, opened 11 November 2026. No step in this guide was run inside a live Analytics property or a live Tag Manager container, because both need a Google sign-in and this site does not sign in as anyone. The container file was validated structurally instead: export format version 2, every tag's firing trigger resolves, every variable the tags reference exists in the file, and the tag types are the documented ones. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map. The container fragment for this guide is 1234 bytes (1.21 KB, 0.60% of the reported 200 KB container size limit), MD5 4f6eab6e9849e41add1466e7ae48ec43, and passed 13 structural checks.