Field Types & Properties
Overview of all field types supported by the form, including the settings and behavior of each.
Common Field Settings
A field is created by dragging a list column from the palette into a section. The designer automatically chooses the field type (fieldType) and its basic settings from the SharePoint column type. Common options are in the inspector (click a field); see Field Inspector.
| Inspector Option | Config Key | Meaning |
|---|---|---|
| Custom label | customLabel | Label displayed in the form. Resolution order: customLabel (including translation into the form language), then the SharePoint column title (e.g., "Project Code"), and finally the internal name. SharePoint is not modified. |
| Description and help | description | Text shown below the field. |
| Placeholder | placeholder | Gray text inside an empty input. On choice fields, it replaces "Select…". |
| Width in section | colSpan | 1 to 12 grid units; see Columns and Field Width. |
| Visible | defaultVisible | Default visibility (default: yes). A hidden field is not displayed and not validated. |
| Required | defaultRequired | Default required state. Inherited from the column settings when the field is added. |
| Read-only | defaultReadOnly | The field is locked. Not offered on non-editable widgets or calculated columns. |
| Default value (new item) | defaultValue | Applied only when creating a new item. The inspector provides a type-specific editor: text, number, yes/no, date (the Today's date toggle writes @Today; for date-time fields, 00:00 is used), choice selection (multi-select for multi-choice), and for person fields the Current user toggle (@Me). Token casing is ignored. |
| (JSON only) | fieldProps | Additional properties: maxLength, includeTime, allowMultiple. Values from the column settings are re-synchronized every time the form loads. |
At runtime, visibility, required state, and read-only mode can also be changed by rules. A value can be set by a rule, expression, or script.
Behavior in New, Edit, and Display Modes
- New: the field is empty or has
defaultValue. Required fields are checked on save. Only what you fill in is saved. - Edit: the field displays the item's value. Only modified fields (and fields with rule-enforced values) are saved, so changes made in the meantime by someone else to columns you did not touch are not overwritten.
- Display: all fields are read-only. In this mode, the form never marks unsaved changes and does not warn on close. From Display mode, the Edit button switches to Edit mode.
- A field marked Read-only in the configuration is not saved to SharePoint unless a rule unlocks it.
Validation
On save, fields are checked in this order and the first error is shown under the field:
- Maximum length (
fieldProps.maxLength): for SharePoint text columns with a length limit. The input also prevents typing more characters. - Format (
validationPattern,validationMessage): regular expression for text, URL, and multi-line text. Checked only when a value is entered. Invalid regex syntax does not block validation. The error message stays visible while the value is invalid (even after leaving the field and on optional fields), disappears once fixed, and an invalid value is not saved. - Required: a field is required when it is visible, required, and not read-only. Empty text, unselected person, lookup, or term, zero rating, and attachments with no files produce an error.
In the inspector for text, URL, and multi-line text, the Format validation (Regex) section includes quick presets: Email, Phone (CZ), ZIP code, Company ID (8 digits), and URL (https). A preset fills in both the pattern and an error message that you can customize. Messages can be translated; see Translations & Multilingual.
Required fields are marked with an asterisk, a Required badge, or not at all, according to the requiredIndicator setting. When errors exist, the form switches to the first tab with an error, expands any collapsed section, and scrolls to the field. Saving can also be blocked by rules using the blockSave action.
For a Yes/No field, Required does not enforce anything because an unchecked box has a valid "no" value. To require checking the box, use a blockSave rule.
Item Display
In Display mode, standard fields are not rendered as grayed-out inputs, but as a readable "card": a small gray label and below it (or next to it when labels are on the left) a full-contrast value. Required fields in Display mode do not show an asterisk or a Required badge because nothing is being filled in. The value remains unchanged in the form and no unsaved changes are reported. Text wraps and follows the form language (numbers and dates are formatted accordingly). Numbers are displayed without rounding. Rich-text multi-line fields (HTML) are displayed as plain text without tags.
- Text, number, calculated column, rating, location: plain text; numbers with thousand separators (currency if configured on the column).
- Multi-line text: plain text with line breaks preserved.
- Date and time: date without time unless time is enabled on the field.
- Choice (single or multiple) and managed metadata: each value as a badge.
- Yes/No: green checkmark icon and "Yes", otherwise a gray cross-in-circle icon and "No". A dash is shown only when the value is genuinely missing.
- User and people: person with email (side by side for multiple people).
- Lookup: value text (comma-separated for multiple).
- Hyperlink: clickable link; unsafe URLs (such as
javascript:) are shown as plain text only. - Empty value and failed-to-load field: gray dash (screen readers announce "Not filled").
Locked Fields in Edit and New
Fields locked by a rule (setReadOnly) and fields that failed to load render fully readable text in Edit and New modes. Single-line text, multi-line text, and number are read-only inputs with normal text color. Choice, date, Yes/No, person, lookup, taxonomy, rating, location, and calculated fields display the formatted value in a locked box. The value can be selected and copied, the box is reachable via keyboard (Tab), and screen readers announce the field as read-only. Locked fields skip max-length and pattern validation so imprecise values from SharePoint do not block saving. The field stays in the form, its value is saved unchanged, and locking alone does not mark the form as dirty.
Attachments, repeating table, SharePoint image, and widgets (KPI, stepper, related items, etc.) have their own Display mode appearance and are unaffected by this layout.
Field Types
Widgets (elements that are not list columns) have their own pages; see Widgets Overview. The repeating table is described on its own page.
Single line of text text
SharePoint Single line of text column (Text). This is also the fallback type for columns the form does not recognize; see Unsupported Types.
- Settings: common options and Format validation (Regex). Maximum length is read from the column (up to 255 characters for a SharePoint column).
- New and Edit: single-line input with placeholder. Display: locked input with value.
- Limitation: the max-length exceeded message is hardcoded in Czech.
{
"internalName": "Telefon",
"customLabel": "Telefon",
"fieldType": "text",
"colSpan": 6,
"defaultRequired": true,
"placeholder": "+420 123 456 789",
"validationPattern": "^(\\+420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$",
"validationMessage": "Zadejte telefonní číslo ve formátu +420 123 456 789."
}
Number number
Number and Currency columns (Number, Currency).
- Numeric input. An empty field saves as empty (
null), as does an invalid number. - Minimum, maximum, decimal places, and currency are not set or enforced by the form—they are handled by the SharePoint column on save. Use a
blockSaverule for custom constraints. - A number field can be used in expressions, as a KPI source, or in a repeating table column.
{
"internalName": "Cena",
"customLabel": "Cena bez DPH",
"fieldType": "number",
"colSpan": 4,
"defaultRequired": true
}
Choice choice
Choice column with a single value (Choice) or Multiple choices (MultiChoice). By default it renders as a dropdown; MultiChoice allows selecting multiple values. Display format and custom fill-in values are read from SharePoint (see below).
- Available values are in
options. The designer reads them from the column when adding the field to the layout. In the inspector, the Option order block lets you reorder choices with up/down buttons without adding or renaming values (which come from the SharePoint column). - The value is saved as text. Clearing the choice saves an empty value.
- Display as (
fieldProps.choiceFormat):dropdown,radio(radio buttons, single value only), orcheckboxes(multiple values; the value remains an array of strings). When adding a column to the form, the format is taken from SharePoint (Choice column based on Display choices using,MultiChoiceas checkboxes). You can change it in the field inspector: single-value offers dropdown and radio buttons; multi-value offers dropdown and checkboxes. Without a setting, a dropdown is rendered (multi-select for multi-value), keeping older forms unchanged. An invalid combination (radio buttons on a multi-value column) renders as checkboxes and is corrected on form load. - Fill-in value (
fieldProps.fillIn): if the SharePoint column allows custom values (Allow 'Fill-in' choices,FillInChoice), a Custom value: item with a text box is offered at the end. For single-value, the typed text is saved; for multi-value, it is appended to the array. A saved value not among the options is shown as the custom value (for multi-value, as an extra checked item) and saved unchanged as plain text. This is configured only on the SharePoint column; the inspector shows it for information andfillInis synchronized on form load. A required field requires a non-empty value in all three formats; Display mode still shows badges. - Multiple choices (
MultiChoice): the field hasfieldProps.allowMultiple: true, and selected values appear as comma-separated text (also in Display mode and on locked fields). The value is saved as an array of strings, and an empty selection as an empty array. A required field needs at least one selected value. Older configurations where this field was unsupported (read-only) are automatically upgraded on form load. - Value colours in display mode (
choiceColors): in the field inspector, block Value colours in display mode, each choice can get a badge colour (preset keyblue,green,amber,red,purple,teal,slateor a custom HEX). A map such as{ "Done": "green", "Blocked": "red" }is used only in the read-only display; a multi-choice field gets one badge per value. A value without a colour keeps the default grey-blue badge. The Default button removes a colour. - Option synchronization: on every form load,
optionsis synced with the column's current choices. New SharePoint choices are appended at the end (in SharePoint order), and choices no longer in the column are removed from the list. The order of retained choices in the configuration is preserved. If an item holds a removed choice value, it is still displayed (in Edit and Display) and not lost on save; it just cannot be selected again once deselected. Choices are plain text without custom labels or translations.
{
"internalName": "Status",
"customLabel": "Stav",
"fieldType": "choice",
"options": ["Nový", "Ke schválení", "Schváleno", "Zamítnuto"],
"fieldProps": { "choiceFormat": "radio", "fillIn": true },
"colSpan": 6
}
Yes/No boolean
Yes/No column (Boolean). Displayed as a checkbox with the field label.
- A new form starts unchecked ("no") unless
defaultValueis set. - Setting Required does not force checking the box; see Validation.
- In rule conditions, compare against
trueandfalse.
{
"internalName": "Urgentni",
"customLabel": "Urgentní požadavek",
"fieldType": "boolean",
"defaultValue": false
}
Multi-line text multiline
Multiple lines of text column (Note).
- A 4-line text area (3 in compact density) that the user can resize vertically. It is plain text; the editor does not offer rich formatting or inline images.
- Supports Format validation (Regex) like single-line text. Maximum length is enforced only on
Textcolumns. - The inspector also includes a Field display mode toggle: Multi-line text or Table (JSON). The latter turns the field into a repeating table that stores data as JSON in the same column.
{
"internalName": "Poznamka",
"customLabel": "Poznámka",
"fieldType": "multiline",
"description": "Uveďte důvod požadavku.",
"colSpan": 12
}
Date and time date
Date and Time column (DateTime) in date-only or date-and-time format.
- Input with a calendar date picker (opens on click). If the column includes time, a time input is also shown (
fieldProps.includeTime). The form syncs the format with the column on every load. - The value is stored as a SharePoint timestamp and converted to the browser's local time.
- In Display mode and in Related Items / Documents widgets, dates are formatted according to the form language: date only, or date and time (hh:mm) based on the column format. A "date only" value never shifts by a day due to time zones.
defaultValue: "@today"inserts today's date. Best suited for date-only fields.
{
"internalName": "Termin",
"customLabel": "Termín dodání",
"fieldType": "date",
"defaultValue": "@today",
"fieldProps": { "includeTime": false }
}
User user
Person or Group column (User, UserMulti). Uses the same picker as people; see its description there.
- Single or multiple people depending on the column (
peopleConfig.allowMultiple). defaultValue: "@Me"prefills the signed-in user.
{
"internalName": "Zadavatel",
"customLabel": "Zadavatel",
"fieldType": "user",
"defaultValue": "@Me",
"peopleConfig": { "allowMultiple": false }
}
People and Groups Picker people
People and groups picker with directory search. The same component is used by user.
- Search: the user types a name, email, or group name. Results load from the first character and show name, email, or job title. Groups are marked with a Group badge.
- Multiple people:
peopleConfig.allowMultiple(matches the SharePoint column). A selected person is removed via the close icon next to their name. - Types:
peopleConfig.principalTyperestricts search toUser,SharePointGroup, andSecurityGroup. In the user field inspector, choose "Users only" (["User"]) or "Users and groups" (default, unrestricted); finer group type selection can be set in JSON. - Display: people are read-only. A required field requires at least one person.
- User IDs are written to SharePoint.
{
"internalName": "Schvalovatele",
"customLabel": "Schvalovatelé",
"fieldType": "people",
"peopleConfig": {
"allowMultiple": true,
"principalType": ["User", "SecurityGroup"]
}
}
Lookup lookup
Lookup column (Lookup, LookupMulti) referencing items in another list.
Settings
| Key | Meaning |
|---|---|
lookupConfig.lookupListId | Target list ID (inherited from the column). |
lookupConfig.lookupField | Column of the target list whose value is displayed (default Title). |
lookupConfig.allowMultiple | Multiple item selection (matches the column). |
lookupConfig.dependsOnField | Parent field for cascading. |
lookupConfig.filterByField | Target list column matched against the parent field's value. |
Cascading Lookup (Dependent List)
Cascading lookups require a Pro license: without it, the cascading lookup is locked in the palette, cascading cannot be enabled in the lookup inspector (disabled with a Pro badge), and the designer shows a warning on existing cascades. The form still evaluates them at runtime, while form admins see a notice (Licensing).
In the lookup inspector, choose Cascade · Depends on field (the parent field can be choice, lookup, text, or number) and Filter column in target list. Example: the City field depends on Country and filters the cities list by the Country column.
- Until the parent field is filled, the dropdown is empty and shows First select a value in "Country".
- When the user changes the parent value, the selected value of the dependent field is cleared.
- An existing cascade can still be edited or removed in Community edition.
- A misconfigured cascade (missing parent field, cycle) is ignored at runtime and the field offers all options. Form admins see a notice and the designer shows a toolbar warning; see Configuration Warnings.
Large Lists: Search Above 500 Items
If the target list has more than 500 items, the form does not load the entire list. The field switches to search-as-you-type:
- The dropdown starts empty with the text Start typing to search….
- Searches from 2 characters after a short debounce (300 ms). Up to 50 best matches are shown. Slower older responses never overwrite newer ones.
- Text columns match by prefix ("starts with"); numeric columns match by exact value. If nothing matches, Nothing found. is displayed.
- Selected values always remain visible. Cascading works in this mode too: search is restricted to items matching the parent value.
For large lists, choose the display column (lookupField) that users search by, and index it on the target list if the list exceeds 5,000 items.
{
"internalName": "Mesto",
"customLabel": "Město",
"fieldType": "lookup",
"lookupConfig": {
"lookupListId": "00000000-0000-0000-0000-000000000000",
"lookupField": "Title",
"dependsOnField": "Zeme",
"filterByField": "Zeme"
}
}
Managed Metadata (Taxonomy) taxonomy
Managed Metadata column (TaxonomyFieldType, TaxonomyFieldTypeMulti).
- Settings:
taxonomyConfig.termSetId(term set), optionallyanchorId(root term from which the tree starts), andallowMultiple. Values are inherited from the column. - Selection: expandable term tree from the Term Store with a Filter terms… box. For multiple values, selected terms appear in a list and are removed with a close icon.
- Saving: terms are written via the column's hidden note field in the same request as the other fields, even when creating a new item. Saving is therefore atomic: either everything saves or nothing does.
- Errors: if terms fail to load, the field offers Try again.
{
"internalName": "Oddeleni",
"customLabel": "Oddělení",
"fieldType": "taxonomy",
"taxonomyConfig": {
"termSetId": "00000000-0000-0000-0000-000000000000",
"allowMultiple": false
}
}
Attachments attachments
List item attachments. This field has no column; it is a built-in list feature.
- Adding: drag files into the Drop files here or click to browse area, or click Add attachment. New files are marked To upload and are uploaded only when the form is saved.
- Removing: clicking the close icon on an existing attachment marks it Marked for deletion on save. Before saving, Undo cancels the removal.
- Checks: empty files (0 B), filenames with disallowed SharePoint characters, and filenames that already exist on the item are rejected with a message.
- Required: at least one attachment must remain (an existing one not marked for deletion, or a new one). The message is hardcoded in Czech.
- Display: list of attachments with links to open them, without editing controls.
- On save, attachments are uploaded after the item is saved. During concurrent edits, the current item version is used so uploading attachments does not trigger a false conflict.
{
"internalName": "Attachments",
"customLabel": "Přílohy",
"fieldType": "attachments",
"colSpan": 12
}
Hyperlink url
Hyperlink or Picture column (URL) in hyperlink format (picture format maps to spImage).
- Two inputs side by side: address (https://… or /sites/…) and display text (Link display text, optional). On save, empty display text is replaced with the URL.
- Supports Format validation (Regex), which validates the URL. The URL (https) preset requires an address starting with
http://orhttps://. Without validation, the form does not check URL format. - Display: clickable link that opens in a new window. URLs with unsafe schemes (such as
javascript:) are rendered as plain text only and are not clickable links.
{
"internalName": "Web",
"customLabel": "Webová stránka",
"fieldType": "url",
"validationPattern": "^https?://.+",
"validationMessage": "Zadejte adresu začínající http:// nebo https://."
}
Image (SharePoint) spImage
Image column (Thumbnail) and URL columns formatted as pictures.
- In New and Edit forms, shows an input for the image URL (Image URL) and a preview below it (up to 180 px high).
- In Display mode, shows only the preview, or No image if empty. The form can read both JSON-formatted column values and plain URLs.
- The URL is written to SharePoint. Verify writing to an Image column on a test list, or set the field to read-only.
- For an image not bound to a column (for example, a photo by item ID), use the Image widget.
{
"internalName": "Foto",
"customLabel": "Fotografie",
"fieldType": "spImage",
"defaultReadOnly": true
}
Rating rating
Rating columns (Rating, AverageRating, RatingCount).
- Five stars with "3 / 5" or Not rated next to them. Clicking a star sets the rating; clicking the already selected star clears it.
- A rating of 0 is saved as an empty value. A required field requires a value from 1 to 5.
- Columns computed by SharePoint itself (average rating, rating count) are usually read-only in the form.
{
"internalName": "Spokojenost",
"customLabel": "Spokojenost zákazníka",
"fieldType": "rating"
}
Calculated Column calculated
Calculated column (Calculated). The value is computed by SharePoint.
- Always read-only with a gray background and bold text. Never saved.
- SharePoint's internal prefix (such as
float;#) is stripped from the value. In New forms and when empty, a dash is displayed. - The value does not recalculate when other fields change; you see the value stored on the item. For live calculations in the form, use a rule with the setExpression action.
{
"internalName": "CelkemSDph",
"customLabel": "Celkem s DPH",
"fieldType": "calculated"
}
Location location
Location column (Location).
- Input for place name, with street and city below it. Country and coordinates are displayed if present on the item and preserved on edit.
- When displayable data exists, a View on map link appears next to the address, opening Google Maps in a new window (by coordinates if available, otherwise by address).
- Saved as JSON containing name, address, and coordinates. An empty location saves as empty.
- A required field requires name, street, or city. In Display mode, street and city inputs are hidden and you see the name and map link.
{
"internalName": "Pobocka",
"customLabel": "Pobočka",
"fieldType": "location",
"placeholder": "Název pobočky"
}
Unsupported Types and Read-Only Fields
Columns the form does not recognize (such as Guid, Counter, Computed) enter the palette as type text marked with fieldProps.unsupported and locked Read-only. The form renders them as text and never saves them, so they will not overwrite SharePoint values.
- Columns that SharePoint marks as read-only (such as Created, Modified By, ID) are omitted from the auto-generated default layout. You can add them manually from the palette (System filter); they appear read-only.
- Column values that failed to read when loading the item are also read-only and optional; see Unloaded Fields.
- If you need to edit a column of an unsupported type, edit it in SharePoint or replace it with a supported type.