> For the complete documentation index, see [llms.txt](https://docs.diro.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.diro.app/en/operations/custom-booking-form.md).

# Custom Booking Form

**Settings → Setting → Form tab.** Besides name, phone number, and email, you can add your own questions that customers must fill in at checkout.

## Three core fields that are always present

| Field            | Notes                                                                    |
| ---------------- | ------------------------------------------------------------------------ |
| **Name**         | Required. Cannot be deleted, have its type changed, or be made optional. |
| **Phone Number** | Required. Same, locked.                                                  |
| **Email**        | Required. Same, locked.                                                  |

All three are marked **Core** in the field list and labeled *(always required)*. You can only change their label and placeholder.

## Adding your own field

Click **Add Field**, then fill in:

| Setting                    | Function                                                 |
| -------------------------- | -------------------------------------------------------- |
| **Label**                  | The question customers see.                              |
| **Field Type**             | The format of the answer. See the list below.            |
| **Placeholder**            | The gray example text.                                   |
| **Options (one per line)** | Only appears for the Dropdown type. One choice per line. |
| **Error Message**          | Shown when a required field is left empty.               |
| **Required field**         | Whether the customer must fill it in.                    |

### Available field types

* **Text Input** — a short, single-line answer.
* **Text Area** — a longer, multi-line answer.
* **Email**.
* **Phone Number**.
* **Number** — numbers only.
* **Date** — a date picker.
* **Dropdown** — a choice from a list you define.

## Quick Add Common Fields

The **Quick Add Common Fields** button provides the most commonly used fields — gender, address, city, occupation, and similar — complete with their type and options. Faster than building from scratch.

## Reordering fields

Each field has an up and down button. The order in this list is exactly the order customers see on the checkout page.

## Usage examples

{% tabs %}
{% tab title="Clinic" %}

* **Main complaint** — Text Area, required.
* **Allergy history** — Text Area, optional.
* **Visited before?** — Dropdown: `Yes` / `No`, required.
  {% endtab %}

{% tab title="Yoga studio" %}

* **Experience level** — Dropdown: `Beginner` / `Intermediate` / `Advanced`, required.
* **Injuries or special conditions** — Text Area, optional.
* **Bringing your own mat?** — Dropdown: `Yes` / `No`, optional.
  {% endtab %}

{% tab title="Salon" %}

* **Hair type** — Dropdown: `Straight` / `Wavy` / `Curly`, optional.
* **Had smoothing/bleaching in the last 6 months?** — Dropdown: `Yes` / `No`, required.
* **Style reference** — Text Input, optional.
  {% endtab %}
  {% endtabs %}

## Saving and reverting

**Save Form Configuration** applies the changes to the storefront. **Reset to Default** returns the form to just the three core fields.

{% hint style="warning" %}
This form applies **once, for the whole business**. There is not yet a different form per service, per branch, or per event. If your services vary widely, write questions that still make sense for all of them — or make them optional.
{% endhint %}

{% hint style="info" %}
Customer answers are saved to the customer profile and used to auto-fill the form on their next booking, so returning customers don't need to type them again. These answers are **not yet shown** on the booking detail page or in portal exports. If there is information your team needs to see when serving the customer, also pass it along through the booking notes.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.diro.app/en/operations/custom-booking-form.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
