Skip to main content
Findable includes a full-featured prompt template system for creating reusable, parameterized prompts with rich input forms.

Prompt Templates

A prompt template (IPromptTemplate) consists of:
  • Content — Markdown text with {{variableName}} placeholders
  • Variable Specs — Rich input definitions (IPromptVariable[]) that describe how each placeholder should be rendered as a form control
  • Tags — For organization and search
  • Scope — Personal (creator-only) or Shared (ACL-controlled)
  • Groups — Templates can be organized into prompt groups with drag-and-drop ordering

Variable Types

Each variable has a type that determines the input control rendered in the form: Basic Types (always available):
TypeControlDescription
textTextFieldSingle-line text input
multilineTextAreaMulti-row text with configurable rows
numberNumeric inputWith optional min/max constraints
selectDropdownSingle-select from options list
multiselectMulti-select chipsMultiple selections from options list
booleanToggle switchTrue/false input
dateDate pickerCalendar date selection
fileFile uploadSingle or multiple file attachments
principalAzure AD pickerUser and/or group selection
Advanced Types (require advanced mode toggle):
TypeControlDescription
rangeSliderNumeric range with step control
hierarchyTree builderNested structure input (org charts, nested lists)
datetimeDate+Time pickerCombined date and time selection
timeTime pickerTime-only selection
hiddenNone (invisible)Pass data without UI — injected silently
passwordMasked inputSensitive text entry
tableEditable tableStructured or unstructured tabular data entry
repeaterDynamic listAdd/remove rows of sub-field groups

Select Option Formats

Select and multiselect variables support three option formats:
  • Simple strings["Option A", "Option B"]
  • Grouped options{ group: "Fruits", items: ["Apple", "Banana"] } for hierarchical dropdowns
  • Rich options{ value: "opt1", label: "Option 1", description: "Help text", icon: "CheckCircle", disabled: false } for metadata-enhanced options

Dynamic Options Sources

Instead of static options, select/multiselect variables can populate from system objects at runtime:
SourcePopulates From
modelsAI Model Endpoints
searchEndpointsAzure AI Search Endpoints
dataPlatformConnectionsSQL/Database Connections
mcpServersMCP Server Registry
toolsTool Providers

AI-Generated Options

Individual select/multiselect variables can have AI generate their options at runtime:
  • aiPopulate — Enable AI-generated options for this variable
  • aiPrompt — Prompt sent to AI (supports {{variable}} references from flow context)
  • aiModelEndpointId — Optional model override
  • aiOptionsCount — Number of options to generate (default: 5)

Conditional Logic

Variables support dynamic show/hide/require/disable rules based on other field values:
{
  "conditionals": [{
    "field": "department",
    "operator": "equals",
    "value": "Engineering",
    "action": "show"
  }]
}
Supported operators: equals, not_equals, contains, not_contains, greater_than, less_than, is_empty, is_not_empty, in, not_in Supported actions: show, hide, require, disable, enable

Layout & Visual Options

  • Widthfull, half, third, quarter for responsive grid layout
  • Variantdefault, radio, chips, buttons for select/multiselect/boolean display
  • Ordering — Explicit order field for display sequence
  • Grouping — Visual grouping via the group field

Text Validation

Text and multiline variables support validation presets: email, url, phone, ipv4, ipv6, subnet, uuid, alphanumeric, numeric, or custom (regex pattern).

Chat-Specific Prompts

Each chat can be assigned a prompt group from the Prompt Library via the promptGroupId field on the chat configuration. This surfaces the group’s prompt templates in the chat’s prompt selector, giving each chat a curated set of prompts without duplicating data.