# User Manual

A staff guide to understanding the customer journey — what customers see, what they can do, and how to answer their questions.

---

## What This Is

This document is written for **salon staff**. It is not a customer-facing document. It explains every customer journey so you know what the customer sees on their screen, what their options are, and what you should tell them when they call with questions.

Think of this as a reference guide for common customer scenarios. When a customer asks "Why can't I see my booking?" or "Where's my loyalty discount?" — the answer is in this document.

---

## Booking a Service (Self-Service)

Customers book online through the website. The flow is five steps. The system handles most of the complexity automatically.

### Step 0: Welcome (Unauthenticated Customers Only)

If the customer is not logged in, they see a welcome card before they start booking. It explains:
- Logged-in customers earn loyalty stamps and qualify for seasonal discounts
- Guest bookings don't get stamps or discounts

**What to tell the customer:** "If you create an account, you'll earn stamps and get discounts. If you book as a guest, that's fine too — you'll still get your appointment, but you won't earn rewards."

### Step 1: Choose Services

The customer sees a list of all available treatments. Each one shows the name, price, and duration. Some services may be greyed out or missing entirely.

**Why a service is greyed out:** It requires a patch test — a small allergy test. The customer must have a valid patch test on record (valid for 6 months, with a 24-hour waiting period after the test). If they don't have one, or it's expired, the service is greyed out.

**Why a service is missing:** It has a minimum age requirement. If the customer is logged in and their date of birth shows they're too young, the service is hidden. If they're not logged in, all services are shown (age is checked later).

**What to tell the customer:** "Some services need a patch test first. If you haven't had one, book a patch test appointment and come back for the main service after 24 hours."

The customer can select multiple services. The total price and duration add up automatically.

### Step 2: Pick a Date

A calendar appears. Highlighted dates have available slots. Greyed-out dates are fully booked or the salon is closed. The system automatically selects the first available date when the calendar loads.

**What to tell the customer:** "The calendar shows the first available day automatically. If you want a different day, just click it."

### Step 3: Pick a Time

Available time slots for the chosen day appear as a scrollable list. The system calculates these by checking the salon's opening hours, existing bookings, blocked-out periods, and slots currently being held by other customers.

**Slot reservation:** When a customer picks a time, it's temporarily held:
- Logged-in: held for **1 hour**
- Guest (not logged in): held for **10 minutes**

If the customer takes too long and the hold expires, someone else can take the slot. The customer will need to pick a new time.

**What to tell the customer:** "Once you pick a time, it's held for you while you finish the form. If you're logged in, you have an hour. If you're booking as a guest, you have 10 minutes."

### Step 4: Fill in Details

The customer enters:
- First name and last name
- Email address
- Phone number (UK format, automatically formatted as they type)
- Notes (optional)

**Email check:** If the customer enters an email that's already registered, the system checks their name and phone number too before suggesting they log in. This prevents false positives — if someone just happens to share an email with another customer, they won't be interrupted. If the system does suggest a login, the customer can either log in or use a different email.

**What to tell the customer:** "If the system says 'Please log in,' that means there's already an account with that email. If it's really you, log in. If you don't have an account, use a different email."

**Deposit check:** If the customer has outstanding deposit obligations from a previous late cancellation, they can only book appointments at least 24 hours away. Guest bookings skip this check.

All bookings must be made at least 1 hour before the appointment start time.

### Step 5: Confirmation

After submitting, the customer sees a confirmation screen showing:
- Appointment date and time
- Services booked (with any admin-adjusted prices or durations noted)
- Total price
- Payment status (if a deposit is required, the amount and deadline)
- An **Add to Calendar** button — downloads a file they can import into any calendar app
- A **View My Bookings** button — takes them to their schedule

**What to tell the customer:** "After booking, you'll see a confirmation page. You can add it to your phone's calendar. If you have an account, you can view all your bookings in your schedule."

---

## Guest Bookings

### What is a guest booking?

If the customer books without creating an account, the system creates a temporary guest profile for that booking. It's disposable — there's no permanent identity. Each guest booking gets its own fresh guest profile.

### Can they use the same email for multiple guest bookings?

Yes. Guest bookings can share email addresses. This is different from registered accounts, where each email can only be used once.

### What happens to their data over time?

Personal information (name, email, phone, date of birth) attached to a guest booking is automatically removed **6 months after the appointment date**. After that, the booking record still exists for the salon's financial records, but their personal details are replaced with anonymous placeholders.

**What to tell the customer:** "If you book as a guest, we keep your details for 6 months after your appointment, then they're removed automatically. If you want to keep your history, create an account."

---

## Creating an Account

### Registration

Customers can register at the login page. They need:
- **Name**: Letters, spaces, hyphens, apostrophes, and dots (1–50 characters)
- **Phone number**: UK format — the system validates and formats it as they type. UK landlines are limited to 11 digits, mobile numbers to 11 digits. Non-diallable characters are filtered out automatically.
- **Email address**: Standard email format
- **Date of birth**: Must be at least 16 years old
- **Password**: Up to 72 characters
- **Referral code** (optional): 12 characters, formatted as they type (xxxx-xxxx-xxxx). If they enter a valid code, the system links their account to the person who referred them.

After registering, the account starts in an "unverified" state. An email verification system exists on the backend but isn't fully connected to the frontend yet — they can still log in and book.

**What to tell the customer:** "After you register, you can log in and book straight away. Email verification isn't fully set up yet, but it won't stop you from using the site."

### Logging In

Customers enter their email and password on the Login page. There's a short delay between login attempts (about 5 seconds) to prevent unauthorised access.

Once logged in, they stay logged in for **30 days**. After that, they need to log in again. The system automatically refreshes their session in the background so they won't get logged out unexpectedly while using the site.

### Forgotten Password

A password reset system exists on the backend, but the "Forgot Password" link hasn't been added to the login page yet. If a customer has forgotten their password, they need to contact the salon directly.

**What to tell the customer:** "If you've forgotten your password, call us and we'll reset it for you. There's a backend system for this, but the button on the website isn't wired up yet."

---

## Account Page

Once logged in, customers can go to **Account** to manage their profile and bookings.

### Profile Information

They can view and edit their name, email address, phone number, and date of birth.

### Profile Picture

They can upload a profile photo. A cropping tool lets them adjust which part is shown. The photo appears next to their name in the salon's contact system and is synced to the salon's address book so staff can recognise them when they arrive.

### Loyalty Stamps

Every time they complete a paid appointment, they earn 1 loyalty stamp. They can see their current stamp count on the Account page.

- **1 stamp per completed paid appointment** (maximum 1 per day, even if they have multiple appointments on the same day)
- **Appointments with a total price of £0** don't earn stamps
- **10 stamps** → a 10% discount is automatically applied to their next completed paid appointment
- **After the discount is used**, their stamp count resets and they start earning again
- **If they don't use the discount within 6 months**, it expires

**What to tell the customer:** "You earn 1 stamp every time you complete a paid appointment. At 10 stamps, you get 10% off your next visit. It happens automatically — you don't need to do anything."

### Campaign Discounts

The salon occasionally runs promotions. If a campaign is active and the customer qualifies, the discount is applied automatically when their appointment is completed.

### How Discounts Combine

Discounts **add together**. If a customer has a full loyalty card (10% off) AND an active campaign (5% off), they get **15% off** — each discount is calculated against the original booking total.

**What to tell the customer:** "Your discounts stack. If you have a loyalty discount and a campaign is running, you get both."

### Booking History

A list of all appointments — upcoming and past — is shown on the Account page. Each entry shows the date, time, services, total price, and current status.

### Schedule / Calendar View

The **Schedule** page shows upcoming appointments in a calendar-style layout. Each appointment has an **Add to Calendar** button that downloads a file the customer can open in any calendar application.

### Saved Cards

Verified customers can manage saved payment methods in the **Cards** tab. They can add or remove cards. When a card is removed, it is soft-deleted and retained for 7 years for UK financial compliance.

**What to tell the customer:** "You can save your card details for faster checkout. If you remove a card, we keep it for 7 years for tax records, but it's hidden from you."

### Gift Cards

Customers can see their gift card details in the **Gift Cards** tab:

- Available gift card balance and any unredeemed cards
- Gift cards have a **24-month expiry** from the last use — each time they use it, the expiry resets
- **Redeem to balance**: They can move the full gift card value to their account balance. Once redeemed, the funds are held in their account and can be used across multiple bookings. A confirmation dialog explains how this works and what data is stored (just the amount and their account ID — no personal information)
- Account balances (from redeemed gift cards) are shown as available credit when they pay online or at the till

**What to tell the customer:** "Your gift card lasts 24 months from the last time you use it. If you want to use it across multiple bookings, you can redeem it to your account balance. That way it doesn't expire and you can use it bit by bit."

---

## Online Payments

Customers can pay online in several ways:

### Paying a Deposit

Customers may need to pay a deposit if they have deposit obligations, or they may choose to pay early voluntarily.

1. Go to **Schedule** from the menu
2. Click on their upcoming booking
3. Click **Pay Deposit** or **Pay Early** — the minimum deposit is 20% of the booking total
4. They can pay the deposit (20%), the full amount, or a custom partial amount
5. Enter card details or use a saved card
6. Confirm payment

**20% threshold rule:** Once the customer has paid 20% or more of the total (across all payments combined), the deposit is considered met. The booking is protected — even if the deposit deadline passes, the slot won't be given to someone else. This works regardless of what label the payment has (deposit, partial, balance, etc.).

If no deposit is owed but they haven't paid the full amount yet, they see a **Pay Early** button instead. They can also pay a partial amount using the **Pay Part** option. If they've already paid a deposit, they see a **Pay Balance** button to settle the remaining amount.

**What to tell the customer:** "If you owe a deposit, you can pay it online from your Schedule page. If you don't owe a deposit, you can pay early or pay part. Once you've paid 20% or more, your booking is protected."

### Leaving a Tip

After their appointment is marked as **completed**, they can leave a tip:

1. Go to the tip page (the salon may send them a link, or they can access it from their booking confirmation)
2. They see their appointment details — date, time, and services
3. Choose a tip amount:
   - **Preset percentages**: 10%, 15%, or 20% of the booking total (the £ amount is shown for each)
   - **Custom amount**: Enter any amount they'd like to tip
4. Confirm payment — their saved card can be used if they have one on file

**What to tell the customer:** "After your appointment, you can leave a tip online. You'll get a link from us, or you can find it in your booking confirmation."

---

## Cancelling and Rescheduling

### How to Cancel

From the Account page, the customer can find the booking and select the cancel option.

### What Happens to Payments

If they've paid anything towards the booking, the system calculates a refund based on how much notice they gave:

| Notice Period | What They Get Back |
|---|---|
| **72+ hours before the appointment** | **Full refund** — 100% of everything paid |
| **24-72 hours before the appointment** | **Partial refund** — the salon keeps a protected deposit (up to 50% of the total). Everything paid above that is refunded |
| **Less than 24 hours** | **No refund** — all payments are retained |

The refund appears as a credit to their account balance or is processed back to their card if possible. The cancellation dialog on their Account page shows the breakdown before they confirm.

### The 24-Hour Rule (No-Show Penalty)

This is separate from the refund. Even if no money was paid (so no refund applies), the no-show tracking still works:

**Cancelling 24 hours or more before the appointment:**
No penalty. The booking is cancelled with no consequences.

**Cancelling less than 24 hours before the appointment:**
This counts as a late cancellation. The customer receives **3 deposit obligations**, which means they need to pay deposits before they can book again.

**If the booking is still pending (not yet confirmed by the salon):**
The booking is simply deleted — no penalty.

**Can a late cancellation be forgiven?**
Yes — the salon can forgive a late cancellation on a case-by-case basis. If the customer had a genuine emergency, you can waive the penalty. If forgiven, the cancellation is treated like a normal cancellation with no deposit obligations.

### Requesting to Reschedule

If a customer needs to change their appointment time:

1. Go to their **Account** page and find the booking
2. Select **Reschedule**
3. Pick a new date and time (the same availability rules apply — the new slot must be open)
4. Add any notes about the change (optional)
5. Submit their reschedule request

**What happens next:**
- The request goes to the salon for review
- The salon sees a side-by-side comparison of the original booking versus the proposed changes
- The salon can either **approve** or **decline** it
- If approved, the appointment time is updated to the new slot
- If declined, the original appointment time stays the same
- The customer can cancel their reschedule request at any time before the salon reviews it
- They can view all their pending reschedule requests from their account

**What to tell the customer:** "If you want to change your time, go to your Account page and request a reschedule. We'll see your request and either approve it or let you know if the time isn't available."

---

## The Deposit System

There are two separate things customers call "deposits" — the **no-show penalty** (3-strike system for last-minute cancellations) and the **financial deposit** (money paid toward the booking to hold the slot).

### 1. No-Show Penalty (3-Strike System)

If a customer cancels with less than 24 hours' notice (without the salon's forgiveness), they get **3 deposit obligations** on their account.

While they have deposit obligations:
- They can only book appointments that are **at least 36 hours away**
- They can only have **one active booking at a time**
- They need to complete appointments and pay for them to reduce their count
- A warning banner appears at the top of the booking flow explaining the limit

Each completed paid appointment reduces the count by 1.

### 2. Financial Deposit (Slot Protection)

Some bookings need a **payment of at least 20% of the total** before the 24-hour deadline. This holds the slot so no one else can take it.

- If they pay 20%+ before the deadline, the slot is locked in
- If they **don't** pay before the deadline, someone else can book their slot — they lose it
- If they **do** pay after the deadline but before anyone takes it, the slot is secured again
- Any payment type counts towards the 20% — deposit, partial, full, or balance. It's the total that matters, not what it's called

**Example:** A £50 booking needs at least £10 paid. A £10 "partial" payment works just as well as a £10 deposit payment.

### Quick Reference

| What happens | No-Show Penalty | Money Already Paid |
|---|---|---|
| Cancel ≥ 72h before | None | **Full refund** |
| Cancel 24-72h before | None | **Partial refund** — salon keeps up to 50% of the total |
| Cancel < 24h before | 3 obligations | **No refund** |
| Cancel < 24h (salon forgives) | None | Depends — may get full refund |
| Pending booking cancelled | None | No money paid |
| Deposit deadline passed, unpaid | — | Slot becomes available to others |
| Someone else takes the slot | — | Original booking cancelled |
| Pay after deadline, before slot taken | — | Slot secured |
| Complete appointment and pay | Count goes down by 1 | — |

**What to tell the customer:** "If you cancel with lots of notice, you'll get your money back. The closer it gets to your appointment, the less you'll get back. If you haven't paid at least 20% before the 24-hour mark, someone else could book your slot."

---

## Portfolio, Prices, and Contact

### Portfolio

The portfolio page is the salon's gallery of nail art and designs.

- **Search by tags**: Type a single tag to find photos with that tag. Type multiple tags separated by commas to find photos with **all** of those tags (e.g., "summer, glitter" shows photos tagged with both "summer" AND "glitter")
- **Filter by categories**: Category dropdowns group tags into types (e.g., "Colour" with options like Red, Blue, Pink). Multiple categories can be selected at once — filters combine.
- **Viewing a specific photo**: If someone shared a direct link, the page opens directly to that image, bypassing filters.

### Prices Page

A straightforward list of all services with prices and durations. Same information as the booking process, presented as a quick reference.

### Contact Page

Shows the salon's name, phone number, email, and a profile photo. Includes an interactive map showing the salon location. The information is kept up to date by the salon.

---

## FAQ — Things Customers Call and Ask

These are real questions customers ask. Use this section as a quick reference when you're on the phone.

### "I booked as a guest — can I see my booking later?"

Guest bookings are tied to the email they provided, but they don't have a login. They can't view them online. If they want to manage their bookings, they should create an account.

**What to tell them:** "If you booked as a guest, you can't log in to see it, but we can look it up here for you. If you want to manage bookings online, create an account."

### "I forgot my password — how do I reset it?"

The password reset system exists on the backend but there's no "Forgot Password" link on the website yet.

**What to tell them:** "I can reset your password from here. What's the email on your account?"

### "My gift card doesn't work — it says it's expired"

Gift cards expire after 24 months of no activity (not from the date of purchase). Each time they use it, the timer resets. If it has expired, the balance is moved to our recovery system and we can restore it.

**What to tell them:** "Gift cards expire after 24 months of not being used. If yours has expired, we can restore the balance — just bring it in."

### "I never got my loyalty discount"

The discount is applied automatically when the appointment is **completed**, not when they book it. If they have 10 stamps, the 10% discount is applied to their next completed paid appointment.

**What to tell them:** "Your discount applies when you finish your appointment and pay for it, not when you book it. If you have 10 stamps, it'll be applied automatically."

### "Can I use two payment methods?"

Not for a single payment. If they have a gift card balance, they can use it to pay part of the total, but the remaining amount must be paid with one method (card, cash, etc.).

**What to tell them:** "You can use your gift card balance to pay part of it, and then pay the rest with card or cash."

### "My service is greyed out — why?"

It requires a patch test. They need a valid patch test on record (valid for 6 months, with a 24-hour wait after the test). If they haven't had one, or it's expired, they can't book that service.

**What to tell them:** "That service needs a patch test first. Book a patch test and come back after 24 hours for the main appointment."

### "Can I book for someone else?"

If they're logged in, the booking is under their account. If they want to book for someone else, they should log out and use the other person's details. But they shouldn't book for someone else on their own account to bypass a patch test or age check — that's against the salon's policy.

**What to tell them:** "If you want to book for someone else, log out first and create a booking with their details. Don't book for someone else on your own account."

### "Why can't I book today?"

All bookings must be made at least 1 hour before the appointment start time. Also, if they have deposit obligations, they can only book appointments at least 24 hours away. Additionally, after 22:00, the system blocks next-morning slots (00:00–11:00) for non-admin users.

**What to tell them:** "You need to book at least an hour before the appointment. If you owe deposits, you need to book at least 24 hours ahead. Also, late at night, the system stops showing morning slots for the next day."

### "How do I leave a tip?"

After their appointment is completed, they can go to the tip page. The salon may send them a link, or they can access it from their booking confirmation.

**What to tell them:** "After your appointment, you'll get a link to leave a tip. Or you can find it in your booking confirmation."

### "My slot was taken when I submitted"

Their slot was held temporarily, but the hold expired before they finished the form. Guest bookings only hold for 10 minutes. Logged-in bookings hold for 1 hour.

**What to tell them:** "The slot was held for you while you filled in the form, but it expired. This happens more often with guest bookings because you only get 10 minutes. If you create an account, you get an hour. Just pick a new time — it's unlikely to happen again."

### "What happens to my data?"

Guest data is anonymized 6 months after the appointment. Registered account data is kept until the account is deleted. Full GDPR data export is available via `/gdpr` for registered users.

**What to tell them:** "If you book as a guest, we remove your details 6 months after your appointment. If you have an account, you can request a full copy of your data from us."

### "Can I see my gift card balance?"

Yes — on their Account page, under the Gift Cards tab. It shows their balance and any unredeemed cards.

**What to tell them:** "Log in and go to your Account page, then click Gift Cards. You'll see your balance there."

### "Can I redeem my gift card online?"

Not independently. They can see their balance online, but to redeem a gift card to their account balance, they need to ask the salon to do it.

**What to tell them:** "You can see your balance online, but to redeem it to your account, you need to ask us to do it. Just let us know when you come in."

### "What happens if my gift card expires?"

The balance is moved to the salon's expired balance recovery system. The admin can claim it and restore the funds to the customer (e.g., via a new gift card, bank transfer, or account credit).

**What to tell them:** "If your gift card expires, the balance is saved in our system. We can restore it for you — just bring it in."

### "Why do you need my phone number?"

For booking confirmation and contact. The phone number is used to send appointment reminders (when SMS is enabled) and to reach the customer if there are changes.

**What to tell them:** "We use your phone number to confirm your booking and send reminders. We don't share it with anyone else."

### "Do I need to verify my email?"

Not yet. The backend supports email verification but the frontend isn't fully wired. They can log in and book without verifying.

**What to tell them:** "Email verification isn't fully set up yet, but you can log in and book without it."

### "Can I change my appointment time?"

Yes — they can request a reschedule from their Account page. The salon reviews the request and either approves or declines it.

**What to tell them:** "Go to your Account page, find your booking, and click Reschedule. Choose a new time and we'll review it."

### "How do I cancel my booking?"

From their Account page, find the booking and select the cancel option. If they cancel less than 24 hours before the appointment without forgiveness, they get 3 deposit obligations.

**What to tell them:** "Go to your Account page, find the booking, and click Cancel. If you cancel with less than 24 hours' notice, you'll need to pay deposits on your next 3 bookings."

### "I paid a deposit but need to cancel — what happens?"

The refund depends on **how much notice** they give:

- **72+ hours notice:** Full refund — 100% back
- **24-72 hours notice:** Partial refund — the salon keeps a protected deposit (up to 50% of the total), the rest is refunded
- **Less than 24 hours:** No refund — all payments retained, plus 3 deposit obligations added

The cancellation dialog on their Account page shows the exact refund breakdown before they confirm.

**What to tell them:** "The amount you get back depends on how much notice you give. If you cancel with plenty of notice, you'll get a full refund. The closer it gets to your appointment, the less you'll get back. The cancellation screen shows you the exact amount before you confirm."

### "Do you take walk-ins?"

Yes — the salon can create a walk-in booking directly from the Today page. It bypasses the online booking flow and creates the booking immediately.

**What to tell them:** "Yes — just come in and we'll add you to the schedule."

### "I have two bookings on the same day — do I get two stamps?"

No. They earn a maximum of 1 stamp per calendar day, even if they have multiple paid appointments.

**What to tell them:** "You get 1 stamp per day, even if you have two appointments. So you'd get 1 stamp for today."

### "My discount is about to expire — what should I do?"

Loyalty discounts expire after 6 months. If they have a pending discount and haven't booked, they should book soon.

**What to tell them:** "Your loyalty discount expires after 6 months. If you have one waiting, book an appointment soon to use it."

### "Can I pay with cash online?"

No. Cash payments are only available at the till (in-person). Online payments are card only (via Square).

**What to tell them:** "Online payments are card only. You can pay with cash when you come in."
