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.
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 appears | Configured on |
|---|---|
| Relation widget → search/link popup | The widget's Link Options table |
| Dashboard widget → Link Related Instance action | The action's settings, in the Actions column |
| Relation widget → Edit Relation row action | The 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
- Go to Design Studio → Forms and click Create.
- Fill in Form Name, Display Name, and Type Name — the type on the other end of the relation (the related record's type).
- 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.
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 library | Notes |
|---|---|
| Relation Attributes | The attributes of the relation type you selected — this is the whole point of the form |
| Title (Text) | A heading or static/dynamic label |
| Separator | A 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 this | And users see |
|---|---|
@RelatedType.* | The type being linked to — e.g. @RelatedType.PluralName → People |
@Type.* | The type of the record the relation sits on — e.g. @Type.SingularName → Project |
@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 hereA 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.
@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
- Make the form available to users: Edit Relation Action & Link Popup
- Full placeholder reference: Dynamic Text
- Edit a related record and its relation attributes together: Quick Edit Forms
- All form modes and the Form Builder: Forms
- Return to the module overview: Admin Configuration Guide