Scheduling · Booking page
Set up booking questions
Booking questions are what a carrier fills in on your public booking page. Every appointment type has its own set — start from the built-in questions, then add your own for anything specific to that lane.
Open TypesWhere to find them
Booking questions live on the appointment type, not on the location. In the sidebar go to Types, open the type you want, and scroll to Booking questions.
The built-in questions
Every appointment type starts with the same eight. Company name and email are always asked and always required — they are how SimpleDock identifies the booking and where the confirmation email goes. The other six you can switch off entirely, or make mandatory.
| Question | Type | You can |
|---|---|---|
| Company name | Short text | Nothing — always required |
| Email address | Nothing — always required | |
| Phone | Phone | Hide, or make required |
| Reference | Short text | Hide, or make required |
| Additional notes | Long text | Hide, or make required |
| Driver name | Short text | Hide, or make required |
| Driver mobile | Phone | Hide, or make required |
| Trailer # | Short text | Hide, or make required |
The toggle on each row controls whether it appears on the booking page at all. Edit is where you flip it between optional and required. A hidden question can't be required, so its Edit button is disabled until you switch it back on.
Adding your own question
Below the built-ins, Add a question gives you two routes: Suggested, a set of ready-made fields common in dock scheduling, or Custom question… to write your own.
- 1Pick a suggested field, or start a custom one
Suggested covers origin / destination / carrier reference, trailer length, pallet count, hazmat, forklift on trailer, and special handling. Each one already has a sensible type and, where relevant, its dropdown options filled in. A suggestion disappears from the menu once you've added it.
- 2Write the label
This is the exact wording the carrier reads, so phrase it as a question or a plain noun — “PO number”, “Pallet count”, “Hazmat?”. Use Help text underneath for the detail that would otherwise bloat the label.
- 3Choose a field type
See the table below. If you pick Dropdown, enter one option per line — SimpleDock won't let you save a dropdown with no options.
- 4Decide required and reference
Required blocks submission until it's answered. Reference number makes the answer searchable in your appointments list — see below.
Field types
| Type | What the carrier sees | Good for |
|---|---|---|
| Short text | A single-line box | PO numbers, seal numbers, BOL |
| Long text | A multi-line box | Special handling, delivery instructions |
| Number | A numeric box | Pallet count, piece count, weight |
| Dropdown | A list of your options | Trailer length, commodity, carrier from a known list |
| Yes / No | A toggle | Hazmat, liftgate needed, forklift on trailer |
| Date | A date picker | Ship-by date, load-ready date |
Use a Dropdown anywhere you plan to filter or count later. Free text gives you “53”, “53ft”, and “53 foot” for the same answer; a dropdown gives you one value you can actually group on.
The Reference toggle
Turning on Reference number tells SimpleDock this field holds an identifier worth finding a load by. Those answers become searchable from the appointments list, so your team can paste a PO or BOL number into search and land on the right truck.
Reserve it for genuine identifiers. Flagging a pallet count as a reference just adds noise to search results.
The key, and why you can't change it later
Every custom question has a key alongside its label — auto-filled from what you type, e.g. “PO number” becomes poNumber. Keys are letters and numbers only, must start with a letter, and must be unique within the appointment type.
The key is the name the answer is stored and delivered under — in webhook payloads, in the API, and in anything you've built downstream. That's why it's locked once the question exists: renaming it would silently break every integration reading the old name. The label stays editable, so you can reword the question for carriers any time without touching the data.
Reordering, hiding, and deleting
Hover a custom question to reveal the up and down arrows; that order is the order carriers see. Custom questions always render after the built-in ones.
The switch hides a question from the booking page while keeping it and its history intact — the right move for a seasonal question, or one you're not ready to retire. Delete removes it for good.
Copying questions to other types
Copy questions to… pushes your custom questions and your hide / require settings on the built-ins to any other types at the location. Pick the destinations and confirm.
It only ever adds. A question whose key already exists on the destination is skipped, not overwritten — so the result tells you how many were copied and how many were skipped. Copying is a one-time snapshot, not a link: later edits to the original don't propagate.
Where the answers show up
Once a carrier books, their answers flow to:
- The appointment detail in Schedule, and the pending row in Review if approval is on
- Confirmation, reschedule, cancellation, and approval emails — so whoever reads the email has the same detail as the dashboard
- The
customFieldsobject on every webhook payload, keyed by the field key - The appointments API and the MCP tools
Common mix-ups
| What you're seeing | What's going on |
|---|---|
| Added a question but the booking page doesn't show it | You added it to a different appointment type, or its switch is off. Carriers only see questions on the type they picked. |
| Can't make a question required | It's hidden. Switch it on first — the Edit button unlocks. |
| “Key is already in use” | Another question on this type has that key, possibly one that's switched off. Keys must be unique per type, hidden or not. |
| “Dropdown requires at least one option” | Enter your choices one per line before saving. |
| Copied questions, some didn't land | Those keys already existed on the destination type. Copy skips rather than overwrites. |
| Old bookings lost a field | The question was deleted. The data is still stored, but deleted fields stop rendering in admin views. |