Input Masks
Input masks are configured on text questions with maskType and maskSettings. Use masks when respondents should type into a constrained format while still submitting a clean value.
Use validators as well when invalid data must be blocked on submit. A mask shapes input; validators express submission rules and error messages.
Mask Types
Section titled “Mask Types”maskType can be:
none— no maskpattern— fixed pattern with digit, letter, or alphanumeric placeholdersdatetime— date/time pattern with optional min and maxnumeric— formatted numeric value with separators, precision, and rangecurrency— numeric mask with prefix and suffix
Pattern Masks
Section titled “Pattern Masks”Pattern masks use these placeholders:
9— digita— letter#— digit or letter\— escapes the next character when a placeholder should be treated as literal text
{ "type": "text", "name": "phone", "title": "Phone number", "inputType": "tel", "maskType": "pattern", "maskSettings": { "pattern": "+1 (999) 999-9999" }, "isRequired": true}Date and Time Masks
Section titled “Date and Time Masks”Datetime masks use maskType: "datetime" with a pattern. Supported pattern tokens include:
m,mm— monthd,dd— day of monthyy,yyyy— yearH,HH— 24-hour hourh,hh— 12-hour hourMM— minutesss— secondsTT,tt— AM/PM marker
{ "type": "text", "name": "appointment", "title": "Appointment date and time", "maskType": "datetime", "maskSettings": { "pattern": "mm/dd/yyyy HH:MM", "min": "2026-01-01T00:00:00", "max": "2026-12-31T23:59:59" }}Numeric Masks
Section titled “Numeric Masks”Numeric masks support:
allowNegativeValues— defaults totruedecimalSeparator— defaults to.precision— defaults to2thousandsSeparator— defaults to,minandmax— accepted numeric range
{ "type": "text", "name": "budget", "title": "Budget", "inputType": "text", "maskType": "numeric", "maskSettings": { "precision": 0, "thousandsSeparator": ",", "allowNegativeValues": false, "min": 0, "max": 100000 }}Currency Masks
Section titled “Currency Masks”Currency masks extend numeric masks and add:
prefix— text displayed before the valuesuffix— text displayed after the value
{ "type": "text", "name": "monthlyFee", "title": "Monthly fee", "maskType": "currency", "maskSettings": { "prefix": "$", "precision": 2, "thousandsSeparator": ",", "allowNegativeValues": false, "min": 0 }}Generation Notes
Section titled “Generation Notes”- Use
inputType: "email",url,date, ornumberfor native browser behavior. Use masks when the display format itself matters. - Use
maskType: "pattern"for phone numbers, serial numbers, postal codes, and IDs. - Use
maskType: "datetime"only when a custom date/time text format is required. UseinputType: "date"for ordinary date pickers. - Use
maskType: "numeric"orcurrencywhen users need grouped digits or fixed precision. - Pair masks with Validators or
min/maxproperties when the form must reject out-of-range values.