Follow The Spend
Concepts

Channels and sources

How Follow The Spend buckets every visit into Direct, Organic, Paid Search, Paid Social, Email, Social, or Referral.

Every session has a source — where that visit came from. We bucket sources into a small set of channels because raw source data is too noisy to read at a glance.

The seven channels

ChannelWhat lands hereExamples of source/medium
DirectVisitor typed the URL, used a bookmark, or came from a context we can't seeNo referrer, no UTM
Organic SearchCame from a search engine result (non-paid)google.com, bing.com referrer, no gclid
Paid SearchCame from a paid search adgclid, utm_medium=cpc
Paid SocialCame from a paid social adfbclid, utm_medium=paid_social
EmailClicked from an emailutm_medium=email, common ESP referrers
SocialCame from a social network organically (not via a paid click)Referrer = instagram.com, t.co
ReferralCame from another website (not search, social, or email)Any other referrer, no UTM hint

Each channel rolls up multiple specific sources. You'll see the breakdown by channel in Pulse and the underlying source/medium in any individual journey.

How a session is classified

For every session, we evaluate signals in this order. The first match wins:

  1. UTM parameters — if the URL has utm_medium, that's the strongest signal. utm_medium=cpc → Paid Search. utm_medium=email → Email. Etc.
  2. Click identifiersgclid (Google Ads) → Paid Search. fbclid (Meta) → Paid Social. msclkid (Microsoft Ads) → Paid Search.
  3. Referrer pattern — referrer matches a known search engine → Organic Search. Matches a known social network → Social. Matches a known email service → Email.
  4. Default — no useful signal → Direct.

This means a campaign with proper UTM tagging always wins over the referrer-based fallback. Tag your campaigns and the data is much cleaner.

Source vs medium vs campaign

Three layers of detail under each channel:

  • Channel (Pulse default view) — Paid Social, Direct, etc.
  • Sourcefacebook, google, klaviyo, etc.
  • Mediumcpc, email, organic, social
  • Campaign — your utm_campaign value

In a journey, you see all four. In Pulse's channel performance table, you see channels by default and can drill into source/medium/campaign as needed.

UTM tagging best practices

If you're not already tagging your marketing links, do this. It's the single highest-leverage thing you can do for cleaner attribution.

Recommended structure:

?utm_source=<platform>&utm_medium=<type>&utm_campaign=<campaign-name>

Examples:

ChannelRecommended UTMs
Meta paid ad?utm_source=facebook&utm_medium=paid_social&utm_campaign=spring-sale-2026
Google paid searchUTMs are usually auto-tagged via gclid — leave it alone
Klaviyo email?utm_source=klaviyo&utm_medium=email&utm_campaign=may-newsletter
Instagram bio link?utm_source=instagram&utm_medium=social&utm_campaign=bio-link
Influencer post?utm_source=influencer-name&utm_medium=referral&utm_campaign=collab-q2

Anti-patterns to avoid:

  • Don't UTM-tag your own internal navigation links (e.g. links in your own emails to your own product pages). It overwrites the visitor's true acquisition source.
  • Don't use spaces in UTM values. Use hyphens (spring-sale-2026, not spring sale 2026).
  • Don't use mixed case (SpringSale vs springsale) — they create duplicate buckets.
  • Don't repeat utm_medium=cpc for non-paid traffic. Reserve cpc for actual paid clicks.

Channel customization

In v1.0, the seven channels above are fixed. You cannot create custom channels or remap source-to-channel rules. Customizable channels are post-v1.

If your business depends on a non-standard channel breakdown (e.g. you want SMS as its own channel separate from "Direct"), let us know — we use customer requests to prioritize the channel-customization roadmap.

Where to go next

On this page