Skip to main content
A Tagged URL field is computed. It takes a base URL from another field, then appends query parameters whose values come from other fields on the same record. This is how you turn a plain destination into a fully UTM-tagged link like …/deals?utm_source=newsletter&utm_medium=email&utm_campaign=awareness-us.

When to use it

  • Attaching UTM parameters (utm_source, utm_medium, utm_campaign, and so on) to a campaign’s destination URL.
  • Assembling any URL from a base plus one or more field-derived query parameters.
  • Producing a tagged destination for a Short URL field to wrap, so the short link redirects to an already-tagged URL.
Don’t use a Tagged URL field to compose a plain string. If you only need to join values (for example, to build the utm_campaign value itself), use a Concatenation field.

How it is configured

A Tagged URL field is computed, so it is always required and submitters never type into it. In the field editor’s Tagged URL settings you set: Each row in URL parameters has these columns: When the submission is saved, Terminus reads the base URL, then walks the parameter list in order. For each parameter, it reads the value field that applies in this taxonomy. If that value is blank, the parameter is skipped and its key does not appear in the output. Otherwise the key=value pair is appended to the URL’s query string. Whether a parameter must have a value is decided by the value field’s own Required setting. A blank value simply leaves the parameter out.

Encoding

By default each value is percent-encoded, so a space becomes + and reserved characters are escaped. Don’t pre-encode values yourself, or they will be double-encoded. Uncheck Encode on a parameter to insert its value as-is. Use this for ad platform macros such as {campaignid} or {{campaign.id}}, or for values that are already encoded. Terminus does not check a raw value: an &, =, or # in it changes the structure of the URL, because everything after it is read as a new parameter or a fragment.

Set a parameter per taxonomy

A parameter with a Value field uses that field in every taxonomy that places the Tagged URL field. A parameter left as Set per taxonomy is an open slot: each taxonomy fills it with its own source. This lets one Tagged URL field serve several taxonomies whose campaign name, for example, comes from different fields. To fill the slots, open the Tagged URL field inside a taxonomy and choose the Taxonomy settings tab. Under Parameters, each row has a Value from choice:
  • Shared uses the field’s own value field. It is only available for parameters that have one.
  • This taxonomy lets you choose a source from the fields placed in this taxonomy. It is only available for open slots.
  • Not used leaves the parameter out of the URL in this taxonomy. You can mark any parameter as not used, including shared ones.
These choices belong to the taxonomy, so each taxonomy that places the field makes its own. Under each open slot in the field editor, a status badge shows where it stands: Needs a source in N taxonomies while any taxonomy has not decided, Set in N taxonomies once all have, or No taxonomy uses this field yet. Click the badge to see which taxonomies it covers. Publishing is blocked until every taxonomy that places the field has either a source or Not used for each open slot (“has no source in … Bind a field or mark it not used”). A shared parameter cannot be given a different source in one taxonomy. To vary it, clear its Value field on the field so it becomes Set per taxonomy. If a shared value field is not placed in a taxonomy, publishing still succeeds with a warning, and the parameter is always blank there.

Bind to a Terminus ID

When a parameter’s source is a single-select dropdown whose picklist is automated (including every picklist its rules can switch to), a Bind to control appears with two options:
  • Field value (the default) sends the selected option code.
  • Terminus ID sends the Terminus ID of the record the selection points at. This gives the parameter a stable identifier, for example a utm_id that stays the same after the campaign is renamed.
Publishing rejects a Terminus ID binding on any other kind of field. The same choice is available on the Taxonomy settings tab for a source you pick there.

A worked example

In the Campaign URL Builder, a Tagged URL field combines the campaign’s Destination URL with three UTM parameters. Base URL field is Destination URL, and URL parameters has three rows: For a submission where Destination URL is https://shop.acme.example/deals, UTM Source is newsletter, UTM Medium is email, and UTM Campaign is awareness-us-black_friday, the field computes:
The UTM Campaign value here is itself produced by a Concatenation field, and a Short URL field then wraps this Tagged URL so the campaign gets a branded short link.

Gotchas

  • The base URL field can itself be computed. Base URL field accepts URL, Tagged URL, and Short URL fields, which lets you chain them (raw URL, then tagged URL, then short URL). The trade-off is that if the upstream field produces a blank value, the Tagged URL output is empty too.
  • Parameter keys must be unique. Saving a field with a repeated key shows “Must be unique” on the duplicate, and Add parameter stays locked until keys are unique.
  • Blank parameter values are dropped, not rendered empty. If utm_source is blank on a submission, the output has no utm_source= at all rather than an empty utm_source=. To guarantee a key is always present, make its value field required.
  • Values are encoded unless you uncheck Encode. A value with spaces or reserved characters is made URL-safe automatically, so don’t pre-encode it. Uncheck Encode only for macros or already-encoded values, and keep &, =, and # out of them.
  • Query parameters already on the base URL are kept. If the base URL is …/deals?ref=partner, the output keeps ref=partner and appends your declared parameters after it. Duplicate keys are not removed; the declared parameters are appended last.
  • Renaming a parameter key only affects new submissions. Existing approved records keep their stored URL. There is no automatic backfill.