Field types and conditional logic
The 17 field types, validation, conditional visibility, field mapping
Field types and conditional logic
A form is made of fields. Bookinda knows 17 field types, each serving a different purpose.
The 17 types
Text inputs
- Text – single line (name, address)
- Textarea – multi-line (note, description)
- Email – email address (auto-validation)
- Phone – phone number
Numeric
- Number – integer or decimal
Selection
- Radio – pick one of several (classic radio button)
- Dropdown – pick one from dropdown
- Checkbox – simple yes/no
- Checkbox Group – multiple selectable
Date / time
- Date – date picker
- Time – time picker
- DateTime – date + time
Media
- Signature – e-signature (drawn)
- Drawing – general drawing (e.g., body marking)
- File Upload – file upload (PDF, DOC)
- Image Upload – image upload (reference photo)
Layout (non-input)
- Heading – section header (separator)
- Text Block – static text (info, explanation)
- Divider – horizontal line
- Image – static image
(Layout fields don't ask for a value, they're for structure.)
Per-field settings
Basics
- Title (the question text)
- Help text (sub-label)
- Placeholder (gray text in input)
- Required (mandatory)
- Width: full, half, third
- Sort order
Validation
- Min / max length (text)
- Min / max value (number)
- Pattern (regex, advanced)
Mapping
- Map to customer field – incoming value goes to customer profile (name, email, phone, birthday, etc.)
Conditional logic (visibleIf)
A field appears only if another field has a specific value.
Example
- Field 1: "Any allergies?" (Radio: Yes / No)
- Field 2: "What to?" (Text) – visible only if Field 1 = "Yes"
Setup
On Field 2 editor:
- Visible if: Field 1 = "Yes"
If customer picks "No," Field 2 doesn't appear.
Signature field details
In the Signature field:
- Drawing surface (mouse / touch)
- Clear button (redraw)
- On save: PNG image + IP + timestamp + user-agent
All stored for legal auditability.
File / Image upload
Customer:
- File: PDF, DOC, max 10 MB
- Image: JPG, PNG, max 10 MB
Stored on salon server, linked to customer profile.
When to use it
Scenario 1, beauty allergy screening
- Radio: "Skin problem?" (Yes/No)
- Visible-if Yes: Textarea "What?"
- Visible-if Yes: Image Upload "Photo?"
Scenario 2, massage consultation
- Drawing: "Where does it hurt? Mark on the body"
- Textarea: "Details"
- Number: "Pain 1-10 scale"
Scenario 3, Consent
- Text Block: full consent text
- Checkbox: "I read and accept"
- Signature: signature
Scenario 4, Intake
- Text: "Last name" (mapped to customer.lastName)
- Text: "First name" (mapped to customer.firstName)
- Email: "Email" (mapped to customer.email)
- Phone: "Phone" (mapped to customer.phone)
- Date: "Birthday" (mapped to customer.birthday)
Scenario 5, Feedback
- Radio: "How many stars (1-5)?"
- Textarea: "What did you like?"
- Textarea: "What can we improve?"
Tips
- Required strictly: only what's truly needed. Long form + many required = high abandonment.
- VisibleIf builds short forms from long data: only relevant fields show.
- Drawing field is versatile: body painting markup, dental status, garden plan.
- Use File Upload sparingly, customers don't like attaching files. Image Upload is simpler.
- Field width (full/half/third) is desktop-only, mobile is always full.
- Pattern (regex) misvalidation = turn it off, don't frustrate customer.
- Heading and Divider don't count toward field count, they're for structure.