Skip to main content

Edit Relation Forms

An Edit Relation form is a Design Studio form mode for designing the popup that captures relation attributes — the data stored on the link between two records, rather than on either record itself.

A classic example: a Project is linked to a Person. The person's name and email belong to the Person record, but their Role and Allocation % on that particular project belong to the link between the two. Those are relation attributes, and an Edit Relation form is how you lay them out.

Key Concept

Attributes belong to a record. Relation attributes belong to the link between two records. An Edit Relation form contains only relation attributes — it never edits either record's own data.

Configuring a form is always optional. Without one, Protrak shows its built-in list of relation attribute fields, which keeps working exactly as before.

This page covers designing the form. Once it's built, you attach it to any of three places, each configured separately:

Where it appearsConfigured on
Relation widget → search/link popupThe widget's Link Options table
Dashboard widget → Link Related Instance actionThe action's settings, in the Actions column
Relation widget → Edit Relation row actionThe action's settings, in the Actions column

The same form can be attached to all three. Full instructions: Edit Relation Action & Link Popup.


Step 1: Create the form and set Form Mode

  1. Go to Design Studio → Forms and click Create.
  2. Fill in Form Name, Display Name, and Type Name — the type on the other end of the relation (the related record's type).
  3. Open the Form Mode dropdown and choose Edit Relation.

Choosing Edit Relation reveals the Relation Type field.


Step 2: Choose the Relation Type

Relation Type (required) tells Protrak which relation's attributes this form is built from. It has two effects:

  • The form's component library lists the relation attributes of that relation type, and nothing else.
  • The form is only offered wherever that same relation type is in play — an Edit Relation form for Project ↔ Person never appears on a Project ↔ Document widget.
Locked after creation

Form Mode, Type Name, and Relation Type are set at creation time and locked once the form is first saved. Decide them before you start building.


Step 3: Build the form

Add containers and drop items into them, the same as any form. The component library is deliberately small:

Available in the component libraryNotes
Relation AttributesThe attributes of the relation type you selected — this is the whole point of the form
Title (Text)A heading or static/dynamic label
SeparatorA dividing line

There are no record attributes in the library. If you need to edit the related record's own fields as well, use a Quick Edit form with Relation scope instead, which can hold both.

Everything else works as it does on any form — container layout, field order, label alignment, required fields, and display conditions are all honoured when the form is rendered.


Step 4 (optional): Make the title adapt with Dynamic Text

The Title Content of a Title widget on an Edit Relation form supports Dynamic Text — placeholders that fill in real values when the popup opens, instead of showing everyone the same fixed heading. Type @ in the field to pick from the list.

Four roots are available here:

Type thisAnd users see
@RelatedType.*The type being linked to — e.g. @RelatedType.PluralNamePeople
@Type.*The type of the record the relation sits on — e.g. @Type.SingularNameProject
@RelationAttribute.*A value already entered on this form — e.g. @RelationAttribute.Role
@User.*Something about the signed-in user — e.g. @User.FirstName

So a title of:

Assign @RelatedType.PluralName to this @Type.SingularName

reads as "Assign People to this Project" — and stays correct if the types are ever renamed.

@Instance isn't offered here

A link popup applies one set of values to every record selected, so there's no single record for @Instance.* to point at. Use @RelatedType.* for the type being linked, and @Type.* for the record you're linking from.

Where @Type comes from

@Type.* is the type of the parent record whose relation grid you're on. If a relation grid is placed somewhere with no parent record — a type dashboard, for instance — @Type.* has nothing to resolve against and quietly renders as empty, along with any punctuation that was only there to separate it.


What users see

Wherever the form is attached, it replaces Protrak's built-in relation attribute list. Users get your containers, your field order, and your layout.

Behaviour worth knowing:

  • Required fields are enforced by the form. If a required relation attribute is empty, the popup's confirm button stays disabled until it's filled.
  • In a link popup, one set of values applies to the whole selection. If a user selects eight records to link, the values entered once on the form are written to all eight links.
  • If the form can't be loaded, the popup falls back to the built-in relation attribute list. Users are never blocked by a missing or deleted form.

Next Steps