An input field with built-in email format validation.
Overview
The Email field renders an input[type=email] element and automatically validates that the entered value conforms to standard email format (e.g. user@example.com). On mobile devices, browsers will present a keyboard layout optimized for email entry.
Beyond format validation, you can restrict submissions to a specific domain by using the validation.pattern property with a domain-matching regex.
Note: The email field does not send a verification email. It only validates the format. To verify ownership, implement an email confirmation flow in your backend.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| id | string | — | Unique field identifier (UUID in the builder). |
| type | string | Must be "email". | |
| label | string | — | Human-readable label shown above the field or step heading. |
| required | boolean | false | When true, the form cannot submit without a value. |
| isHidden | boolean | false | Hides the field from respondents (may still store defaults). |
| isDisabled | boolean | false | Renders the field read-only. |
| instruction | string | undefined | Help text shown below the label (not the same as placeholder). |
| placeholder | string | undefined | Ghost text inside the control when empty. |
| validation.min | number | undefined | Minimum length (text) or minimum numeric value (number) or digit count (phone). |
| validation.max | number | undefined | Maximum length, numeric bound, or digit count (phone). |
| validation.pattern | string | undefined | Regex the value must match. |
| validation.message | string | undefined | Custom error when validation fails. |
| conditionalRules | array | undefined | Show this field when any rule matches another field's value. |
| logic | object | undefined | Simple visibility: depends_on + show_if_value. |
| reporting | object | undefined | Admin submissions table: includeInTable, labelOverride, sortable, filterable. |
| integrationKey | string | undefined | Stable alias for external integrations instead of id. |
JSON Schema
{
"type": "email",
"label": "Work Email",
"name": "work_email",
"required": true,
"placeholder": "you@company.com",
"validation": {
"pattern": "@company\.com$",
"patternMessage": "Please use your company email address"
}
}Common Use Cases
- Account registration or login identifiers
- Contact forms where you must reach the respondent reliably
- Newsletter signup, webinar registration, or lead magnets
- Booking confirmations sent to the address they enter
- Internal forms restricted to company domains via pattern validation