newsletter
and google for utm_source, say. Once a parameter has approved values, a link must pick one of
them. Until it has any, the parameter is open: it accepts anything the
convention’s format allows.
Keep that sentence in mind. Approving your first utm_source does not add one permitted value;
it forbids every other one at once. That is what lets a workspace adopt the library one parameter
at a time: close utm_medium today without listing every utm_term you will ever use.
The library lives on the Rules page, https://app.utmkit.co/rules, one card per parameter. Owners
and admins can approve and retire; members and viewers see the list.
Approving values
On a parameter’s card, type one value or several separated by commas and choose Approve. Each value must already follow the convention —Facebook cannot be approved under a lowercase rule —
and approving something already approved changes nothing. The list is case-insensitive, so
facebook and Facebook cannot both be approved, but the check on a link is exact: under a
convention whose casing is any, a link carrying Facebook is refused when facebook is the
approved spelling. A card with nothing approved says so:
“No values approved, so this parameter accepts anything the format allows.”
Approving changes what the next link may carry. Links already created are untouched.
What a link sees
In block mode, a link withutm_source=fb in a workspace that approved facebook and
newsletter is refused with the list in the sentence: utm_source ‘fb’ is not approved in this
workspace. The approved values are: ‘facebook’, ‘newsletter’. In warn mode the link is created
and the same sentence is reported. Either way, whoever asked — a person or an assistant — knows
what to correct towards.
Retiring a value
Each approved value has a Retire control. Retiring removes it from what the next link may use; links already created keep working and keep the value. The audit is what finds links that no longer comply, and approving the value again is the way back. If a dependency rule still allows the value under its own condition, that rule is left alone: the value stays permitted under that pairing while the general library no longer offers it. The confirmation says this too.A member whose seat is locked on a parameter may only pick from this
list. Retiring a value takes it away from them for new links; approving one gives it back.
From the API and the MCP
GET /api/v1/rules/values lists the approved values per parameter, POST /api/v1/rules/values
approves values for one parameter (additive; repeats are no-ops) and
DELETE /api/v1/rules/values/{id} retires one — and retiring the last value opens the parameter,
exactly as in the console. Reads need rules:read, writes rules:write, and the writes also
require an owner or admin behind the token. The MCP tools are list_approved_values,
approve_values and retire_value, under the same permissions.