Build sequence links

How it works

what the tags look like when they are useful
SOURCEutm_source=cold-emailWHERE FROM
MEDIUMutm_medium=emailCHANNEL
CAMPAIGNutm_campaign=q4-logistics-vp-opsWHICH LIST
CONTENTutm_content=step2-varbWHICH EMAIL
Lower case, hyphens, no spaces, the same words every time. GA4 is case-sensitive.
01

Set the constants

Destination URL, source, medium and campaign are the same across a sequence. They are lower-cased and slugged so “Cold Email” and “cold-email” do not become two rows in a report.

02

Expand the variables

Steps and variants are the parts that change. The tool generates one link per step × variant with utm_content set to identify it, and optionally utm_term for the segment.

03

Encode properly

Existing query parameters on the destination are kept, fragments are preserved after the tags, and values are percent-encoded so a merge tag with a space does not break the link.

04

Copy into the sequence

Each link has a copy button and the table exports as CSV. Paste the step-1 link into step 1, and so on — the sending tool's click tracking wraps it and unwraps it on click.

What each parameter is for

utm_source answers “where did this come from” — use a fixed value like cold-email, or the sending tool's name if you run more than one. utm_medium is the channel and should be email so GA4 files it under its Email default channel group; anything else lands in Unassigned. utm_campaign names the list or offer: segment, persona, quarter — q4-logistics-vp-ops. utm_content distinguishes emails within the campaign: step and variant. utm_term is optional and best used for the segment split you want to compare, like company size. Keep all five lower case with hyphens; GA4 treats Cold-Email and cold-email as different sources and you will spend an afternoon merging them.

How click tracking interacts with UTMs

Every sending tool wraps links in its own tracking domain — https://link.yourtrackingdomain.com/abc — and redirects to your URL on click, tags intact. That is fine for analytics and bad for deliverability if the tracking domain is the tool's shared one; the tracking domain checker covers that. What matters here is that the tagged URL is what the tool wraps, so paste the tagged link into the template, not the bare one. Some tools also add their own parameters on redirect; check one click end to end in GA4's realtime view before the campaign runs.

Whether a first email should have a link at all

Often not. A first touch with a link is a filter signal and a friction point; the reply is the conversion. Links belong in the follow-ups where you are offering the two-pager or the case study, and in the reply you send to someone who asked. Tag those. For the first email, the UTM question is moot — leave it linkless and let the reply rate be the metric.

Reading the report

In GA4, go to Reports → Acquisition → Traffic acquisition, set the primary dimension to session campaign and add session manual ad content as a secondary. Each row is then a step and variant; add conversions as a metric and you have the only funnel report a cold email operation really needs. The decoder on this page reads tags back out of a link, which is useful when you inherit a sequence and want to know what someone named things.

Frequently asked questions

Should utm_source be the tool name or “cold-email”?

Pick one convention and keep it. If you run one tool, cold-email is more readable. If you run several, the tool name lets you compare them — but then medium must still be email so the channel grouping works.

Does GA4 need utm_id?

No. utm_id links to imported cost data and is irrelevant for email. The five classic parameters are enough.

What if the destination already has UTMs?

The tool replaces existing utm_ parameters with the ones you set and keeps every other parameter. It warns you when it does this.

Can I use merge tags in the values?

Yes — the tool leaves {{ }} and { } tags unencoded so the sending tool can fill them. Keep the rendered value simple: a company name with spaces becomes a percent-encoded mess that still works but is ugly in reports.

Is anything stored?

No. Everything runs in your browser.

Last reviewed

Related tools

What to run next

The checks that most often follow this one.

Generators

More in this category

Read more

Guides that go deeper

Services

When the tools tell you something is wrong

The diagnostics here are free and always will be. When the fix is bigger than a DNS record, this is the work I do.

Get in touch

Start with a call

Bring a domain and the symptom. I will tell you what is actually wrong and whether you need me at all — plenty of people leave that call able to fix it themselves.

Thirty minutes, no pitch

We will run the checks together on your actual domains, and you will leave knowing what is broken, what it takes to fix, and what it should cost. If that is a job you can do in-house, I will say so.

Based inRangpur, Bangladesh — all time zones
RepliesWithin one business day
LicensingWorkspace below list price
Back to top