The owner can't see which traffic source actually books calls.
Direct fix
Use one strict naming convention for every link tag and feed those tags into a Google Sheet through GHL. Build a weekly pivot showing leads, bookings, and closes by source and campaign.
Bulletproof implementation
- Build a UTM convention sheet and freeze it: utm_source, utm_medium, utm_campaign, utm_content, utm_term. Every team member uses the same vocabulary.
- Use Google's Campaign URL Builder or a sheet template; never manually type UTMs.
- Tag every paid ad, email, social post, and affiliate link. In GHL workflow, capture utm fields into hidden contact fields on opt-in.
- Connect GHL to a Google Sheet via webhook; build a pivot showing leads/bookings/closes by utm_source × utm_campaign weekly.
- In Meta Ads Manager set up a dynamic UTM template at the ad-set level so you never miss a link.
- Cross-check with GA4 traffic acquisition report monthly.
Time to impact: 3 days to set conventions; 2 weeks of clean data before you trust the dashboard.