Conversion & Landing Pages 10 min read

How to track website enquiries in GA4: forms, calls and chat clicks

Record every enquiry route as a GA4 key event, then prove the numbers against your real inbox.

On this page 11 sections

Most business websites can say how many people visited last month. Far fewer can say how many visits became enquiries, or which campaign, search or page produced them.

GA4 conversion tracking closes that gap, but only if it counts the right moments (a form that actually sent, not a button that was pressed) and someone checks the figures against the enquiries that really arrived.

The short answer

To track website enquiries in GA4:

  1. Decide what counts: successful form submissions, phone, email and messaging-app clicks, chats started and completed bookings.
  2. Fire one event for each through Google Tag Manager, only when the action succeeds.
  3. Mark them as key events, GA4’s name for conversions since 2024.
  4. Tag campaign links with UTM parameters so every enquiry has a source.
  5. Test in Tag Assistant and DebugView, including a submission that should fail.
  6. Reconcile monthly against your inbox or CRM.

GA4 terms in plain English

Events. Everything GA4 records is an event, such as page_view or a click, with parameters that add detail, such as the page address or form name.

Key events. Events you have told GA4 matter to your business. GA4 used to call these conversions; in March 2024 Google renamed them and kept “conversion” for actions measured in Google Ads. Marking an event as key changes how it’s reported, not how it’s collected.

Google Ads conversions. What the ads platform counts and bids towards, imported from GA4 key events or recorded by the Google Ads tag. The two tools credit channels and dates differently, so a small, stable gap is normal.

What should count as an enquiry

A key event should mark the start of a sales conversation. On a lead-generation site, that usually means:

  • A form reaching its success state, not a click on Send, which also happens when validation fails.
  • Phone clicks on a tel: link. A tap is an intention to call, not a connected call.
  • Email clicks on a mailto: link, a softer signal: without an email app set up, the click may do nothing.
  • Messaging and chat: clicks that open WhatsApp, LINE, Messenger or whichever apps your customers use, and first messages in an on-site chat widget, not the window opening.
  • Completed bookings: the confirmation step, not the calendar opening.

Starting a form, viewing pricing or downloading a brochure are signals, not enquiries: collect them as ordinary events. If everything is a key event, the rate means nothing, and soft actions used as primary conversions in Google Ads teach bidding to chase brochure downloads. Website KPIs: what to measure covers which belong on your monthly report.

How to set up GA4 conversion tracking with Google Tag Manager

These steps assume GA4 runs through Google Tag Manager (GTM), which keeps every tracking rule in one place, with a preview mode and version history.

Clean up the basics first

  • Load GA4 once. WordPress sites sometimes load it twice, from a plugin and from GTM, doubling every count.
  • Filter out your own visits. Define internal traffic by IP address in the web data stream’s tag settings, then switch the Internal Traffic data filter from Testing to Active.

Check automatic form events before relying on them

Enhanced measurement records form_start and form_submit automatically, but test form_submit before marking it as a key event. It fires when the browser submits a form, not when your form confirms success, so it can count rejected submissions, miss embedded or non-standard forms, and count a newsletter sign-up as an enquiry.

Submit each form once properly and once with a required field blank, and compare DebugView with what really happened. If they differ, keep form_start as a signal of interest and build your own success event under a different name.

Fire a custom event when the form succeeds

Best: a data layer push on success. Add a line of code that runs only after the server accepts the submission, such as dataLayer.push({ event: 'generate_lead', form_name: 'quote' }). Many WordPress form plugins already signal success in the browser, such as Contact Form 7’s wpcf7mailsent event, which a short listener can turn into that push. In GTM, a Custom Event trigger for generate_lead fires a GA4 Event tag that passes form_name from a Data Layer Variable.

Simple: a thank-you page. Redirect after success and fire the event when the page loads. It also counts refreshes and anyone arriving another way, so keep the page out of search results and menus.

Fallback: watch for the success message. GTM’s Element Visibility trigger, with “Observe DOM changes” on, fires when the confirmation appears. Retest whenever its design changes.

generate_lead is a Google-recommended event name that accepts value and currency parameters: the estimated worth of an enquiry that calculating website ROI relies on. Use it for every enquiry form, and register form_name as a custom dimension to tell them apart in reports.

Track phone, email, messaging and chat

Enable GTM’s built-in Click URL variable, then add a “Just Links” click trigger for each channel:

Channel Trigger condition Event name
Phone Click URL starts with tel: phone_click
Email Click URL starts with mailto: email_click
Messaging apps Click URL contains the app’s link domain, such as wa.me messaging_click, with a method parameter

GA4 records the page with every event, so you’ll see where each tap happened. Only real links can be tracked, so make every phone number a tel: link in international format, as call to action best practices recommends.

For a chat widget, check whether it offers a browser event for a sent message; if it does, push chat_start from it. For bookings, if your tool can redirect to a confirmation page on your own site, track that page like a thank-you page.

Mark them as key events

In GA4 Admin, open Events under Data display (the menu at the time of writing, June 2026). Mark each enquiry event as a key event, or add it by name in the Key events tab before the first one arrives. Google recommends counting once per event, but “once per session” suits phone and messaging clicks: three taps on your number are still one potential caller.

Keep personal data out

Google’s policies forbid sending Analytics anything that identifies a person, such as names, email addresses or phone numbers. The usual leaks: form values copied into event parameters, and thank-you page addresses with an email in the query string.

Tag your campaigns with UTM parameters

GA4 recognises search engines and referring sites itself, but can’t reliably separate a newsletter click from a direct visit, or one campaign from another, without UTM parameters on the link:

Parameter What it records Example value
utm_source Who sent the visit newsletter
utm_medium The type of channel email
utm_campaign The campaign spring-open-house
utm_content Which link or creative header-button
  • Use lowercase. UTM values are case-sensitive, so Email and email show up as separate rows in your reports.
  • Use conventional mediums such as email, cpc and social. GA4’s default channel groups read them, and invented ones can land in Unassigned.
  • Never tag internal links. It muddles where the visitor really came from.
  • Let Google Ads auto-tag its clicks, and keep a shared naming sheet for everything else, QR codes on print included.

Test before you trust it

  1. Preview in Tag Assistant. In GTM, click Preview, submit each form and tap each link. Each tag should fire once, with the right parameters.
  2. Watch DebugView in GA4 Admin; GTM’s preview switches on debug mode for you. Names and parameters should match your tracking plan exactly.
  3. Try to break it. Nothing should fire for a rejected form or a refreshed thank-you page.
  4. Test like a customer: a real phone on mobile data, in every language version, since each may use its own forms.
  5. Publish a named GTM version so you can roll back if something breaks.

This is general guidance, not legal advice: rules depend on where your visitors are and they change, so check with a qualified adviser.

In many places, including the European Union, analytics cookies generally need consent before they are set. Consent Mode passes the visitor’s choice from your cookie banner to Google’s tags. Its current version, often called Consent Mode v2, uses four signals: analytics_storage, ad_storage, ad_user_data and ad_personalization. If you advertise to visitors in the European Economic Area, Google expects these consent signals before it uses their data for ad measurement, personalisation and remarketing.

Setting Basic Consent Mode Advanced Consent Mode
Before a choice Google tags don’t load Tags load with storage denied
When a visitor declines Nothing reaches GA4 Cookieless pings, no identifiers stored
Declined visits in reports Missing May be modelled, if the property qualifies

Which to choose is a legal and business decision. Either way, decline everything and check in Tag Assistant that consent shows as denied, then accept and check tracking resumes. Expect GA4 to show fewer enquiries than you receive.

Reconcile GA4 with your real inbox or CRM

Unchecked tracking drifts: a plugin update changes a form, a redesign moves the phone number, and the chart quietly flattens. Once a month, compare three numbers for the same dates: GA4 key events, form entries stored on the website, and enquiries your team logged in the inbox or CRM.

Difference Likely cause
GA4 somewhat lower than stored entries Declined consent and blockers; normal if the gap is stable
GA4 suddenly much lower A broken tag, renamed form or banner change
GA4 higher than stored entries Double firing, thank-you page refreshes or spam
Stored entries higher than the inbox Email delivery failing: urgent
Phone clicks far above logged calls Taps aren’t calls; consider a call-tracking service

Chase a stable ratio, not a perfect match, and investigate when it moves. If entries go missing, web form design covers making sure each one reaches a person.

Copying UTM values into hidden form fields takes this further: each enquiry reaches your CRM with its campaign attached, so you see which channels produce customers, not just enquiries, the real goal of website lead generation.

A tracking plan template

Write this before anyone opens GTM, and keep it with the site’s documentation:

Enquiry route Event Key event? Check against
Quote form generate_lead (form_name: quote) Yes Stored entries, CRM
Contact form generate_lead (form_name: contact) Yes Stored entries, inbox
Phone link phone_click Yes, once per session Call log
Email link email_click Yes Inbox
Messaging apps messaging_click (method) Yes, once per session Messaging inboxes
On-site chat chat_start Yes Chat tool’s history
Online booking booking_complete Yes Booking system

Add an owner and a date last tested to each row, and it doubles as your monthly checklist.

Frequently asked questions

Do I need Google Tag Manager to track conversions in GA4?

No. GA4 can create an event from an existing one, such as a page view of your thank-you page, and a developer can add event code directly. GTM earns its place once you track several enquiry routes.

Can GA4 track phone calls?

It tracks taps on your number, not the calls. GA4 can’t tell whether a call connected, how long it lasted, or whether someone dialled by hand. A call-tracking service, which shows different numbers to visitors from different sources, fills that gap.

How long do key events take to appear?

Seconds in DebugView and minutes in Realtime. Standard reports can take 24 to 48 hours, Google’s stated processing time. Marking an event as key applies from then on; earlier events aren’t counted retrospectively.

What to do next

Send yourself an enquiry through each form and tap your number, then check DebugView and your inbox. If either stays silent, fix that first; every channel and campaign report depends on it. Once the numbers are trustworthy, conversion rate optimisation is how you raise them.

Our landing pages are built around one action. When we redesigned a property developer’s website, enquiries arrived only by phone, untracked; now every project page’s forms and LINE links are tracked in GA4. For an outside view first, a free website audit includes how easily visitors can get in touch.

Written by the PORVIX team

The people who design, build and maintain websites for growing businesses. We write about the questions that come up on real projects, in plain language, and update articles when the advice changes.

Published

How we work

Is your current site costing you enquiries?

A free, plain-language audit, by email within 2 business days.

Get a free audit
Get a free audit

Keep reading

More plain-language guides.

More on conversion and landing pages first, then other guides worth reading next.

All insights

Start here

Let’s build a website that brings in business.

Tell us about your project. You’ll hear back from a real person within one business day, with honest advice either way.

  • Free consultation
  • Fixed written quote
  • Your details stay private