Guide Measurement and improvement
How to track where your website enquiries come from
By Studio Swing
Do two things. Have your site record each successful enquiry in Google Analytics (GA4) as a key event, so you get a count and a source. And keep a simple enquiry register, one row per enquiry, so you know which ones were real and where they truly came from. The first tells you how many and through which channel. The second tells you what they were worth. Neither alone is enough, and neither needs a developer to understand.
On this page

A roofing company with five ways to get in touch
- Step 1: List routes
- Step 2: Count forms
- Step 3: Phone and email
- Step 4: Tag links
- Step 5: Register
Say you run a roofing company. Customers can fill in a form, call the number in the header, email you, tap a button to chat, or ask a neighbor who recommended you and then search your name. The numbers below are invented to illustrate the problem.
At the end of a month, GA4 shows 12 form submissions. Your phone log shows 9 calls from new customers. Your inbox holds 4 direct emails. Two more people, who got in touch in person, said "my neighbor told me about you". That is 27 contacts, and GA4 counted 12 of them.
Of the 12 in GA4, three were spam, and two were people asking for a job. So 7 were real form enquiries. If you judged the website by the Analytics report alone, you would say it produced 12 leads, 7 of them real. If you added up everything, 22 genuine enquiries arrived, and you cannot tell how many of the calls and emails the website prompted.
Neither number is wrong. They answer different questions. The trick is to know which question each one answers.
Step 1: List every way someone can contact you
Write down every route. For most small businesses it is some of these:
- A form on the site (contact, quote request, booking).
- A phone number visitors tap, or call by reading it off the screen.
- An email address.
- A chat or messaging button.
- A downloaded brochure or file that signals interest.
- No click at all: someone sees you elsewhere and searches your name.
For each route, ask what the site can record. A form can record a successful send. A tap on a phone number or email link can be recorded as a click, but not whether the call connected. A person who reads the number and dials from a landline leaves no trace at all. A chat message happens inside the chat tool, which has its own records.
Step 2: Count the form that worked
The most reliable lead signal is a form that sent successfully. Google's recommended event for this is generate_lead, defined as triggered when a user "submits a form online or submits information offline". Google's tutorial for setting it up creates the event from a visit to the confirmation page, the page a visitor sees after a successful send, and marks it as a key event.
In plain terms:
- 1. Make sure the form system confirms successful acceptance, with a distinct success state or a protected confirmation page. A separate page is optional; it is not itself proof of acceptance or inbox delivery.
- 2. Ask whoever manages your Analytics (or do it yourself, if you have Editor or Administrator access) to create a generate_lead event only after a successful submission. If you use a confirmation-page view as the trigger, protect it against direct visits, refreshes and repeated redirects so one accepted submission creates one event.
- 3. Mark the event as a key event. Google defines a key event as "an event that measures an action that's particularly important to the success of your business."
- 4. Wait, then check. Google warns that a new key event can take "a few minutes up to a few hours" to apply. Submit a test enquiry and look in the Realtime report's key events section.
Count confirmed acceptance once, not the button click or every confirmation-page view. Verify inbox delivery separately. If the form breaks, button clicks can continue while no submissions are accepted. Our guide on what to measure on a business website explains why this matters.
GA4's enhanced measurement can also record form_start and form_submit automatically, and file downloads such as PDFs when a visitor clicks them. Google notes that parameters from these events appear in your reports only if you create custom dimensions for them. They are useful signals of intent. For counting leads, verify successful acceptance and prevent duplicate events. Test a successful send, failed validation, refresh, direct confirmation-page visit and repeated submission without putting personal details into Analytics.
Step 3: Record taps on your phone number and email address
A visitor who taps your phone number is trying to contact you. GA4's automatic enhanced measurement list covers page views, scrolls, outbound clicks, site search, video, file downloads and forms. It does not list taps on phone or email links. So these need one extra step.
Google Tag Manager has a link click trigger that fires on clicks on links, and it can be limited to links whose address contains certain text. Phone and email links have a recognizable form, so a developer or analyst can record them as separate events. Record them under their own event names and never add them to your enquiry count: a tap is intent, and an enquiry is a sent message. Count them separately.
Step 4: Tag the links you control
GA4 sorts visits into channels by where they came from. Google's definitions are specific: "Direct" means the source is "(direct)" and the medium is "(not set)" or "(none)", and "Unassigned" is used "when there are no other channel rules that match the event data". When a visitor clicks a link in an email you send, in a profile bio or on a printed card's QR code, GA4 may not know where they came from, and the visit can land in Direct.
You can fix that for links you control by adding tags to the web address. Google's Campaign URL Builder uses utm_source, utm_medium and utm_campaign, and says to use all three together. Two rules matter in practice:
- Values are case sensitive. Google states that utm_source=google is different from utm_source=Google. Pick a style, such as lowercase, and keep to it.
- Keep a small list. A page with a handful of agreed names, such as email newsletter or Facebook profile, produces reports you can read. A free-for-all produces twenty spellings of the same source.
You cannot tag a link someone else shares, a Google search, or a recommendation. That is why the register matters.
Step 5: Keep an enquiry register
The register is where the numbers that matter most live. It can be a spreadsheet with a row per enquiry. Columns that earn their place:
| Column | Why |
|---|---|
| Date | To match the month's analytics and your calendar |
| Route | Form, phone, email, chat, in person |
| Source as they said it | The answer to "How did you hear about us?" |
| Measured source, only if separately established | Optional: record only a source captured by a separately tested, privacy-safe method; otherwise leave blank |
| What they asked for | Which service or product |
| Fit | Right area, right service, realistic budget or timing; or spam, or not a fit |
| Quoted | Yes or no |
| Won | Yes or no, and when |
Add "How did you hear about us?" to your form and your first reply on the phone. People forget and simplify, so it is imperfect. But it catches what tracking cannot: the customer who heard about you from a neighbor, searched your name, and arrived as Direct or Organic Search. Keep self-reported source separate from measured attribution. A standard GA4 report does not identify the channel of each named enquiry. Compare channel totals in aggregate unless a separate privacy-safe method has been implemented and tested. Never match people by sending emails, phone numbers or enquiry text to Analytics.
Each row takes a minute. After three months, you can answer questions no report can: which source brings the enquiries that become customers, and which brings the ones that go nowhere.
GA4 can also record later stages. Google recommends events such as qualify_lead, working_lead and close_convert_lead, which it describes for business-to-business sales and for conversions that happen offline. They are optional, and most small businesses will find the register enough.
Reconcile once a month
At month end, compare three numbers:
- Key events (form enquiries) recorded in GA4.
- Rows in the register that came through the form.
- The count of form submissions in your inbox or form tool.
They need not match. Compare the same period and definition, account for consent and blockers, and check form acceptance separately from inbox delivery. Gaps have usual causes:
- Spam. Even a correctly recorded accepted submission can be spam or unsuitable. A confirmation-page visit alone must not create a lead. The register shows spam as "not a fit".
- Visitors who decline analytics cookies. With basic consent mode, Google tags stay blocked when consent is refused. Advanced consent mode can send cookieless signals. Behavioral modeling requires an eligible property and compatible reporting settings; do not assume a small site qualifies. Check the setup and report before calling totals modeled estimates. Consent-related gaps are one possible reason GA4 records fewer enquiries than the form system.
- A broken tag or form. A count that drops to zero while the inbox still receives enquiries is a reason to check tracking, consent and report settings; it does not prove which part failed.
- Counting method. GA4 can count a key event every time it is triggered ("once per event", the method Google recommends for new key events). If someone submits twice, it counts twice. Google lets you change this to once per session, and changes apply only to future data.
If a number is off by a small amount, note it and move on. If it is off by a lot, check the tag first.
What to keep out
Google's policy is that no data should be passed to Analytics that Google "could use or recognize as personally identifiable information", and gives email addresses and personal mobile numbers as examples.
Page addresses and page titles are collected automatically and are a common place for it to leak, for instance when a confirmation page address contains the visitor's email.
Names, emails, phone numbers and the text of an enquiry belong in your inbox or register, never in analytics events, links or confirmation page addresses.
What this will not do
Tracking will not reveal every source. A caller who found you through a search and dialed from a landline appears in your register only if you ask. It will not make leads better, and it will not make a poor page convert. And small numbers move around: three enquiries one month and six the next may be chance. Judge by several months, and read the enquiries themselves.
A checklist you can use without us
- A written list of every route someone can contact you.
- A verified success state after the form system accepts a submission, with inbox delivery checked separately.
- A generate_lead event counted once per accepted submission, marked as a key event, and tested for failed validation, refresh, direct confirmation-page access and duplicate firing.
- Phone and email taps recorded as separate events, never added to enquiries.
- A short list of agreed tag names for links you send out, in one case.
- A register with one row per enquiry, including fit, quoted and won.
- "How did you hear about us?" on the form and the first reply.
- A monthly check of GA4 against the register and the inbox.
- No names, emails or phone numbers in analytics events, links or page addresses.
Where to go next
If you want this set up and checked for your site, our analytics and measurement service explains how we approach it. To make sense of the two Google tools together, read Google Analytics and Search Console, explained simply. For why these numbers matter more than traffic, read what to measure on a business website. When you want to talk about your own site, you can discuss your project.
Sources
1. Analytics Help, Recommended events (lead generation events)
2. Analytics Help, About key events
3. Analytics Help, Tutorial: Set up a key event
4. Analytics Help, Change the counting method of key events
5. Analytics Help, Automatically collected and enhanced measurement events
6. Analytics Help, Default channel group
7. Analytics Help, Campaign URL Builder and UTM parameters
8. Analytics Help, Consent mode on websites and mobile apps
9. Analytics Help, Best practices to avoid sending personally identifiable information
