Skip to main content
A Concatenation field is computed. It joins the values of other fields on the same record, in the order you list them, separated by a character you choose. The classic use is a campaign name like awareness-us-black_friday, built from a few dropdowns and a text field.

When to use it

  • Building one canonical string out of several inputs, for example a UTM campaign name from goal, country, and a short label.
  • Producing a deterministic identifier that should always follow the same shape across submissions.
  • Feeding a clean value into a Tagged URL parameter or a Short URL slug.
Don’t use a Concatenation field to attach query parameters to a URL. The output is a plain string and is not URL-aware. Use a Tagged URL field, which handles the base URL and parameter encoding for you.

How it is configured

A Concatenation field is computed, so it is always required and submitters never type into it. In the field editor you set: Each part references another field, not a literal string. Adding the same field twice is prevented, and you cannot add a new part until every existing part has a field selected. When the submission is saved, Terminus reads each referenced field’s current value on that record, applies your empty-value rule, and joins the results with the separator.

A worked example

In the Campaign URL Builder, a utm_campaign Concatenation field joins a goal dropdown, a country dropdown, and a campaign label into one tracking string.
For a submission where goal is awareness, country is us, and campaign_label is black_friday, the field computes:
If the submitter leaves country blank, remove_extra_separators: true drops that part and the separators around it collapse:
Without remove_extra_separators, the same blank value would produce awareness--black_friday (two dashes where the country used to be). Switch to empty_field_replacement instead when you want a visible placeholder like na in that gap. The resulting utm_campaign value is then a clean input for the utm_campaign parameter of a Tagged URL field.

Gotchas

  • You cannot use both empty-value strategies at once. remove_extra_separators and empty_field_replacement are mutually exclusive. The editor hides the replacement input while “Remove extra separators” is on.
  • Parts can only reference other fields. There is no literal-text part. To inject a fixed string, use a Constant field as one of the parts, or put the character in separator (it then appears between every part).
  • The separator is inserted as-is, not URL-encoded. If the output flows into a URL, keep the separator URL-safe (-, _, .) and avoid spaces or &. Encoding only happens later, inside a Tagged URL field.
  • A part that points at a missing or blank field contributes nothing useful. With remove_extra_separators off, a blank part becomes an empty segment; with it on, the part is dropped. Reordering or removing parts only affects records created afterward; existing approved records keep their stored value.