{"title":"Form Submit","description":"Measures when a user successfully completes\/submits a form.","type":"object","_alerts":[{"variant":"note","message":"**This event is generic by design in order to have aggregate data on all forms (regardless of their purpose).** It is common to use synthetic events (in addition to `form_submit`) that are for conversion purposes that measure a specific cohort of total `form_submit` events. \n\n For example, you may have a `demo_request` event that measures ONLY forms used for demo requests. Using synthetic events is recommended to give you a more concrete view of how users are entering your funnel."},{"variant":"warning","message":"**This event should ONLY be sent if the form data passed validation, and before any redirect occurs.** We suggest using native form submission lifecycle hooks\/APIs supplied by the form provider to ensure this event fires at the correct time."},{"variant":"warning","message":"GA4 implements this event as part of its \"Enhanced Measurement\" feature. It is generally recommended to use Google Tag Manager to manage event flow and data collection. As such, we recommend disabling this event inside your Enhanced Measurement settings."}],"allOf":[{"properties":{"event":{"title":"Event Name","const":"form_submit"},"redirect_url":{"type":"string","title":"Redirect URL","description":"The URL the user will be redirected to after the form submission is complete. This should be an absolute URL to handle situations where a user may be redirected to a different hostname."},"confirmation_type":{"type":"string","enum":["message","redirect"],"title":"Confirmation Type","description":"The type of confirmation the user will receive after the form submission is complete. This can be a message, a redirect, etc."},"submission_id":{"type":["integer","string"],"title":"Submission ID","description":"A unique identifier for the form submission. This can be a native submission ID from a CMS or other system."}},"required":["event"]},{"title":"Form Properties","description":"These properties apply to all `form_*` events.","type":"object","definitions":{"form_id":{"type":["integer","string"],"title":"Form ID","description":"The unique identifier for the form. This can be as simple and as a HTML `id` attribute. Or it can be a native form ID from a CMS or other system.","example":"0d7fb0da-a3a6-49ad-9c29-d7fbcd56f3b1"},"form_group":{"type":"string","title":"Form Group","description":"The group or category of the form (e.g. Demo Request, or Webinar Registration). This can be used to group forms together for reporting purposes.","example":"Demo Request"},"form_name":{"type":"string","title":"Form Name","description":"A human readable name for the form. These should be dynamically set from the system that provides the form.","example":"Inbound Sales - Request a Demo"},"form_provider":{"type":"string","title":"Form Provider","description":"The name of the system\/platform that provides the form (e.g. HubSpot, Marketo etc...). This can be useful when more than one form provider is in use (e.g. HubSpot and Gravity Forms).","example":"HubSpot"}},"required":["form_id"]}]}