Skip to content
growthcontrolBook a consultation

UTM tracking for startups: keep the source on every lead

Founders add UTM tags to their links and feel covered. But the tag disappears the moment a form, a redirect or a booking tool drops it. So tracking only works when the source travels all the way into the CRM record.

What UTM tags are

UTM tags are short labels added to a link that tell your analytics where a visitor came from.

ParameterWhat it recordsExample
utm_sourceThe site or platformreddit, google, newsletter
utm_mediumThe type of channelcommunity, cpc, email
utm_campaignThe specific pushfirst-customers-oct
utm_contentThe ad or link versionheadline-a
utm_termThe keyword (paid search)crm-for-founders

Google’s own guidance in Google Analytics Help is clear on three points:

  • Always use utm_source, utm_medium and utm_campaign. Missing parameters show up as “(not set)” in reports.
  • utm_id and utm_source_platform are also recommended: useful once you run campaigns across several platforms.
  • Values are case sensitive. google and Google are counted as two different sources, so a strict lowercase convention matters.
Keep the source all the way to the CRM
  1. Tagged link

    Every shared link carries source, medium and campaign.

  2. Site remembers

    A script stores the tags while the visitor reads.

  3. Hidden fields

    The form passes the tags into the lead record.

  4. CRM record

    Source sits next to qualified, won and paid.

If any step drops the tags, the source is lost for good. Test the whole path, not just the link.

A naming system you will keep

  • All lowercase.
  • Hyphens, not spaces.
  • One shared sheet listing every source, medium and campaign name you use.
  • Never invent a new name on the fly, add it to the sheet first.

Inconsistent names (Reddit, reddit, reddit.com) split one channel into three in your reports.

A naming sheet you can copy

Channelutm_sourceutm_mediumutm_campaign example
Reddit answerredditcommunityfirst-customers-oct
Cold emailemail-outreachemailfounders-batch-03
Newsletternewsletteremailissue-12
LinkedIn postlinkedinsocialcrm-guide-launch
Google Adsgooglecpccrm-search-test
Meta Adsmetapaid-sociallead-form-test
Partner mentionpartner-namereferralpartner-launch

Keep this sheet in one shared place. Add a row before you use a new value, never after.

Example links

A Reddit answer that links to a guide:

https://example.com/guide/?utm_source=reddit&utm_medium=community&utm_campaign=first-customers-oct

A cold email batch:

https://example.com/?utm_source=email-outreach&utm_medium=email&utm_campaign=founders-batch-03

Use a URL builder or a simple spreadsheet formula, so nobody types tags by hand.

A tagging cheat sheet by channel

Most founders share links in the same handful of places. But each place needs its own tags, or the reports blur together. So decide the tags once and reuse them.

Where you share the linkutm_sourceutm_mediumutm_campaign example
Reddit answer or postredditcommunityfirst-customers-oct
Indie Hackers postindiehackerscommunitylaunch-oct
LinkedIn postlinkedinsocialfounder-story-oct
Your newsletternewsletteremailissue-12
Cold emailcoldemailoutreachbatch-01
Partner’s site or newsletterpartner-namereferralpartner-launch
Podcast show notespodcast-nameaudioepisode-34
QR code on printprintofflineevent-name

Paid ads are different. Google Ads and Meta can add their own tags or click IDs automatically. Check each platform’s tagging settings before you add manual tags on top, so the two don’t conflict.

Set it up in one afternoon

You don’t need a developer for a basic setup. But you do need to test each step, because one broken link in the chain loses the source for good. So work through these steps in order.

  1. Create the naming sheet. Five columns: source, medium, campaign, content, and a note on where the link is used.
  2. Build your links. Use a URL builder or a simple spreadsheet formula. Paste each finished link into the sheet.
  3. Add hidden fields to your form. One hidden field per UTM parameter, plus one for the landing page URL. Most form tools can read values from the page URL.
  4. Map the fields to the CRM. Make sure each hidden field writes into a matching CRM field, not into a notes box.
  5. Add the “How did you hear about us?” question. Short dropdown plus an “Other” text box.
  6. Run a test. Click a tagged link in a private browser window, submit the form, and open the new CRM record.
  7. Check GA4. After a few hours, the visit should appear under the source and medium you used.
  8. Write down the date. Data before this date has no source; don’t compare it with data after.

If step 6 fails, the problem is almost always step 3 or step 4. Fix it before you share any more links.

Where tags get lost

  • Redirects that strip the query string.
  • Embedded forms in iframes that can’t see the page URL.
  • Booking widgets that open on another domain.
  • Phone calls: a call has no URL at all.
  • Visitors who come back later without the tagged link.

Test each path: click a tagged link, submit the form, and check that the CRM record shows the tags.

Troubleshooting: why the source is blank

What you seeLikely causeFix
CRM records have no source at allHidden fields missing or not mappedAdd the fields and map them to CRM fields; test again
Source shows only for some formsOne form was built differentlyUse the same form setup on every page
GA4 shows the visit, CRM doesn’tForm or booking tool drops the URL valuesPass the values into the form, or ask the question on the form
Everything shows as “direct” in analyticsLinks shared without tags, or tags stripped by a redirectTag every shared link; test redirects with a tagged URL
Same channel appears under several namesInconsistent namingFix the sheet; rename old values in reports where you can
Calls have no sourcePhone has no trackingUse a number per channel, or ask on the call

Check the most common case first: open a tagged link yourself and watch where the tags disappear.

Keeping tags through forms, step by step

The tags live in the URL. But a visitor often reads two or three pages before filling in a form, and the tags are gone by then. So your site has to remember them.

  1. Capture on arrival. When a visitor lands with UTM tags (or ad click IDs like gclid), a small script saves them in the browser for the visit.
  2. Fill hidden fields. Every form gets hidden fields for source, medium, campaign, content, term, landing page and click ID. The script fills them when the form loads.
  3. Send to the CRM. The form integration maps each hidden field to a CRM field on the lead record.
  4. Handle booking tools. If you use an embedded scheduler, pass the tags into it as prefilled fields, or capture the source on the booking confirmation.
  5. Handle calls. Show a campaign-specific phone number, or ask “How did you find us?” on every call and record it.
  6. Test every path once a month, and after every site change.

Store the source in the CRM

Add these fields to every lead record:

  • UTM source, medium, campaign, content
  • Landing page
  • First-touch source (where they first came from)
  • Self-reported source (what they told you)

First-touch tells you what introduced them. Last-touch tells you what made them act. For a founder, first-touch plus self-reported is usually enough.

First-touch vs last-touch: an example

A founder reads your Reddit answer, leaves, gets your newsletter a week later, and finally clicks a Google ad to book a call.

ModelCredit goes toWhat it tells you
First-touchRedditWhat introduced the customer
Last-touchGoogle AdsWhat made them act
Self-reportedWhatever they say, maybe “a friend” or “Reddit”What they remember mattering

No single answer is “true”. For a small business, keeping first-touch, last-touch and self-reported side by side is more useful than any complex model.

Add “How did you hear about us?”

Tracking misses word of mouth, podcasts and conversations. A simple question on the form fills the gap. Keep the answer separate from tracking data: both are useful; neither is complete. See the guide on using customer-reported sources alongside tracking data.

Tracking channels that have no link

Some of your best leads will never click a tagged link. But that doesn’t mean you can’t learn where they came from. So give each offline or word-of-mouth channel its own simple marker.

  • Events and meetups: a short URL or QR code that points to a tagged link, used only at that event.
  • Podcasts: a memorable page like /podcast that redirects to a tagged URL, said out loud on the show.
  • Partners: a partner-specific link or a simple referral code they can share.
  • Print: a QR code with its own campaign name for each flyer or mailing.
  • Referrals: a dropdown answer “A friend or colleague”, plus a text box for the name if they want to share it.

None of these is perfect. Together with the self-reported answer, they give you a much clearer picture than tags alone.

Reading the self-reported answers

Free-text answers are messy. But they hold the channels your tags can’t see. So sort them once a month into a few groups.

  1. Export the month’s answers from the CRM.
  2. Group them: search, a specific community, social, a podcast or event, a friend or colleague, an existing customer, other.
  3. Put the grouped numbers next to your UTM sources.
  4. Look for gaps. If many people say “a friend” but your tags show “direct”, word of mouth is bigger than your reports suggest.

Keep the dropdown short and update it when a new answer keeps appearing in “Other”.

A two-minute habit before you share any link

Before you post a link anywhere, open the naming sheet, copy the tagged version, and paste it. Two minutes per post. Founders who skip this step end up with months of “direct” traffic and no idea which posts worked.

Check it monthly

A three-minute audit:

  1. Open the last 20 leads in the CRM.
  2. How many have a source filled in?
  3. Any new, unexpected source names? Fix them in the sheet.

If fewer than most leads have a source, something in the path is dropping the tags.

A simple monthly source report

Once sources are on every record, one table answers most marketing questions:

SourceLeadsQualifiedCustomersRevenue
reddit / community————
email-outreach / email————
google / cpc————
(no source)————

Watch the “(no source)” row. If it grows, something in your tracking path is broken.

A worked example: one month of sources (illustrative)

Here is how a founder might read a month of data. The numbers are illustrative.

SourceLeadsQualifiedCustomers
reddit / community1462
linkedin / social920
coldemail / outreach642
google / cpc1131
Self-reported “a friend told me”442

Read it from right to left. Reddit and cold email produced the same number of customers, but cold email needed far fewer leads to get there. LinkedIn produced interest but no customers yet. Word of mouth, which tracking would have missed, produced two customers from four leads.

So this founder keeps Reddit and cold email, asks happy customers for introductions, and gives LinkedIn one more month before deciding.

When to move beyond UTM tags

UTM tags tell you where a visit came from. But they can’t tell you whether that visitor became a qualified lead or paid. So once tags work reliably, the next step is to connect sources to outcomes.

Three steps, in order:

  1. Source on the CRM record. Every lead carries its UTM values and self-reported answer. This guide gets you here.
  2. Outcomes by source. Your CRM report shows leads, qualified leads, customers and revenue for each source. Now you can compare channels by money, not by clicks.
  3. Outcomes back to ad platforms. If you run paid ads, send qualified leads and won deals back as offline conversions, so the platforms learn which clicks bring buyers. See the guide to your first $500 in ads.

Most founders don’t need a separate attribution tool until step 3 feels painful. A clean CRM with sources on every record covers the first two.

Keep personal data out of tags

UTM values show up in analytics reports and sometimes in browser history. Never put names, email addresses or phone numbers into a tag. Use generic labels like batch-01 or partner-name instead, and keep personal details inside the CRM.

Common UTM mistakes

  1. Mixed capitals: Reddit and reddit split one source in two.
  2. Tagging internal links: tags on links inside your own site overwrite the real source.
  3. No campaign name: you see the channel, but not which push worked.
  4. Tags that never reach the CRM: analytics sees them; your sales records don’t.
  5. Inventing values on the fly: every new spelling makes reports harder to read.
  6. Only trusting tracking: word of mouth never carries a tag; ask customers too.

Tracking terms in plain English

  • UTM tags: labels added to a link that record where a visitor came from.
  • Source: the site or platform, like reddit or newsletter.
  • Medium: the type of channel, like community, email or cpc.
  • Campaign: the specific push, like a launch or a batch of emails.
  • First touch: the first channel that brought someone to you.
  • Last touch: the channel right before they contacted you or bought.
  • Self-reported source: what the customer says when you ask how they heard about you.
  • Hidden field: a form field the visitor doesn’t see, used to pass the tags into your CRM.
  • Attribution: deciding which channel gets credit for a customer.

What to do this week

  1. Today: create the naming sheet and agree on your source and medium names.
  2. Tomorrow: add hidden fields to your main form and map them to the CRM.
  3. This week: add “How did you hear about us?” to the form.
  4. Friday: run the test with a tagged link and check the CRM record and GA4.
  5. From now on: never share a link without tags. Keep the sheet open while you post.

Questions and answers

Do UTM tags affect SEO?

Not when used on links you share elsewhere. Don’t add UTM tags to internal links on your own site.

What if the lead calls instead of filling a form?

Use a tracking number per campaign, or ask on the call and record the answer in the CRM.

Can GA4 do this alone?

GA4 shows sessions and conversions, but it doesn’t know which lead became a paying customer. The CRM closes that gap.

Are UTM parameters case sensitive?

Yes. Google Analytics treats google and Google as different values, so use lowercase everywhere, as Google Analytics Help advises.

Which UTM parameters are required?

Use utm_source, utm_medium and utm_campaign on every tagged link. Add utm_content and utm_term when you need to compare versions or keywords.

Should I tag links in my social bios?

Yes. A tagged bio link shows how much traffic and how many leads your profile brings, separate from individual posts.

How do I track QR codes and offline ads?

Put a tagged URL behind the QR code, with a medium like print or event. For radio or podcast mentions, use a short, memorable URL that redirects to a tagged one.

Should I use UTM tags on links inside my own website?

No. Tags on internal links can overwrite the real source of the visit in analytics. Use them only on links you share outside your site.

What if I forget to tag a link?

Fix it for the next share and move on. The “How did you hear about us?” answer helps fill the gap for leads that arrived without tags.

Do I need a paid tool for UTM tracking?

No. A spreadsheet for naming, your form’s hidden fields and your CRM are enough for most founders. Paid tools help later, when you have many channels and want reports without manual work.

How long should I track before judging a channel?

Give each channel at least a month, and judge it by qualified leads and customers, not visits. A channel with few visits but steady customers is worth more than one with lots of traffic and no sales.

Can UTM tags break my links?

Rarely, but it happens when a site or redirect doesn’t accept extra parameters. That is one more reason to click every new tagged link once before you share it.

Should my team use the same naming sheet?

Yes. One shared sheet for everyone who posts links (founder, contractor or partner) keeps the reports clean. Add a rule: nobody invents a new source or medium name without adding it to the sheet first.

Sources and further reading

Put the process into practice

Growth Control implements the tools, workflow and team handoff around an agreed business result.

Explore marketing attribution connected to your sales process