UTM Tracking in Klaviyo: Setting Up Campaign and Flow Tracking Before BFCM
Black Friday results are read afterwards in two tools: Klaviyo and Google Analytics. For visits coming from your messages to be identifiable in analytics, the links must carry UTM parameters. These parameters are set once at account level, then message by message when needed. Once a message is sent, a missing UTM can no longer be corrected.
TL;DR. Two parameters are always enabled, utm_source and utm_medium, and Klaviyo offers three others, plus up to five custom parameters. They are only added to links once Automatically add UTM parameters to links is turned on. The setting is found under Settings, Other, UTM tracking. The parameters of a message that has already been sent cannot be edited. Conversion figures in Klaviyo and Google Analytics do not match exactly, and the documentation recommends relying on Klaviyo analytics when possible.
Want an outside look before you build? We offer a Q4 readiness audit: 30 minutes, free, no strings attached.
What UTMs are, and what Klaviyo adds
UTM parameters are small codes appended to the end of links. They help Google Analytics and other traffic measurement tools identify where visitors come from. Klaviyo can add them to the links of emails, SMS, WhatsApp messages and push notifications (Klaviyo, understanding UTM tracking).
Two default parameters are always enabled: utm_source and utm_medium. Google Analytics accepts three others by default, utm_campaign, utm_id and utm_term, which you can turn on or off as you like in Klaviyo. You can also create up to five fully custom parameters with Add a custom UTM parameter.
One change in behavior to know about: since 2 June 2025, the default value of utm_medium has moved from "campaign" and "flow" to Message type, which covers email, SMS, WhatsApp and push. If you customized and saved your UTM settings before that date, you still see the old values. Otherwise, the new values apply.
Set up the account once
Path: organization name at the bottom left, Settings, Other, UTM tracking. There you enable the parameters you want, choose a value for each on the campaign side (Campaign Value) and the flow side (Flow Value), then turn on Automatically add UTM parameters to links and save. The documentation recommends setting utm_medium to Message type if you use, or plan to use, several channels (Klaviyo, adding UTM tracking to campaigns and flows).
When you change the global settings, the messages that use those settings follow the change. Messages with custom UTMs or with tracking turned off do not follow it, until tracking is turned back on and the customization option is turned off in the message.
Static, dynamic or custom
For most parameters, Klaviyo offers three families of values.
- Static values: identical for all messages, with a separate choice for campaigns and for flows. The options provided include
klaviyo,email,sms,whatsapp, or one of the two words, campaign or flow. All custom values are static. - Dynamic values: they change depending on the message type. With Message type for
utm_medium, the links of an SMS carryutm_medium=smsand those of an email carryutm_medium=email. - Custom values: typed into the Search or add new... field of the dropdown, then created with Create. They are used exactly as typed.
One limit matters for BFCM: dynamic parameters do not apply to product blocks or data feeds. They can be added by hand to static product blocks. If your Black Friday emails rely on dynamic product blocks, check the product links in a test email before scheduling. Our article on product feeds and cross-sell explains the difference between dynamic and static blocks.
Set up a single message
Campaign
In a campaign that has not been sent, in the Tracking section of step 1 (Recipients), you need to turn on Include tracking parameters. To use parameters other than the account's, turn on Customize tracking parameters. If the campaign is already scheduled, you must pause it before changing its UTMs. The parameters of a sent message cannot be edited (Klaviyo, adding UTM tracking to campaigns and flows).
Flow
In the flow, select the message, then in Settings check Enable UTM Tracking. For parameters specific to that message, check Use custom tracking parameters. The operation is repeated message by message: a five-email flow takes five checks, unless automatic global tracking is turned on. To turn tracking off on a message, the box is unchecked in the flow, or checked in the campaign (Do not use UTM tracking for this campaign). The two Klaviyo pages do not describe the same control for a campaign (that box on one, the Include tracking parameters toggle on the other): check the label shown in your account.
In our view, before BFCM, the safest approach is to turn on automatic tracking at account level, then go through the messages of the main flows to check that none was disabled or customized at some forgotten point.
Conditions on links
All links in emails, SMS and WhatsApp messages must start with http:// or https:// to be tracked. Push deep links can use a custom scheme, for example myapp://. In an SMS, the automatic link shortening option must stay turned on for UTMs to work.
When a campaign goes to several lists or segments
If you use the name of a list or segment as the value of utm_source and the campaign goes to several lists or segments, the value filled in for a recipient is that of the list or segment they belong to at send time. A person who is in several targets is attached to only one: the one selected first in the campaign wizard. In the page's example, a subscriber who is in both the "VIP Customers" and "High-Engagement" segments is attributed to "VIP Customers" if that segment was chosen first. The rule applies to any parameter whose value is the identifier or name of a list or segment.
This matters for a BFCM where a single campaign often targets several overlapping segments. In our view, if you want a clean reading by segment, order the segments of the target in the wizard with the same logic from one campaign to the next, or exclude the overlaps as explained in our article on BFCM audiences and exclusions.
Variation letters for A/B tests
Variation letters exist for email, not for SMS. They let you compare the traffic generated by each version of a campaign or flow A/B test. After turning on tracking on the campaign, click Continue to Content, then at the bottom of the page click Create A/B test, and check Track links separately in each variation. For a flow email, the same box is found in the test setup.
One detail: Klaviyo links automatically receive a variation parameter when UTM tracking is turned on, which is not the case for Google Analytics. To make use of this variation in Google Analytics, you first need to create a custom parameter for the variation there. Also, the message ID and the message variation are two distinct properties: only the message ID appears in downloaded reports, whereas both appear in Google Analytics data. Our article on BFCM email subject line tests gives a testing framework.
Klaviyo and Google Analytics: two figures, not one
Google Analytics measures conversions from clicks on links, whereas Klaviyo relies on data coming directly from your database, for example the online store. The two tools therefore do not match exactly. The page gives two examples where Google Analytics records no conversion: a subscriber who reads the email, does not click, but then visits the store, and a customer who opens an SMS then buys later from a computer. Klaviyo attributes both cases, within the attribution windows. The documentation recommends relying on Klaviyo analytics when possible (Klaviyo, understanding UTM tracking).
To read your results after the event, our article on attribution windows and BFCM results builds on this same principle.
Naming convention for BFCM
These suggestions are Deliver advice, not Klaviyo rules.
| Parameter | Suggested value | Reason |
|---|---|---|
utm_source |
klaviyo (static) |
One stable source for all messages |
utm_medium |
Message type (dynamic) | Separates email and SMS without manual setup |
utm_campaign |
One value per send or per flow, chosen from Klaviyo's options or typed by hand | Makes it possible to find each send in Google Analytics |
| Custom parameter | The event, for example "bfcm2026" | Isolates the event from everyday activity |
The exact name of the custom parameter, an example here, should be agreed with the person who manages Google Analytics. The options offered for each parameter can be seen in the dropdown in your account.
Checklist before BFCM
- The global settings are saved and automatic tracking is turned on.
- Each main flow is opened, message by message, to check the tracking box.
- A test email is sent to check the links of the product blocks.
- Scheduled campaigns whose UTMs need to change are paused before editing.
- Any A/B test has the Track links separately in each variation box checked.
- A shared naming convention has been agreed with the person who reads Google Analytics.
FAQ
Which UTM parameters are always enabled?
utm_source and utm_medium. The other three (utm_campaign, utm_id, utm_term) are turned on as needed.
Can you edit the UTMs of a campaign that has already been sent?
No. For a scheduled campaign, you must pause it first. For a message that has been sent, the parameters can no longer be edited.
Why do Google Analytics figures differ from Klaviyo's?
Google Analytics tracks clicks on links, while Klaviyo uses data from the store. The documentation recommends favoring Klaviyo analytics when possible.
Do UTMs work in SMS?
Yes, provided that automatic link shortening stays turned on and the links start with http:// or https://. Variation letters, however, apply only to email.
Do dynamic product blocks receive dynamic values?
No. Dynamic parameters do not apply to product blocks or data feeds. They can be added by hand to static product blocks.
Want an outside look at your tracking? We run Q4 readiness audits, or you can talk directly with the Deliver team.
Provenance and verification
Faithful English translation of the French source. Each technical claim was compared on 2026-10-06 with the raw text of the Klaviyo pages listed in sources (utm_source and utm_medium always enabled, three other Google Analytics parameters, at most five custom parameters, the 2 June 2025 change to the default utm_medium value, static and dynamic values, product blocks and data feeds excluded from dynamic values, account-wide and per-message settings, attribution of a campaign sent to several lists or segments, variation letters for email A/B tests, http or https links, SMS link shortening, impossibility of editing a sent message and the gap between Klaviyo conversion tracking and Google Analytics). The naming guidelines for BFCM are advice from Deliver, flagged as such, with no measured result.
- Sources checked on
- Reviewed by
- Claude (Claude Code session, October 6, 2026) English localization of the French source, with every vendor-documentation claim checked against the Klaviyo help pages listed in sources, reopened the same day.
- AI assistance
- Yes
- Sources
Want to apply this to your stack?
Spend 30 minutes with Charlotte to review your CRM setup, size the opportunity and leave with a practical action plan.
Book a 30-minute call →