Assist Text
Assist text fields store free text and suggest values while the user types. Use one when a value repeats across records but is not a fixed option list: job titles, project names, hand-typed categories, or common remarks.
The user can always save text that is not in the suggestions — the field never restricts input to the list. When only the configured options may be saved, use a Select or Radio field instead.
Basic Settings
| Setting | Description |
|---|---|
| Name | The field label shown to users. It is required and should describe the business meaning of the field |
| API Name | The stable technical name used by data APIs, scripts, formulas, imports, and integrations. It is required |
| Required | Requires users to provide a value before the record can be saved |
| Readonly | Shows the field but prevents users from editing it |
| Disabled | Makes the field unavailable for normal use |
| Hidden | Stores the field while hiding it from normal form pages |
The flag settings affect each other. For example, a field cannot be both required and hidden, and a readonly field cannot also be required, disabled, or hidden.
Suggestion Source
| Source | Description |
|---|---|
| Preset List | Suggestions come from the text entries maintained on the field itself |
| Studio Script | Suggestions are calculated by a Studio server script from the current input and the draft values |
Preset List
| Operation | Description |
|---|---|
| Add Preset | Adds an empty row; type the text to suggest |
| Delete | Removes that preset from the field |
Each preset is stored twice, as its label and its value, and both are the text the user sees and inserts. Presets are suggestions only: the user can still type and save any other text.
Studio Script
| Item | Description |
|---|---|
| Script | The Studio script that produces the suggestions |
| Entry File | The entry file inside the script; suggestions are produced by the main function of that file |
- Select both the script and the entry file: saving the field is blocked while either is missing
- The script returns
{ suggestions: ["Suggested text"] }. Whitespace-only, empty, and duplicated texts are dropped, order is preserved, and at most 100 texts are used per execution - The script runs for the current query after the user types; the runtime debounces queries by 250 ms and never calls it for an empty input
- A failing script leaves the suggestion list empty without blocking free-text input
- The runtime also matches suggestions case-insensitively, so a script can return candidates and let the runtime narrow them
Assistant fields read the current draft values through the payload, so suggestions can depend on other fields. The full payload, the result contract, and a ready-to-run example are documented in Autocomplete suggestions.
Suggestion scripts do not run in readonly tables, detail views, or filter conditions.
Input Settings
| Setting | Description |
|---|---|
| Placeholder | Prompt text shown in the input before users enter a value |
| Max Length | Maximum number of characters allowed for the saved text. Leave it empty when there is no upper limit |
| Allow Clear | Shows the clear action so users can empty a filled field |
Guidance
Use Assist Text for short guidance that stays visible while the field is filled, for example which values are commonly expected.
Runtime Behavior
| Behavior | Description |
|---|---|
| Typing | Suggestions appear after the user types; focusing an empty field shows none |
| Selecting a suggestion | Inserts that exact text into the field |
| Free text | Any text can be saved, including text that was never suggested |
| Validation | Required and max length are validated against the saved text |
| Readonly contexts | Readonly tables, detail views, and filter conditions show the stored text and do not request suggestions |
| Default value | Assist text fields have no default value config; see Default Value Config |
Stored Value
The value is plain text with dataType: 'string', so scripts, formulas, exports, and analytics treat it like text. See String Field Types for the shared string contract.