What you’ll learn: how a second hierarchical picklist powers the UTM medium and source pair, how option lists change (admins edit, then publish), and how per-taxonomy option filtering (
filter_options) shows a different subset of the same picklist to each taxonomy.What you’ll build: one two-level UTM Mediums / UTM Sources hierarchical picklist, plus two dropdown fields (utm_medium, utm_source) that form the second cascade.Prerequisites: Part 5: Hierarchical picklists.Why this matters
UTM values are where governance pays for itself. A free-textutm_source box produces facebook, Facebook, fb, and FB Ads within a month, and your analytics splinter four ways. A picklist-backed cascade produces exactly one spelling of each source, filed under the right medium. The trade-off is that the list is closed: a submitter can only pick what the published list offers, and a new source gets added by an admin, not typed into the form. This part builds the cascade and shows how that maintenance loop works. The other half of this part, filter_options, solves a different problem. Three taxonomies share the same utm_medium field, but each should only see its own medium: Email should never offer social or cpc. You wire filter_options for real in Part 8; here you just meet it.
Concepts first
Option lists are closed
A dropdown offers the options its picklist holds, and nothing else. There is no way for a submitter to type a value that is not in the list; an out-of-list value simply fails validation. That closedness is the point: it is what keepsutm_source to one spelling per source.
Admins change options by editing and publishing
When marketing launches on a new channel, an admin opens the picklist, adds the option, and publishes the governance model. Option edits behave like any other model change: they sit in the draft until you publish, and submitters see the new option once the publish goes through. The publish a revision guide covers that loop.When values move too fast for a list
Some values genuinely churn faster than any admin should be asked to keep up with. For those, a dropdown is the wrong shape. Use a Text field with Suggest from past entries turned on instead: submitters type freely, and the form suggests values the account has already approved for that field, which nudges everyone toward the same spellings without hard-blocking new ones. The suggest past values recipe shows when and how. In this tutorial the UTM vocabulary is deliberately admin-owned, so we stay with picklists.Per-taxonomy option filtering (filter_options)
filter_options hides options, per taxonomy. On a taxonomy’s copy of a dropdown field you can either include a chosen subset of codes (an allowlist: only those show) or exclude some codes (a blocklist: everything except those shows), never both. The picklist itself is untouched. This is how one utm_medium field can appear on three taxonomies and show a different single medium on each.
Step-by-step
1
Create the UTM Mediums / UTM Sources picklist
Open the
Marketing GM, click Picklists, then Create new and choose Static Picklist. Name it UTM Mediums. In the first level, add email / Email, social / Social, cpc / Paid search and ads. These are your mediums.2
Add a second level for sources
Click Add level to add a child level for sources. Under
email, add newsletter / Newsletter, drip / Drip campaign, transactional / Transactional. Under social, add facebook / Facebook, instagram / Instagram, linkedin / LinkedIn, twitter / X / Twitter. Under cpc, add google / Google Ads, bing / Bing Ads, meta_ads / Meta Ads. Save the picklist.3
Create the utm_medium Dropdown field
Go to Fields and click Create new field. Name:
utm_medium. Type: Dropdown. Picklist: pick the top (medium) level of UTM Mediums. Leave option filtering alone; you set it per taxonomy in Part 8, once the taxonomies exist. Save.4
Create the utm_source Dropdown field
Click Create new field again. Name:
utm_source. Type: Dropdown. Picklist: pick the source (child) level. Save. The editor wires the cascade to utm_medium automatically.📸 Screenshot coming soon: part 06 utm hierarchy
Check your work
- A single
UTM Mediumspicklist exists with two levels: three mediums (email,social,cpc) and the source options nested under each. - Two new fields exist:
utm_medium(Dropdown on the medium level, no filtering yet) andutm_source(Dropdown on the source level, cascading fromutm_medium). - The GM has eight fields total: the six from Parts 3 to 5 plus
utm_mediumandutm_source.
What you just built
A second cascade. The medium and source levels behave like Countries and Regions: picksocial, and the source dropdown offers only Facebook, Instagram, LinkedIn, and X / Twitter. The vocabulary is admin-owned, so every submission spells every source the same way. filter_options is ready; Part 8 sets it.
Gotchas
- A new source is an admin edit plus a publish. If marketing starts using a channel that is not in the list, an admin adds the option to
UTM Sourcesand publishes. Submitters cannot add it from the form, and the option appears for them only once the publish goes through. - A static picklist always needs at least one option. You cannot save an empty list and fill it in later; give every level at least one real option up front.
- Keep codes lowercase and stable. The code is what lands in the URL and in your analytics. Set the label to whatever reads well (
Paid search and ads), but treat the code (cpc) as permanent. filter_optionsis a per-taxonomy override, not a picklist setting. You configure it on each taxonomy’s copy of the field. Part 8 sets three different filters for the sameutm_mediumfield on three taxonomies. See filter options per taxonomy.
Next up
Part 7: Computed fields. The payoff. Wireutm_campaign, tagged_url, short_url, and qr_code into a four-level chain. For the standalone version of this cascade, see the cascading dropdowns recipe.