Field options
Every field you add to a form has a type (what
shape of data it captures), an optional parent
(for grouping), and a list of optional
validators. Some types add their own
configuration block on top — signatures, scans, and prompts
all have extra editors that appear when you pick those types.
Populating a new field
-
Open Captis Admin → the form you want to edit →
Field Definitions.
-
Click + in the left list. A new draft field
appears with a generated UID and a Field ID you can rename.
-
Fill in Field ID (human-readable key used in
schemas and PDF data binding) and Label
(what the user sees).
-
Pick a Type from the dropdown
(see the table below).
-
Optionally pick a Parent field (only repeating
groups and groups can be parents).
-
Add any Validation rules and tenant-specific
flags (Contains PII, Inheritable across forms,
etc.).
-
Save. The field is now available to assign in
the Wizard and to calibrate on the PDF.
Field ID vs UID. The Field ID is a label you can
rename; the UID is the immutable identity Captisio uses to track
cross-references. Renaming a Field ID never breaks wizard or
calibration links.
Field types
Each type maps to a JSON-schema shape and a renderer in the
form-fill app + PDF generator.
| Type | What it captures | Notes |
text |
Single-line string |
Default type. Suits names, IDs, phone numbers. |
multiline |
Multi-line string |
Paragraph input; respects line breaks on the printed PDF. |
date |
Date string |
Format chosen via a validator (MM/dd/yyyy, ISO, etc.). |
checkbox |
Boolean |
Single checkbox; renders as a checkmark on the PDF when true. |
boolean |
Boolean (with labels) |
Yes/No-style toggle with admin-defined True label and False label. |
signature |
PNG signature image |
Draw or type. Supports per-signature watched-fields, cascade chains, paired date field, and resign-on-edit toggle. |
repeatingGroup |
Array of rows |
Acts as a container. Child fields render once per row; the row count is admin-capped via Max rows. |
group |
Single-row composite |
Same nesting as a repeating group but always exactly one row. Used to bundle related fields under a shared header. |
scan |
Photo / document image(s) |
Camera, photo-library, or file source. Optional OCR template extracts text into sibling fields. |
staticText |
Admin-defined static content |
Not user-editable; renders the field’s Default value on every printed PDF. Useful for footers and disclaimers. |
missingFieldsWarningBox |
Renderer-filled warning box |
One per form. Filled at render time with the missing-required field list when the resolved policy permits warn-and-submit. |
missingFieldsWarningIcon |
Per-field warning glyph |
Bound to a specific field. Renders a colored glyph next to that field on the PDF when it’s required + empty. |
prompt |
Guided-question element |
Inline expand-on-focus card with one of five answer kinds.
See Wizard & rules for the
full prompt model, including per-choice branching content
and per-choice populate-target writes.
|
Prompt answer kinds
When you set Type = prompt, an additional
configuration block appears. Pick an Answer kind:
| Answer kind | Stored shape |
yesNo | boolean |
number | num (min/max/step inputs) |
pickOne | string (chosen option value) |
pickMany | list of strings |
shortText | string |
Validators
Validators run at form-fill time and on submit. Add as many as you
like; they all have to pass. Date format validators check the
input shape; date semantic validators check the resulting date.
Date formats
| Validator | Format |
dateMMddyyyy | MM/dd/yyyy |
dateMMddyy | MM/dd/yy |
dateMMyyy | MM/yyyy |
dateYyyy | yyyy |
dateMdySlash | M/d/yyyy (flexible) |
dateMdyDash | M-d-yyyy (flexible) |
dateMdyDot | M.d.yyyy (dot-separated) |
dateIso8601 | yyyy-MM-dd |
dateMonthDdYyyy | Month dd, yyyy |
dateMonthYyyy | Month yyyy |
Date semantics
Pair these with a format validator above.
| Validator | Constraint |
dateNotInFuture | value ≤ today |
dateNotInPast | value ≥ today |
dateInPast | value < today |
dateInFuture | value > today |
dateInRange | minDate ≤ value ≤ maxDate (ISO yyyy-MM-dd params) |
dateBeforeField | value < other field’s parsed date |
dateAfterField | value > other field’s parsed date |
dateOnOrBeforeField | value ≤ other field’s parsed date |
dateOnOrAfterField | value ≥ other field’s parsed date |
Phone
| Validator | Shape |
phoneUS | (xxx) xxx-xxxx |
phoneUSPlain | 10 digits |
phoneE164 | +1xxxxxxxxxx (E.164) |
phoneIntl | +xx... (any country) |
Height
| Validator | Examples |
heightInches | 72 or 72″ |
heightFeetInches | 6′0″ or 6 ft 0 in |
heightCm | 182.5 cm |
Numbers & text length
| Validator | Params / shape |
numberRange | min, max |
minLength | length |
maxLength | length |
exactLength | length |
numbersOnly | digits only |
lettersOnly | alpha only |
Identity, address, email, regex
| Validator | Shape |
ssn | xxx-xx-xxxx |
ssnLast4 | 4 digits |
zipCode | 5-digit or 5+4 US ZIP |
email | RFC-shape email |
statePicker | US state, 2-letter abbreviation |
statePickerFull | US state, full name |
addressUs | street-address shape (no external lookup) |
customRegex | pattern + errorText |
Type-specific configuration
Signature fields
- Bound to field — the data field this
signature is attached to. Drives whose signature it is.
- Reset on edit — when true (default),
edits to watched fields invalidate the signature on the next
edit-mode submit.
- Watched fields — explicit list of
fields whose edits invalidate this signature. Null = all data
fields except other signatures and the paired date.
- Cascades to — other signature ids that
get invalidated together with this one.
- Date field — a date field paired with
the signature; auto-populated on sign.
Scan fields
- Source —
camera,
photos, or files.
- Subtype —
document
(multi-page document scanner), id (single shot),
or card (CR80-aspect card).
- Output format —
png,
jpg, or pdf.
- Scan card type (optional) — references
a tenant-defined card type that runs server-side OCR and
populates sibling fields from the extracted text.
Prompt fields
- Title + body — header + descriptive
paragraph shown when the card is expanded.
- Answer kind — one of the five kinds in
the table above.
- Per-choice branching content — each
yes/no choice and each pick-one/pick-many option can carry its
own title + body that replace the prompt’s parent
title/body after selection.
- Per-choice populate targets — each
choice can mirror its answer into one or more sibling fields,
choosing per-target what to write: the raw answer, a literal
constant (bool / num / string, type-inferred from input), or
null (clears the target).
Other field flags
- Contains PII — activates screen
protection (FLAG_SECURE on Android, blank-on-resign overlay on
iOS) when any visible field in the active form has this set.
- Inheritable across forms — on submit,
the field’s value is harvested into the linked
entity’s attributes and pre-fills on future forms about
the same entity.
- Required-field policy override — rare
per-field override that’s strict enough to block submit
even when the form-level policy allows warn-and-submit.
- Warning text — override label written
into the printed missing-fields warning when the field’s
label is ambiguous in that context.
- iOS privacy category — override the
heuristic Privacy Manifest category for this field.
Continue to
Calibrations to learn
how to position each field on your printed PDF.