Free plan · No credit card · Set up in 5 minutes

Lead source tracking for marketers and agencies

See exactly where every lead came from

SourceXray attaches the channel, campaign, keyword, first touch and last touch to every form submission, so you can see which ads, posts and pages actually produce enquiries.

Works with WordPress, Webflow, Shopify, HubSpot and any site via one line of code.

app.sourcexray.com/leads
Leads Harbour Plumbing
Leads128+18% vs previous 30 days
Paid Search4636% of all leads
AI Assistants9+5 on last month
Avg. days to convert3.42.6 visits per lead
Example leads in the SourceXray dashboard with their source details
Lead Channel Source / medium Campaign Keyword First touch Visits
Sarah M.Quote form · 2 min ago
Paid Search google / cpc Emergency Plumbing emergency plumber perth Organic Search 3
James T.Contact form · 18 min
AI Assistants chatgpt / referral (not set) (not set) AI Assistants 1
Priya K.Booking · 1 hr ago
Google Business Profile google / organic gbp (not set) Organic Search 2
Tom R.Quote form · 3 hrs ago
instagram / social (not set) (not set) Paid Social 4
Emma L.Callback · Yesterday
newsletter / email Spring Hot Water (not set) Paid Search 5
Daniel W.Quote form · Yesterday
Direct (direct) / (none) (not set) (not set) Paid Search 2
  • WordPress
  • Webflow
  • Shopify
  • HubSpot
  • Google Tag Manager
  • Gravity Forms
  • Elementor
  • Contact Form 7
  • WPForms
  • Fluent Forms
  • Formidable
  • Typeform
  • Tally
  • Calendly
  • Plain HTML forms

Google Analytics tells you sessions. Your CRM tells you leads. Nothing joins them.

Your reports know how many people visited. Your inbox knows who enquired. The link between the two, the ad, keyword or post behind each lead, gets lost along the way.

GA4 can’t show which lead came from which keyword

Analytics counts sessions and conversions in totals. It can’t tell you that Sarah’s quote request came from “emergency plumber perth” last Tuesday, or which campaign your best client clicked.

Hidden UTM fields quietly break

UTM tags disappear as soon as a visitor clicks through to a second page, and copy-pasted field scripts stop working after a plugin update. Nobody notices until the monthly report is wrong.

“Direct / none” everywhere

Returning visitors, bookmarks and in-app browsers all show up as Direct. The channel that actually found the customer gets no credit, because the first visit was never recorded.

Set up in five minutes. Every lead tells its own story.

No developer needed. SourceXray records the source on every visit and hands it to your forms the moment someone enquires.

  1. Step 1: Add one line of code

    Paste the script into your site’s head, or install it with Google Tag Manager or the WordPress plugin. One small file, loaded asynchronously.

  2. Step 2: Add hidden fields, or let it auto-capture

    Add hidden fields to your forms so source details reach your CRM and email notifications. Or let SourceXray capture submissions from your form builder automatically.

  3. Step 3: Every lead arrives with its full source story

    Channel, source, campaign, keyword, landing page, first and last touch, visits and days to convert. In your inbox, your CRM and your SourceXray dashboard.

Add to your site’s <head>
<script async
  src="https://cdn.sourcexray.com/sx.js"
  data-site="sx_your_site_key"></script>
Or install withGoogle Tag ManagerWordPress plugin
Hidden fields, filled on submit Sent to CRM
sx_channel
Paid Search
sx_source
google
sx_medium
cpc
sx_campaign
Emergency Plumbing
sx_keyword
emergency plumber perth
sx_landing_page
/emergency-plumber
sx_first_channel
Organic Search
sx_visits
3
sx_days_to_convert
2

Everything you need to trust your lead data

Built for marketers who need to prove what’s working, and for agencies who report on it every month.

Exact paid keywords

Keyword, campaign, ad group, ad, match type, network and device for every Google Ads lead, from a copy-paste tracking suffix we generate. The exact typed query for Microsoft Ads.

First and last touch

See the channel that first found each lead and the one that converted them, plus the number of visits, pages viewed and days to convert.

AI assistant traffic

Visits from ChatGPT, Perplexity, Gemini, Copilot and Claude get their own AI Assistants channel instead of hiding inside Referral.

Real success events only

SourceXray waits for your form builder’s real success event, so failed and invalid submissions never count as leads.

Hidden fields for any CRM

Source details are written into hidden form fields, so they reach your CRM, email notifications and spreadsheets with no extra integration.

Agency workspaces and client reports

A workspace for every client site, team members, and branded monthly reports that show exactly which channels produced leads.

Privacy-first by design

No pageview tracking, no fingerprinting, first-party storage on your own domain. Only leads are stored, with retention limits and consent mode support.

Webhooks, Zapier and CSV

Send each lead to your other tools as it arrives with webhooks, Zapier or Make, or export to CSV whenever you need it.

Familiar channels, out of the box

Channel names follow GA4’s default channel grouping, so your team already knows how to read them.

  • Paid Search
  • Organic Search
  • Paid Social
  • AI Assistants
  • Google Business Profile
  • Referral
  • Display
  • Paid Video
  • Direct
  • and more

We won’t make up your organic keywords

Since 2013, Google has removed the search term from organic clicks before the visitor reaches your website. That’s why Google Analytics shows (not provided). No tool can see it, whatever its marketing says.

So SourceXray shows you what is real: the exact keyword for paid ads, the exact query wherever the platform passes it, and the channel, search engine and landing page for organic visits. No guesses and no modelled data.

  • Google AdsPaid search
    Exact keyword
    Keyword, campaign, ad group, ad, match type, network and device.
  • Microsoft AdsPaid search
    Exact query
    The exact search query the person typed before clicking your ad.
  • Organic GoogleUnpaid search results
    Keyword hidden by Google
    Search engine and landing page. The keyword is withheld by Google for every tool, not just this one.

Want organic search terms in aggregate? Google Search Console shows them by page.

Start free. Upgrade when the leads roll in.

Start on the free plan and move up when you need more websites, more leads or a longer history. All prices in USD.

Free

Try it on one website, with no time limit.

$0/month

No credit card needed Start free
  • 1 website
  • Hidden fields filled on unlimited forms
  • Last 25 leads per month in the dashboard
  • 30-day history

Starter

For a single business website.

$19/month

Billed monthly Choose Starter
  • 1 website
  • 500 leads per month
  • 12-month history
  • All channels and keywords
  • CSV export

Agency

For agencies managing client websites.

$149/month

Billed monthly Choose Agency

Everything in Pro, plus:

  • 25 websites
  • 15,000 leads per month
  • Client workspaces
  • Branded monthly client reports
  • Team members

Have an AppSumo code? Redeem it

Questions, answered plainly

Do you show organic Google keywords?

No, and no honest tool can. Since 2013 Google has removed the search term from organic clicks before the visitor reaches your website, which is why Google Analytics shows “(not provided)”.

For organic leads, SourceXray shows the channel (Organic Search), the search engine and the landing page. For Google Ads you get the exact keyword, campaign, ad group and ad, and for Microsoft Ads the exact search query the person typed. Wherever a platform passes the query, we show it. To see organic search terms in aggregate, use Google Search Console.

Does it slow my site down?

No. The script is a single file of about 8KB. It loads asynchronously, so it never blocks your page from rendering, and browsers cache it after the first visit. It doesn’t track pageviews.

Is it GDPR and Privacy Act friendly?

It’s built to collect as little as possible. There’s no pageview tracking and no fingerprinting, visit details are kept in first-party storage on your own domain, and SourceXray only stores leads.

Data retention limits apply, you can switch on a mode that doesn’t store contact details at all, and consent mode is supported so tracking can follow your cookie banner. As with any tool that handles enquiries, mention it in your privacy policy.

Which form builders work?

Gravity Forms, Elementor, Contact Form 7, WPForms, Fluent Forms, Formidable, Webflow, HubSpot, Typeform, Tally, Calendly bookings and plain HTML forms.

SourceXray waits for each form builder’s real success event, so failed and invalid submissions are never counted as leads.

What about phone calls?

Not yet. SourceXray tracks form submissions and bookings today. A call tracking integration is on the roadmap.

Can I use it for clients?

Yes. The Agency plan covers 25 websites and 15,000 leads a month, with a separate workspace for each client, team members, and branded monthly reports you can send to your clients.

Do I need Google Analytics?

No. SourceXray works on its own. If you already use Google Analytics, it runs happily alongside it, and the channel names will feel familiar because they follow GA4’s default channel grouping.

How long does setup take?

Most sites are done in about five minutes: add the script (or the Google Tag Manager template or WordPress plugin), add hidden fields or turn on auto-capture, then send a test enquiry to see it arrive.

Know where your next lead came from

Set up SourceXray in five minutes and see the full source story behind every enquiry.