By the end of this guide, you'll have a booking form that asks exactly what you need — house rules, pet count, terms acceptance, arrival time — and skips what you don't.
What you'll need
- A widget that's been saved at least once (the form editor only appears in edit mode)
- ~10 minutes
- Optional: a list of the questions you actually need answered
- Optional fields hidden where they aren't needed
- Custom questions for anything specific to your property
- Field order that matches how you want guests to read the form
Step 1: Open the widget
Sidebar → property → Widgets → click the widget → scroll to Booking dialog.
The Booking dialog editor only shows up on widgets that have been saved at least once. If you don't see it, click Save widget at the top.
Step 2: Built-in fields
Every widget starts with four built-in fields:
| Field | Type | Required by default | Can you hide it? | Can you change required? |
|---|---|---|---|---|
| Customer name | Text | Yes | No (locked) | No (always required) |
| Yes | No (locked) | No (always required) | ||
| Phone | Phone | No | Yes (eye icon) | Yes (click the badge) |
| Notes | Multi-line text | No | Yes (eye icon) | Yes (click the badge) |
Name and email are always required — Cabintale needs a way to identify the guest and a way to email them. Phone and notes are yours to play with.
To toggle a field:
- Required ↔ Optional — click the small required / optional badge next to the field. It flips.
- Show / Hide — click the eye icon. Hidden fields don't appear in the booking dialog at all.
Step 3: Reorder fields
Each field has a drag handle (six dots, on the left). Drag to reorder. Locked fields (name, email) always render first; everything else shows in the order you set.
The new order takes effect when you save.
Step 4: Add a custom question
Click Add custom field. A modal opens.
Pick a type:
- Text input — short, single-line answer (arrival time, license plate, allergies).
- Checkbox — a yes/no toggle (terms acceptance, "I'll bring a pet", "I need an early check-in").
Then fill in:
- Label — what the guest sees as the field's title. Required. ("What time do you expect to arrive?", "I accept the house rules.")
- Placeholder (text fields only) — grey text inside the empty input as a hint. ("e.g. 4 PM")
- Answer (checkbox fields only) — the text shown next to the checkbox, the bit the guest is checking against. ("I accept the cancellation policy.")
- Required — toggle on if the booking can't go through without an answer.
Click Add field. The new field appears at the bottom of the list. Drag it where you want it.
Custom labels aren't translated. The widget language only translates built-in fields and dialog text. If your widget supports both English and Czech audiences and you add a custom field labeled "Pets?", that label stays in English even on a Czech widget. Workaround: create separate widgets per language, each with its own translated labels (see Multiple widget variations).
Step 5: Save
Click Save widget at the top. The new form goes live on the next page load.
Where the data ends up
When a guest submits a booking, their answers are saved on the booking record's custom_fields. You'll see them on the booking detail page in the admin alongside the guest's name and dates.
Built-in fields are validated server-side: name and email are always required; email must be a valid format (max 255 characters); phone and notes have length limits. Custom required fields are checked client-side — Cabintale sanitizes the rest, truncating very long answers and dropping anything not in your widget's field config.
Common patterns
House rules / terms acceptance
- Type: Checkbox
- Label: "House rules"
- Answer: "I have read and accept the house rules" (link to your rules page in your booking confirmation email)
- Required: Yes
Number of pets
- Type: Text input
- Label: "How many pets?"
- Placeholder: "0 if none"
- Required: No (unless pets-only properties)
Estimated arrival time
- Type: Text input
- Label: "What time do you expect to arrive?"
- Placeholder: "e.g. between 4 and 6 PM"
- Required: No
Phone hidden, notes prominent
- Hide phone (eye icon)
- Drag notes up next to email
- Save
Editing fields after bookings exist
You can rename, reorder, or delete fields any time. Existing bookings keep the answers they were submitted with, even if you later delete the field — the data stays on the booking record. New bookings only collect the new field set.
If you rename a field's label, old bookings show whatever label was current at the time they came in. Cabintale doesn't rewrite history.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| The Booking dialog editor isn't showing | Widget hasn't been saved yet | Click Save widget at the top — the editor appears after the first save |
| I want to make Email optional | You can't — Cabintale needs a way to email the guest | Workaround: tell us why and we'll talk about it |
| Custom field label shows in English on a Czech widget | Custom labels aren't translated by widget language | Create a separate widget per language with translated labels — see Multiple widget variations |
| Required-field error fires on the guest side even though the field looks blank | Whitespace or invisible characters from a paste | Tell the guest to retype the field |
| I added a field but old bookings don't have data for it | This is expected — fields aren't retroactive | Only new bookings collect data for newly-added fields |
| I deleted a field and now I can't see what guests answered | Deleted fields' answers stay on existing bookings — open the booking detail page | The data is still there; the field just isn't being collected anymore |
Related guides
- Embeddable widget — Embeddable booking widget
- Multiple widget variations (one widget per language) — Multiple widget variations