A CRM lead source records where a prospect came from so you can connect marketing activity with the customers it brings. Keep a consistent reporting category alongside the source, medium and campaign details that support it. TrackLeadSource collects available source and journey context with website enquiries; your CRM holds that information alongside the qualification and sales results your team records.
Decide what your CRM source fields mean
A field called Lead Source might contain Paid search, Google, Website or Import. Each value can describe something different. If your team mixes them in one list, a report becomes hard to interpret.
Start by checking the fields your CRM already provides. Salesforce's Lead Source field, for example, uses a picklist set by an administrator. HubSpot has separate Original and Latest Traffic Source properties, with additional detail fields. Reuse useful existing fields before creating another set.
For a website enquiry, separate the information below. These are suggested labels for your own records, not required field names or a TrackLeadSource schema.
| Information | What it tells you | Example |
|---|---|---|
| Reporting channel | The category you use to compare marketing | Paid search |
| Recorded source | The platform, site or sender associated with the visit | |
| Recorded medium | How that traffic reached you | cpc |
| Campaign | The tagged marketing activity | roof_inspection |
| Source date | When the recorded visit happened | 6 July 2026 |
| Record creation method | How the enquiry entered your CRM | Website form |
Source and medium work together. google / cpc can describe a tagged paid-search visit; google / organic describes organic search. A Facebook visit could come from an unpaid post or an ad. The referring website alone may not settle the distinction. Use campaign tags and other available evidence rather than treating missing UTMs as proof of organic traffic.
Choose reporting categories that fit your marketing, such as Paid search, Organic search, Paid social, Email, Partner referral and Events. Add categories when you need them. Keep individual campaign names in their own field so every new promotion doesn't become another channel.
Clean up labels without losing the evidence
Suppose one report has separate rows for Google, google and Google Ads. Before combining them, inspect what each value means and where it came from.
Preserve the original value when you standardise it. Keep the submitted source and medium in separate fields, then apply your reporting labels through a documented mapping. This lets you correct the mapping later without guessing what the lead originally contained.
Here is an illustrative cleanup table:
| Original evidence | Standardised source | Reporting decision |
|---|---|---|
| Source Google, medium cpc | Paid search | |
| Source google, medium organic | Organic search | |
| Legacy label Google Ads, confirmed to mean paid-search enquiries | Paid search | |
| Source Google, medium missing, no other evidence | Leave channel unknown pending review |
The last row belongs outside the paid-versus-organic comparison until you have evidence. Changing its spelling doesn't recover its medium.
Use one spelling for new campaign links, and check the forms, imports and automations that write to the CRM. Google's campaign URL documentation notes that UTM values are case sensitive: google and Google are different values. Lowercase naming is a useful team convention, although your reporting cleanup should retain the original input.
A dropdown can keep reporting categories consistent. Raw source and campaign fields need room for the values you receive. Have the person who owns reporting approve new mappings, including what happens to blanks and unfamiliar labels.
Before applying a cleanup across old records, save an export and try the rules on a small group. Check the resulting channel totals and inspect ambiguous entries. Fix the source of new inconsistent values too, or next month's report will need the same cleanup.
Keep original source, return visits and survey answers separate
For website reporting, define original source as the first source your tracking recorded for that visitor. Earlier offline conversations or visits from another device may be missing. Keep the original source together with its medium, campaign and date.
Use a separate set for the latest recorded arrival. If a person first visits through an ad and later returns through a newsletter, both visits can help explain the enquiry. Updating the latest source to the newsletter should preserve the earlier ad information.
Document how your chosen method handles a direct return. Some reports use the latest visit; others use the last non-direct source. Mixing those rules across records changes the comparison. The lead attribution guide explains how these choices affect the credit assigned to a channel.
Keep a visitor's answer to “How did you hear about us?” separately too. Someone may name a colleague even though tracking recorded a Google visit. The colleague could have prompted the search. Those two answers describe different parts of the discovery process, so replacing one with the other would discard useful context. Our survey options guide covers how to collect that answer.
TrackLeadSource
See the story behind each lead.
Keep source, campaign, and journey context together when a visitor becomes a lead.
14-day free trial. Cancel anytime
Keep a readable journey with the enquiry
TrackLeadSource collects available source, medium and campaign information, the recorded source journey, and pages visited before an enquiry. Its workflow passes that context through hidden form fields. Your form connection maps the submitted values into the corresponding CRM fields.
This gives the person replying context about the enquiry. Across multiple leads, the same source information can be compared with qualification and customer outcomes to investigate which marketing brings suitable work.
Imagine a facilities manager looking for commercial roof repairs. They arrive through a Google ad, return through a newsletter a week later, and read a repair case study before requesting an inspection. A fictional record could look like this:
| Information kept with the enquiry | Illustrative value |
|---|---|
| Enquiry ID and date | ENQ-1042, 13 July 2026 |
| First recorded source / medium | google / cpc |
| First campaign and date | roof_inspection, 6 July 2026 |
| Latest recorded source / medium | newsletter / email |
| Latest campaign and date | roof_maintenance, 13 July 2026 |
| Recorded source journey | Google ad > Newsletter |
| Pages visited before submission | Roof repairs > Case study > Request inspection |
| Qualification | Commercial property inside the service area |
| Associated deal | DEAL-208 |
| Deal outcome and close date | Closed won, 5 August 2026 |
| Deal amount | $12,000 |
These are example labels and values, not a customer result or a tested CRM integration. Your team supplies the qualification, deal information and sales outcome.
The ad and newsletter both appear in the recorded journey. A first-source report would group this enquiry under paid search; a latest-source report would group it under email. Keeping both lets you choose a consistent reporting rule while retaining the context behind it.
A page visit alone doesn't establish buying intent or prove why the customer purchased. Blocked tracking, cleared browser data and activity on another device can also leave gaps in the history.
To track lead source, start with one enquiry form and confirm that its saved CRM record contains the source context you expect. If you use HubSpot, our guide to keeping UTM parameters with contacts explains its native form route and the limits of external-form collection.
Preserve the connection when the lead becomes a deal
Source information needs to survive the sales process. Keep a stable enquiry or contact ID, and associate the relevant deal with that record. When your CRM converts leads into contacts or opportunities, check which fields carry across.
For example, Zoho's conversion documentation describes mapping custom lead fields to corresponding contact, account and deal fields. Inspect the converted record as well as the original lead; a field saved at intake can still be missing later.
Have sales record qualification and update the deal outcome. Keep open deals separate from lost deals, and save a reason when an enquiry is unsuitable. “Residential request outside our service area” gives marketing something specific to investigate.
Count each deal once in a revenue report. If several contacts share one deal, adding its amount for every contact would inflate the total. For repeat purchases, decide whether the report concerns the original acquisition or a new sales opportunity. Label that choice before comparing channels.
Use the records to compare marketing
Choose a defined group of enquiries and a consistent source rule. For example, compare enquiries received in July by first recorded channel, with outcomes updated through October. Show open outcomes and unknown sources alongside completed sales.
A campaign with many enquiries outside your service area may need different targeting or clearer copy. A channel bringing fewer enquiries but more suitable projects deserves investigation alongside its costs. The lead-quality guide covers the calculations and how to allow enough time for leads to buy.
You can also analyse an export in an AI tool your business approves, and our guide on asking an AI assistant which channel brings your best leads covers the export route and the CRM connectors. Include the source fields, enquiry dates, qualification and linked deal outcomes needed for the comparison. A useful request is:
Group July enquiries by first recorded source and medium. Show unique enquiries, qualification status and associated won deals. Count each deal amount once. Keep unknown sources and open outcomes visible. List inconsistent labels and explain any proposed grouping before applying it.
Check the totals and proposed mappings against the CRM. AI can help examine recorded data; missing source evidence should stay missing until you find it.
Common questions
Aim to capture one, but keep an explicit Unknown category for reporting when evidence is missing. Requiring a value can encourage people or automations to fill a blank with an unsupported default. Review those records separately and fix the intake problem where possible.
You may be able to recover some details from saved form submissions, campaign records or existing property history. Record where the recovered value came from. If the evidence wasn't retained, leave the source unknown rather than assigning it from today's campaign or the contact's latest activity.
Import describes how the record entered the CRM. The person's marketing origin could be an event, referral or website enquiry. Keep those meanings separate. HubSpot's Record Source documentation makes this distinction between record creation and traffic source.
Helping marketers connect website form submissions to their source, campaign, and customer journey.


