Skip to content

Custom Fields

Custom Fields extends standard portal entities with additional data points that your organization needs. The page uses a two-panel layout: an entity tree on the left and the selected entity’s field definitions on the right.

Custom Fields page showing the entity tree on the left and a field definitions table on the right with populated rows

  • Route: /custom-fields
  • Menu Path: Settings → Customization → Custom Fields
  • Primary audience: Tenant administrators and other users with the required admin role.
  • Browse registered entities grouped by service in the left-side entity tree.
  • Select an entity to view its field definitions in the right panel.
  • Add new custom field definitions using Add Field in the right panel.
  • Edit existing field definitions to update labels, validation rules, or display settings.
  • Reorder fields by dragging rows in the definitions table.
  • Delete field definitions that are no longer needed.
  • Toggle inactive fields visible using the Show Inactive option.
  1. Open Settings → Customization → Custom Fields.
  2. Locate the target entity in the left panel by browsing the service tree or using the search box.
  3. Click the entity name to load its field definitions in the right panel.
  4. Click Add Field to open the field definition form.
  5. Configure the field code, type, label, validation, and display settings across the four tabs.
  6. Click Save — the field appears in the definitions table and becomes available on the target entity form.
  • Only entities that have registered custom-field support appear in the tree. If an expected entity is missing, confirm that its module is configured to support custom fields.
  • The field Code is a permanent identifier and cannot be changed after creation. Choose it carefully.
  • Deleting a field definition removes the template metadata. Existing data values stored against that code may be preserved in the backend but will no longer render in forms.
  • Multi-select fields require at least 2 options. Select fields require at least 1 option.

Click Add Field in the right panel after selecting an entity. A tabbed dialog opens with four sections: General, Validation, Display, and Options (Options tab appears only for Select and Multi-select types).

Add Field dialog with the General tab visible showing field code, type, label, description, placeholder, and required toggle

FieldRequiredTypeDescriptionDefaultValidation
Field CodeYesTextUnique machine identifier for the field. Must start with a lowercase letter; only letters, numbers, and underscores allowedRequired; 2–50 chars; pattern ^[a-z][a-zA-Z0-9_]*$; read-only after creation
Field TypeYesSelectData type: Text, Textarea, Number, Decimal, Date, Date & Time, Boolean, Select, Multi-select, Email, URL, PhoneRequired; read-only after creation
LabelYesTextDisplay label shown to users in forms (for the primary language)Required
DescriptionNoTextOptional hint shown below the field in forms
PlaceholderNoTextInput placeholder text shown inside the field before the user types
RequiredToggleMakes the field mandatory when the entity form is submittedOff

When the tenant has multi-language enabled, an expandable Translations section appears between the placeholder and the Required toggle. It lets you provide translated copies of the Label, Description, and Placeholder for every other supported language. Leave any field empty to fall back to the primary-language value.

Create Custom Field dialog with the Translations section expanded showing the Spanish tab and Label/Description/Placeholder inputs

FieldRequiredTypeDescription
Language tabYes (to translate)TabOne tab per supported language (other than the primary). A green dot indicates the translation is complete.
LabelNoTextTranslated label for the selected language. Empty falls back to the primary label.
DescriptionNoTextTranslated description hint.
PlaceholderNoTextTranslated placeholder text.

Create Custom Field dialog on the Validation tab showing min/max length, validation pattern, custom error messages, and the expandable Translated Validation Messages section

FieldRequiredTypeDescriptionDefaultValidation
Min LengthNoNumberMinimum character count (Text, Textarea types only)
Max LengthNoNumberMaximum character count (Text, Textarea types only)
Min ValueNoNumberMinimum numeric value (Number, Decimal types only)
Max ValueNoNumberMaximum numeric value (Number, Decimal types only)
Validation PatternNoTextRegular expression for custom format validation (Text types)Must be a valid regex
Required Error MessageNoTextCustom message shown when a required field is empty
Min/Max Length MessagesNoTextCustom messages for length violations
Min/Max Value MessagesNoTextCustom messages for value range violations
Pattern Error MessageNoTextCustom message shown when input does not match the pattern

When multi-language is enabled, the Validation tab also includes an expandable Translated Validation Messages section. It mirrors the custom error message inputs above, providing a tab per non-primary language so you can override each error message per locale. Empty fields fall back to the primary-language values.

FieldRequiredTypeDescriptionDefaultValidation
VisibleToggleShows the field in forms and viewsOn
SearchableToggleIncludes the field value in search queries for the entityOff
FilterableToggleAllows filtering the entity list by this fieldOff
Read-onlyToggleMakes the field display-only; users cannot edit the valueOff
ActiveToggleEnables or disables the field without deleting itOn

Fields — Options tab (Select and Multi-select types only)

Section titled “Fields — Options tab (Select and Multi-select types only)”
FieldRequiredTypeDescriptionDefaultValidation
Option ValueYesTextInternal stored value for the optionRequired per option
Option LabelYesTextDisplay text shown to users for this optionRequired per option
Default ValueNoSelectPre-selected option when the form opensNoneMust be an existing option value

Steps:

  1. Select the target entity from the left panel.
  2. Click Add Field in the right panel.
  3. On the General tab, enter a Field Code and select the Field Type.
  4. Enter the Label for the primary language. Optionally add a Description and Placeholder.
  5. Toggle Required on if the field must be filled before saving the entity form.
  6. Switch to the Validation tab and configure any length, value, or pattern rules needed.
  7. Switch to the Display tab and configure visibility, searchability, filterability, and read-only behavior.
  8. If the field type is Select or Multi-select, switch to the Options tab and add at least one option (two for Multi-select).
  9. Click Save. The field appears in the definitions table.

Open row actions on a field definition and click Edit to open the field definition form pre-filled with existing values.

Same fields as Creating. Field Code and Field Type are read-only after creation and cannot be changed.

Edit Field dialog pre-filled with the existing field's values, with Code and Type fields disabled

Open row actions on a field definition and click Delete. A confirmation dialog asks you to confirm the deletion.

  1. Open row actions on the target field definition.
  2. Select Delete.
  3. Read the warning: deleting the field removes the definition. Confirm by clicking Delete Field.

Note: Deleting a field removes it from all forms immediately. Existing data stored against that field code is preserved in the backend but is no longer accessible through the portal UI.