B2B conversion tracking rarely fails as one obvious technical error.
More often, it fails as a disagreement between systems. Each platform appears to work, but the numbers do not line up:
- GA4 shows a conversion, but the CRM has no lead
- the CRM has a lead, but GA4 shows no conversion
- form submissions go missing between the website and the CRM
- the same conversion is counted twice
- paid traffic starts appearing as Direct
- UTM parameters disappear before the lead reaches the CRM
- different dashboards report different numbers for the same period
Reviewing one platform in isolation rarely explains these symptoms. Effective troubleshooting follows the complete measurement journey — from campaign click to CRM record — and finds the point where the chain breaks.
Follow the complete measurement journey
Every B2B conversion travels through the same basic path:
A break at any point in this chain creates a different symptom downstream. A lost UTM at the landing page looks like a CRM source problem. A GTM trigger that fires too early looks like a CRM integration failure. The symptom tells you where to look — but only if you know the full path.
Start by defining the conversion
Before troubleshooting anything, confirm what "conversion" actually means in each system being compared. In B2B, the word can refer to several different actions:
- a form submission
- a successful form submission
- a contact created in the CRM
- a lead created
- a booked meeting
- a lifecycle-stage change
- an opportunity created
Two systems can both be working correctly while reporting different numbers, simply because they measure different actions. GA4 counting successful form submissions will not match a CRM report counting new leads if repeat submissions update existing contacts instead of creating new ones. Agree on the definition first — it eliminates a large share of apparent discrepancies before any technical investigation begins.
Symptom 1 — The CRM has leads but GA4 has fewer conversions
Leads exist in the CRM, but GA4 does not show matching conversions. Possible causes include:
- the GA4 event is not firing at all
- GTM trigger conditions are failing for some submissions
- consent restrictions are blocking analytics for part of your traffic
- ad blockers or browser privacy features are preventing the event
- CRM records are being created manually or through integrations, bypassing the website entirely
- repeat submissions are updating an existing contact rather than creating a new lead
- leads are being created offline — imports, sales entry, list uploads
A practical sequence: submit a real test form, watch for the GA4 event in real time, then check whether the CRM record appeared. If the event fires but no record appears, the problem is downstream of analytics. If no event fires, the problem is in GTM, consent or the browser. If both appear, the gap is likely in how the two systems define and count the conversion.
Symptom 2 — GA4 has conversions but the CRM has no corresponding lead
GA4 reports conversions that never become CRM records. Common causes:
- the event fires before the submission actually succeeds
- tracking is attached to a button click rather than a successful submission
- failed forms — validation errors, server errors — still trigger the event
- the form-to-CRM integration is failing silently
- duplicate or test events are inflating GA4 numbers
- form fields are mapped incorrectly, so the CRM rejects the record
- the CRM itself fails to process the submission
The most important check here is confirming the actual successful submission state. A click on "Submit" is not a conversion. The reliable signal is whatever the form does only when a submission genuinely succeeds — a success message, a thank-you state, a confirmation event from the form itself. Tracking anything earlier in the sequence will count attempts, not conversions.
Symptom 3 — The same conversion is counted twice
Duplicate conversions usually mean the event is being sent more than once. Typical causes:
- duplicate GTM triggers firing on the same action
- multiple tracking implementations running in parallel
- the event firing on both the click and the success state
- confirmation pages being reloaded, retriggering the event
- single-page application route behaviour refiring page-based triggers
- embedded forms sending their own events alongside your GTM setup
- a hardcoded GA4 snippet firing alongside the GTM implementation
To isolate the source, use GTM's preview mode and GA4's real-time or DebugView together. Submit one test conversion and count how many events arrive, then inspect which tag sent each one. Once you know which implementation sends which event, remove or re-scope the duplicate — do not simply adjust reporting to compensate.
Symptom 4 — Form submissions are not tracked consistently
Some forms track reliably while others do not. This is common when a site uses several form types at once:
- AJAX forms that submit without a page reload
- embedded forms loaded in iframes from a third party
- third-party form tools with their own event systems
- forms that redirect on success versus forms that show an inline message
- validation failures that look like submissions to click-based tracking
- different forms built at different times using different tracking methods
- CRM-native forms alongside custom website forms
Each form type needs a tracking method matched to how it actually behaves. An iframe form cannot be tracked the same way as a native form, and a redirect-based form needs different handling from an AJAX one. The form-to-CRM tracking QA checklist provides a structured way to test each form across the full journey.
Symptom 5 — UTMs disappear before the lead reaches the CRM
Campaign data is visible in GA4, but CRM records arrive without source information. Possible causes:
- redirects stripping query parameters before the landing page loads
- cross-domain journeys breaking the session
- session changes between the first visit and the conversion
- form fields not capturing campaign parameters at all
- hidden fields present but not populated correctly
- CRM source-property rules overwriting or ignoring the captured values
- first-touch and latest-touch definitions differing between systems
- users returning later — directly or via another channel — before submitting
Seeing campaign data in GA4 does not mean the same values will be stored in CRM fields. GA4 captures the session; the CRM only stores what the form or integration explicitly passes to it. UTM capture into the CRM is a separate mechanism that has to be built, maintained and tested on its own.
Symptom 6 — Paid traffic becomes Direct or loses attribution
Visits that should be attributed to paid campaigns show up as Direct, or lose their original source. Common causes:
- referral information lost through redirects
- cross-domain journeys splitting the session
- missing or malformed UTM parameters on campaign URLs
- auto-tagging or campaign configuration issues in the ad platform
- CRM attribution logic assigning a different source than analytics
- returning visitors converting on a later, untagged visit
- source fields being overwritten by later touches or integrations
Attribution platforms will not always agree with each other, and some difference is expected. The goal of troubleshooting is not perfect agreement — it is confirming that campaign parameters survive the journey from ad click to CRM record, and that each system applies a documented, deliberate rule for assigning source.
Symptom 7 — GA4 and CRM conversion numbers do not match
This is the most common version of the problem, and usually a combination of the issues above: different conversion definitions, events that fire at the wrong moment, lost campaign parameters, duplicates, consent gaps and differences in how each system identifies people and sessions.
Because this topic deserves a fuller treatment, there is a dedicated guide on diagnosing differences between GA4 and HubSpot conversion numbers, covering definitions, identity, attribution, consent, duplicates and reporting periods in detail.
A practical troubleshooting process
Whatever the symptom, the same end-to-end process applies. Trace one real journey before drawing conclusions from aggregate dashboards:
- Define the exact conversion being compared. Name the specific action in each system.
- Choose one real test journey. A specific campaign link, landing page and form.
- Confirm the successful website action. Verify the submission genuinely succeeded, not just that a button was clicked.
- Inspect the GTM trigger. Use preview mode to confirm it fired, and only on the success state.
- Confirm the GA4 event. Check real-time reporting or DebugView for the event and its parameters.
- Verify the form submission. Confirm the form's own success record or notification.
- Confirm CRM contact or lead creation. Check whether a record was created or an existing one updated.
- Check UTM and source fields. Verify the values stored on the CRM record match the test campaign.
- Compare timestamps and identifiers. Line up the event time, submission time and CRM creation time.
- Repeat the test with different scenarios. Different forms, channels, devices and consent states.
- Document where the measurement chain breaks. Identify the exact step where data stops matching.
- Fix and retest before changing reporting logic. Repair the tracking first; do not adjust reports to hide the gap.
Aggregate dashboards show that something is wrong. Only an end-to-end test shows where.
What to document while troubleshooting
Record each test in a simple log. This turns a one-off fix into evidence the team can reuse, and makes patterns visible across multiple tests:
| Field | What to record |
|---|---|
| Test date | When the test was run |
| Test URL | The exact landing page and form URL used |
| Campaign / UTM values | The full set of parameters on the test link |
| Form used | Which form was submitted |
| GTM trigger | The trigger that fired, confirmed in preview mode |
| GA4 event name | The event recorded, with its parameters |
| GA4 event timestamp | When GA4 received the event |
| CRM record | The contact or lead created or updated |
| CRM creation/update timestamp | When the CRM processed the record |
| Source fields | The source values stored on the CRM record |
| Lifecycle stage | The lifecycle stage after submission |
| Result | Whether the journey matched expectations |
| Issue found | The exact point where the chain broke |
| Recommended fix | The change required, and who owns it |
When the problem is not just a tracking bug
Individual tracking issues are fixable. But when measurement problems keep reappearing — new forms launch untracked, UTMs keep disappearing, dashboards keep disagreeing — the cause is usually structural rather than a single broken tag. Repeated issues often indicate wider problems with:
- tracking architecture — how analytics, tag management and CRM fit together
- tag governance — who can add, change or remove tracking
- form implementation — inconsistent methods across forms
- CRM field governance — unclear rules for source and lifecycle fields
- attribution definitions — no agreed rule for assigning source
- lifecycle definitions — stages that mean different things to different teams
- ownership of measurement — nobody accountable for the full journey
- documentation — setups nobody can explain
- QA processes — no routine testing before changes go live
When that is the pattern, fixing tags one at a time will not hold. A structured conversion tracking and marketing analytics review examines the full measurement architecture — GA4, GTM, forms, CRM and reporting together — so the fixes are built on a system designed to stay accurate.