What it is
UTM Rules is the validation engine that runs whenever a link is created or updated. One rule set per workspace. It applies in this order:- Force lowercase (default ON) -
Summer_Sale→summer_sale - Space replacement (default
_) -summer sale→summer_sale - Max length (default 100) - reject values longer than this
- Prohibited values - fail if value contains any banned term
- Allowed characters - fail if value doesn’t match the allowed pattern
When to use it
- Marketing team of more than one person - drift is guaranteed without rules.
- Anyone publishing UTMs to a shared analytics tool (GA, Mixpanel) where casing/typos create duplicate rows.
- Agencies enforcing client-specific naming conventions.
How to configure
Set the basics
Lowercase all values on save.
Replace runs of whitespace with this. Common values:
_, -, +.
Per-field character limit. 100 is a sensible default for human-readable UTMs.
prohibitedValues
Substrings that fail validation. Case-insensitive contains-match.
allowedCharactersRegex
Optional. Values that don’t match this pattern are rejected.

Real-world example
Force consistency across the whole team:- Force lowercase: on
- Space character: underscore
- Allowed characters: letters, numbers, underscores, hyphens only
- Blocked values: test, draft, tbd
Summer Sale! slipping into prod.
Common mistakes
Allowed-characters regex too tight
Allowed-characters regex too tight
^[a-z]+$ rejects digits. Most teams want ^[a-z0-9_-]+$. Test your regex on existing valid values before saving.Edge cases
Rules cleaning vs validation. Steps 1-2 (lowercase, space replacement) transform values silently. Steps 3-5 (length, prohibited, allowed characters) reject the save with errors.
Default rules ship per workspace. Every new workspace starts with force lowercase on, underscore for spaces, and a 100-character max length automatically.