Short answer: GA4 can count the action your tracking was configured to measure without proving that a real person contacted you. Check one reported lead against the saved form entry and the message in your inbox, then inspect what actually triggers the analytics event. A contact-page visit, a successful form submission and a qualified opportunity need separate counts.
What owners usually ask
The question starts with a mismatch: the report says leads arrived, but there is nobody to call back. Before changing the website or buying more traffic, establish what that number means.
We separate three questions. Did a message arrive? Was it a genuine request rather than spam or a test? What evidence explains how the person found the business? Analytics helps with parts of the third question, but the actual inquiry is the starting point.
A working contact form can receive nothing but spam. A genuine prospect can also email or call without completing a website form. Neither situation becomes clear from a single conversion total.
What’s usually happening
- The trigger measures a different action. A rule based on visiting the contact page records interest in that page. Calling the resulting event a lead does not make it a submitted inquiry.
- A recorded interaction needs a delivery check. Google’s enhanced measurement distinguishes starting a form from submitting it. Those events do not replace checking what the form stored and what reached the inbox.
- Successful submissions still need review. A vendor pitch or an owner test can travel through the same form as a potential customer. Technical success and business relevance are different judgments.
- The scopes differ. Website tracking and an inquiry review cover different things. Direct emails, calls and referral introductions belong in the business review even when no website event explains them.
If the problem is missing messages rather than misleading counts, start with our guide to WordPress contact forms not sending email. That is a related delivery problem with a different investigation.
How to check, in about ten minutes
- Choose one recent example. Note the report’s date range and timezone, the event name and the form or page involved. A total without those boundaries is hard to reconcile.
- Find the underlying record. Look in the form’s saved entries, if storage is configured, and the receiving mailbox. Check spam as well. An unavailable entry store means a coverage gap; it does not prove nobody submitted anything.
- Read the trigger. Ask whoever manages analytics to show exactly what produces the lead event. Does it require the form’s success result, or does it fire when someone visits a page or clicks a button?
- Classify the message. Separate genuine requests, tests, spam and vendor pitches. Two notification emails for one submission are one inquiry.
- Keep the source uncertainty. Record any available landing page, referral or campaign evidence alongside what the person says. If the original source is unknown, leave it unknown.
This is a first check. If the records disagree, the next step is a controlled test on your own site with someone responsible for both the website and measurement watching the result.
What happened on our own site
It happened to us. On Market Jack’s WordPress site, an older conversion rule was based on a page view of the contact page. That could not establish that a genuine inquiry had arrived.
We also had three current inquiry forms for different kinds of help. Knowing those forms existed was not enough. We needed to follow a submission through storage, the notification mailbox and analytics, and distinguish our tests from demand.
In the reviewed interval, 54 entries in the legacy form were spam or vendor pitches. The nine entries already present in the current forms were owner tests. We found no confirmed genuine website inquiry in that reviewed set. Those findings applied to the records we examined, not to every possible conversation the business had.
What fixed it
- We verified a backup before changing production. That gave us a recovery point for the website repair.
- We tied the new lead event to the current forms’ mail-success result. We mapped each form to its offer and guarded against counting a repeated success notification twice.
- We tested the complete path. Each of the three forms produced a saved entry, a delivered notification and a corresponding success event visible in GA4 DebugView.
- We labeled tests and kept source evidence with the inquiry. Available session source details accompany the saved entry and notification, rather than relying on an aggregate traffic chart to explain a person later.
- We established recurring review. The weekly check starts with actual messages and available call records. Analytics supports the website portion of that review.
What the evidence shows
The repair established that all three tested website paths could store an entry, deliver its notification and send the intended analytics event. It also gave us a way to keep labeled tests out of the non-test reporting view.
It did not establish that new customers had arrived or that the repair increased revenue. A successful delivery test proves the tested path at that time. Future genuine inquiries still need review, and missing historical source information cannot be reconstructed just by changing today’s tracking.
When to bring someone in
Bring someone in when the reported lead total disagrees with your actual messages, when the form’s success result cannot be traced through to delivery, or when several plugins appear to count the same action.
The useful first deliverable is a reconciled example and a clear explanation of the gaps. From there, you can decide whether the next work is a form repair, tracking correction or a broader change to how inquiries are handled.

