Form field reference
Choose the most specific field that represents the answer. This improves validation, mobile keyboards, accessibility and downstream mappings.
Input fields
| Field | Use it for | Important checks |
|---|---|---|
| Text | Names, references and short answers | Explain format; do not use for long prose |
| Email addresses | Verify validation and use as Reply-To only when appropriate | |
| Phone | Phone numbers | Configure allowed characters and any expected country code |
| URL | Web addresses | Explain whether a full URL is expected |
| Number | Comparable numeric data | Define min, max and step where applicable |
| Textarea | Long answers | Explain expected scope or length |
| Date | A calendar date | Test locale presentation and stored value |
| Time | A time of day | State timezone when it matters |
| Date & Time | One combined timestamp | State timezone and scheduling meaning |
Choice fields
| Field | Use it for |
|---|---|
| Select | One choice from a longer compact list |
| Radio | One choice when all options should remain visible |
| Checkbox | One yes/no acknowledgement or consent |
| Checkbox group | Several selections from one set |
Use readable labels and stable option values. Conditions, webhooks, notifications and post mappings can depend on those values; review every dependency before changing them.
Upload and integration fields
| Field | Use it for | Boundary |
|---|---|---|
| File upload | A local WordPress-handled file | Limited by global and field type/size rules |
| Audio | One audio upload or browser recording | Recording depends on browser support; file selection remains the fallback |
| Google Drive Upload | Send an upload through the configured Drive integration | Available only after the integration is configured |
Never allow broader file types or sizes than the workflow needs. Explain what is accepted, where it is sent and how long it is retained.
Structural and non-input fields
| Field | Use it for |
|---|---|
| Hidden | Trusted context supplied by the page/integration, not a security control |
| HTML | Instructions or supporting markup |
| Heading | A meaningful section heading |
| Submit | The final action, with a label that describes what happens |
A hidden field is still client-submitted data and must not be trusted for authorization, price or identity without server-side verification.
Settings shared by many fields
- Label: visible name of the input.
- Name: stable machine identifier used by merge tags and actions.
- Help Text: purpose, format or limit.
- Required: whether submission can proceed without a value.
- Default value: prefilled value when appropriate.
- CSS/layout controls: presentation, not validation.
- Conditional logic: when the field is shown or hidden.
- Validation: field-type and rule-specific checks and messages.
Use lowercase descriptive names such as contact_email or booking_date. Names must be unique within the form. Renaming one can break {{field:contact_email}}, webhook field keys, conditions and post mappings.
Accessibility
Keep labels visible, group related choices under one clear question, place help/errors next to the field, preserve a logical keyboard order and do not communicate state by color alone. Test browser autofill, zoom, mobile input and signed-out submission.