Spa booking form for massage and treatment requests

Updated 2026-10-30

A spa day request often arrives as "two massages on Saturday?" with no word on pressure, therapist or allergy. I would rather have those details before the guests walk in.

Your visit

Name, phone, preferred date, time of day and how many guests. This lets you check rooms and staff before you reply.

Your treatment

Which treatments, massage pressure, areas to focus on, therapist preference and any special occasion. These shape the room, the oils and the pace.

Things we need to know

One open note for allergies, injuries or pregnancy. You read it before you confirm, and you act on it.

Who fills it and who reads it

Guests fill it, or their AI does. It may ask "Which treatments would you like?" Then "What pressure do you prefer?" Then "Is there anything the therapist should know?" It shows the answers and sends only after a yes. See agent-fillable forms. Your front desk reads the CSV.

A tip

Check your local privacy rules before collecting health data. This is a form, not medical advice. Keep the note box to what the therapist must act on. For salon services, use a salon appointment form, and for deeper health questions a massage intake form. More ideas are in forms for salons and spas and forms for clinics.

Questions

How do I handle couples or groups?

The guest count and the occasion tell you how many rooms and therapists to plan. Ask each guest to send their own form when treatments differ.

What if a guest lists an injury?

Read the note before you confirm. If it affects the treatment, call the guest. The form passes on what they write and gives no advice.

Does the form hold a room or a time?

No. It sends a request. You confirm the time by reply, and you can set close_at if you only take requests until a given date.

Try the form

Live demo ยท nothing is saved

Request a spa treatment

Tell us what you would like and when. This is a request. We will reply to confirm your treatment and time.

Which treatments would you like? (required)
Best time of day
Massage pressure
Areas to focus on
Therapist preference
Is it a special occasion?

Allergies, injuries, pregnancy or anything that affects which treatment is suitable.

I understand this is a request and the spa will confirm it (required)

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Request a spa treatment",
  "description": "Tell us what you would like and when. This is a request. We will reply to confirm your treatment and time.",
  "fields": [
    {
      "id": "guest_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "guest_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "guest_email",
      "label": "Your email",
      "type": "email"
    },
    {
      "id": "treatment_picks",
      "label": "Which treatments would you like?",
      "type": "multi_choice",
      "required": true,
      "options": [
        "Massage",
        "Facial",
        "Body wrap or scrub",
        "Manicure or pedicure",
        "Couples treatment",
        "Spa day package"
      ],
      "min": 1
    },
    {
      "id": "visit_day",
      "label": "Your preferred date",
      "type": "date",
      "required": true
    },
    {
      "id": "arrival_window",
      "label": "Best time of day",
      "type": "single_choice",
      "options": [
        "Morning",
        "Afternoon",
        "Evening",
        "Flexible"
      ]
    },
    {
      "id": "guests_in_party",
      "label": "How many guests?",
      "type": "number",
      "min": 1,
      "max": 12
    },
    {
      "id": "pressure_pref",
      "label": "Massage pressure",
      "type": "single_choice",
      "options": [
        "Light",
        "Medium",
        "Firm",
        "I would like advice"
      ]
    },
    {
      "id": "focus_areas",
      "label": "Areas to focus on",
      "type": "multi_choice",
      "options": [
        "Neck and shoulders",
        "Back",
        "Legs and feet",
        "Arms and hands",
        "Head and scalp",
        "Full body"
      ]
    },
    {
      "id": "therapist_pref",
      "label": "Therapist preference",
      "type": "single_choice",
      "options": [
        "No preference",
        "Female therapist",
        "Male therapist"
      ]
    },
    {
      "id": "special_occasion",
      "label": "Is it a special occasion?",
      "type": "single_choice",
      "options": [
        "Birthday",
        "Anniversary",
        "Bridal party",
        "Just because"
      ]
    },
    {
      "id": "things_to_know",
      "label": "Anything we should know?",
      "type": "long_text",
      "help": "Allergies, injuries, pregnancy or anything that affects which treatment is suitable.",
      "max_length": 1000
    },
    {
      "id": "request_understood",
      "label": "I understand this is a request and the spa will confirm it",
      "type": "checkbox",
      "required": true
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Request a spa treatment","description":"Tell us what you would like and when. This is a request. We will reply to confirm your treatment and time.","fields":[{"id":"guest_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"guest_phone","label":"Your phone","type":"phone","required":true},{"id":"guest_email","label":"Your email","type":"email"},{"id":"treatment_picks","label":"Which treatments would you like?","type":"multi_choice","required":true,"options":["Massage","Facial","Body wrap or scrub","Manicure or pedicure","Couples treatment","Spa day package"],"min":1},{"id":"visit_day","label":"Your preferred date","type":"date","required":true},{"id":"arrival_window","label":"Best time of day","type":"single_choice","options":["Morning","Afternoon","Evening","Flexible"]},{"id":"guests_in_party","label":"How many guests?","type":"number","min":1,"max":12},{"id":"pressure_pref","label":"Massage pressure","type":"single_choice","options":["Light","Medium","Firm","I would like advice"]},{"id":"focus_areas","label":"Areas to focus on","type":"multi_choice","options":["Neck and shoulders","Back","Legs and feet","Arms and hands","Head and scalp","Full body"]},{"id":"therapist_pref","label":"Therapist preference","type":"single_choice","options":["No preference","Female therapist","Male therapist"]},{"id":"special_occasion","label":"Is it a special occasion?","type":"single_choice","options":["Birthday","Anniversary","Bridal party","Just because"]},{"id":"things_to_know","label":"Anything we should know?","type":"long_text","help":"Allergies, injuries, pregnancy or anything that affects which treatment is suitable.","max_length":1000},{"id":"request_understood","label":"I understand this is a request and the spa will confirm it","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Request a spa treatment",
  "description": "Tell us what you would like and when. This is a request. We will reply to confirm your treatment and time.",
  "fields": [
    {
      "id": "guest_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "guest_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "guest_email",
      "label": "Your email",
      "type": "email"
    },
    {
      "id": "treatment_picks",
      "label": "Which treatments would you like?",
      "type": "multi_choice",
      "required": true,
      "options": [
        "Massage",
        "Facial",
        "Body wrap or scrub",
        "Manicure or pedicure",
        "Couples treatment",
        "Spa day package"
      ],
      "min": 1
    },
    {
      "id": "visit_day",
      "label": "Your preferred date",
      "type": "date",
      "required": true
    },
    {
      "id": "arrival_window",
      "label": "Best time of day",
      "type": "single_choice",
      "options": [
        "Morning",
        "Afternoon",
        "Evening",
        "Flexible"
      ]
    },
    {
      "id": "guests_in_party",
      "label": "How many guests?",
      "type": "number",
      "min": 1,
      "max": 12
    },
    {
      "id": "pressure_pref",
      "label": "Massage pressure",
      "type": "single_choice",
      "options": [
        "Light",
        "Medium",
        "Firm",
        "I would like advice"
      ]
    },
    {
      "id": "focus_areas",
      "label": "Areas to focus on",
      "type": "multi_choice",
      "options": [
        "Neck and shoulders",
        "Back",
        "Legs and feet",
        "Arms and hands",
        "Head and scalp",
        "Full body"
      ]
    },
    {
      "id": "therapist_pref",
      "label": "Therapist preference",
      "type": "single_choice",
      "options": [
        "No preference",
        "Female therapist",
        "Male therapist"
      ]
    },
    {
      "id": "special_occasion",
      "label": "Is it a special occasion?",
      "type": "single_choice",
      "options": [
        "Birthday",
        "Anniversary",
        "Bridal party",
        "Just because"
      ]
    },
    {
      "id": "things_to_know",
      "label": "Anything we should know?",
      "type": "long_text",
      "help": "Allergies, injuries, pregnancy or anything that affects which treatment is suitable.",
      "max_length": 1000
    },
    {
      "id": "request_understood",
      "label": "I understand this is a request and the spa will confirm it",
      "type": "checkbox",
      "required": true
    }
  ]
}