Klaviyo UTM parameters, and the links Klaviyo can't tag
Klaviyo tags links itself once you set it up under Settings, Other, UTM tracking. This builder is for the links it can't reach: Klaviyo says dynamic UTM values don't apply to product blocks or data feeds, but a static product block takes hand-built tags. Copy Klaviyo's own values so those clicks share GA4 rows.
The interactive UTM builder loads with this page, pre-filled for Klaviyo, and runs entirely in your browser.
klaviyo is one of Klaviyo's built-in static source values, and email is what its Message type medium writes in an email, which is the value GA4's Email channel looks for.
Where to put it
Account defaults: click your account name at the bottom left, then Settings, Other, UTM tracking. Set a campaign value and a flow value for each parameter, then turn on Automatically add UTM parameters to links.
Campaigns: open an unsent campaign and, in the Tracking section of Step 1: Recipients, turn on Include tracking parameters. Customize tracking parameters overrides the defaults for that send.
Flow messages: select the message in the flow builder and tick Enable UTM Tracking under Settings. Tick Use custom tracking parameters to change its values.
Product blocks and data feeds: dynamic values can't be applied there, so build the tags here and paste the finished URL into a static product block.
Every link in an email, text or WhatsApp message needs http:// or https:// to be tracked.
"Message type" is the utm_medium value Klaviyo now recommends, and it decides which GA4 channel your Klaviyo clicks reach. It writes the channel the message went out on: utm_medium=email in an email, utm_medium=sms in a text. GA4 has a home for both. The Email channel takes a medium of email, and the SMS channel a medium of exactly sms. Push messages are covered too, provided their medium ends in push: GA4's Mobile Push Notifications rule exists for exactly that. WhatsApp is the gap: no GA4 rule covers a medium of whatsapp, so with a source like klaviyo those clicks land in Unassigned.
Accounts set up before June 2025 may still send campaign or flow. On 2 June 2025 Klaviyo changed the default medium from campaign and flow to Message type. If you had customised and saved your UTM settings before then, Klaviyo kept your old values. Neither campaign nor flow is a medium GA4 recognises, so unless your source happens to be email, those clicks can fall to Unassigned. Check Settings, Other, UTM tracking and switch the medium.
A recipient on two lists is credited to one. If utm_source uses list or segment names and a campaign goes to several, each recipient's links name only one: whichever was selected first in the campaign wizard. Klaviyo's example is a subscriber in both a VIP segment and a high-engagement segment, credited to VIP because it was picked first. Select the list you most want to measure first, or avoid list names as the source on multi-list sends.
Texts need link shortening left on. Klaviyo says Automatically shorten links must stay enabled for UTM parameters to work in text messages. Links on WhatsApp URL buttons and push deep links pick up your message or account settings automatically, and push deep links may use a custom scheme such as myapp://.
Tags lock at send. You can't edit UTM parameters on a sent message, and a scheduled one has to be paused first. Klaviyo's UTM variation letters for A/B tests work on email only, and Google Analytics won't pick them up until you create a custom parameter for them there. Klaviyo also says its conversion numbers and GA4's won't exactly align, because Klaviyo counts from its own data and GA4 from link clicks; why analytics numbers never match explains the general case. To check what Klaviyo actually wrote, send yourself a test and run one of its links through the link decoder.
Questions
Which UTM parameters are mandatory?
In Klaviyo, utm_source and utm_medium are always on, and utm_campaign, utm_id and utm_term can be switched off. Google's own URL-builder help names source, medium and campaign as the three every tagged link should carry, so keep utm_campaign switched on as well.
What does a Klaviyo UTM link look like?
With the source set to Klaviyo's static value klaviyo and the medium set to Message type, a link in an email carries utm_source=klaviyo and utm_medium=email, plus your campaign value. The same link in a text message carries utm_medium=sms.
Why do my Klaviyo links still say campaign or flow as the medium?
Klaviyo switched the default medium to Message type on 2 June 2025, but accounts that had customised and saved their UTM settings before that date kept the old values. Change the medium under Settings, Other, UTM tracking.