Ask Booking Questions and Collect Files
A name and an email rarely tell you enough to prepare for an appointment. A designer needs the client’s website. A clinic needs to know about allergies. A consultant wants last quarter’s report before the call. Booking questions let each service ask its own questions on the booking form, including file uploads, and keep the answers with the booking.
Turn It On
- Go to Bookings → Settings → Modules, switch on Booking questions and click Save modules.
- Open a service from Bookings → Services. In the Booking questions section, click Add question for each question.
- Click Save service.
- If a service collects files, go to Bookings → Settings → Booking questions and click Check storage now before you rely on it.
Questions appear on the details step of the form. The Discovery Call demo asks a few, so you can see them from the customer’s side.
Set Up Each Question
| Setting | What it does |
|---|---|
| Question | The label customers see, up to 200 characters. |
| Key (letters, numbers, underscores) | A short ID used in exports and webhooks. Leave it blank and it’s made from the label on the first save, then stays fixed. |
| Answer type | Short text, long text, email address, phone number, number, date, dropdown, single choice, multiple choice, checkbox agreement or file upload. |
| Answer needed | Optional or Required. |
| Options, one per line | For dropdown, single and multiple choice: 1 to 30 options of up to 100 characters. |
| Maximum characters | Short text up to 500 (default 200). Long text up to 5,000 (default 2,000). |
| Help text (optional) | Shown under the field, up to 300 characters. |
| Show only when question key and …has this answer | Shows the question only when an earlier dropdown, single or multiple choice question has a given answer. One level deep. |
A service can ask up to 30 questions. Use Move up and Move down to reorder them. A hidden conditional question is never required, and any answer to it is dropped.
Collect Files
A File upload question adds three settings:
- File types: any of pdf, jpg, jpeg, png, gif, webp, heic, txt, csv, rtf, doc, docx, xls, xlsx, pptx, odt, ods and zip. The default is pdf, jpg, jpeg and png.
- Largest file (MB): 1 to 20, and never above your server’s upload limit.
- Files allowed: 1 to 5.
Uploads per booking (MB), 1 to 50 with a default of 20, caps all file answers on one booking together. Each file uploads as soon as the customer picks it, and its real content must match its extension. Unused uploads are deleted after two hours.
Files go to a private folder with random names and deny rules for Apache and LiteSpeed. Check storage now tries to download a test file from that folder’s public address. Protected means the request was refused. Exposed means it worked, so uploads stop until you block the folder. Not verified means the site couldn’t make the request at all: uploads still work, but confirm the folder is blocked and check again. On Nginx or other servers, add the deny rule shown on the screen to your server configuration, or define CORE_BOOKINGS_PRIVATE_DIR in wp-config.php as a folder outside the web root. A daily check repeats this while any service collects files.
Where Answers Show Up
- Appointment details: a Booking answers section. File answers link to a download that only managers and the staff hosting the booking can open.
- Customer’s booking page and dashboard: one row per answer. Files show their name and size, never a link.
- Emails: the
{answers}placeholder adds one “Label: answer” line per answer. - Appointments CSV export: a Booking answers column.
- Webhooks: answers by key, with files as name and size only. Untick Include answers in booking webhook events (file answers send only the file name and size) on the settings screen to leave them out.
Each answer is saved with the label the customer saw, so renaming or removing a question later never rewrites past bookings.
Phone, Notes and a Booking Policy
For the two most common extras you don’t need the module. Every service has a Customer details and policy section with Phone number field and Notes for the business field, each set to Do not ask, Optional or Required. Add Booking policy text and a Policy link to show them next to the booking agreement. Leave both blank to use the site policy from Bookings → Settings → Customer accounts.
Limits
- Staff-added appointments never require answers, and waitlist offers carry none.
- Files aren’t moved by Import / Export. Their answers keep the name and size and show “file not available”.
- File uploads need the PHP fileinfo extension.
- Erasing a customer’s data, or Automatic cleanup (days) on Bookings → Settings → License, deletes their answers and files, even while the module is off.