# Rezvy User Guide

Welcome to Rezvy — the reservation management platform for any service business (barbershops, salons, clinics, spas, restaurants, sports courts, escape rooms and more).

# Contents

# Rezvy User Guide

Welcome to Rezvy — the reservation management platform for any service business (barbershops, salons,
clinics, spas, restaurants, sports courts, escape rooms and more).

This guide walks you step by step, from creating your account to running your daily agenda and your
public booking page. Each step has an illustrative image of the matching screen.

> **Demo accounts** (to try it): `owner@rezvy.com` / `Owner@123` (business owner).

## Contents

1. **Getting started** — create your account, sign in and tour the backoffice.
2. **Set up your store** — agenda type, opening hours, services, spaces, staff and menu.
3. **Manage appointments** — agenda views, creating and editing appointments.
4. **Public booking page** — customize and publish your page; how a customer books.
5. **Customers** — your customer base, duplicates and anonymization (GDPR).
6. **Messages & notifications** — email/SMS, reminders and credits.
7. **Customer payments** — take payment at booking time (Stripe).
8. **Plans & billing** — choose and manage your subscription.
9. **Statistics** — business metrics.
10. **Multi-store & teams** — multiple stores, staff and access roles.
11. **Sync to your phone** — export the agenda to your phone calendar.
12. **Business settings** — timezone, languages and data.
13. **Contact & support**.
14. **End-to-end scenarios by business type** — "from scratch" recipes (barbershop, clinic, restaurant,
    padel, escape room, spa) + a checklist.
15. **Frequently asked questions (FAQ)**.

## Quick concepts

- **Business** — your company. It can have one or several **stores**.
- **Store** — a location/branch. Each store has its own hours, services, staff and agenda.
- **Agenda type** — defines how bookings work in the store (per table, per professional, per space or
  per service). It's the most important setting — see chapter 2.
- **Plan** — Free, Pro, Business or Custom; sets the available limits and features.

# 1. Getting started

This chapter takes you from "no account yet" to inside the backoffice, ready to configure your business. It takes about \*\*5 minutes\*\*.

# Introduction

This chapter takes you from "no account yet" to inside the backoffice, ready to configure your
business. It takes about **5 minutes**.

**You'll need:** your business name, a valid email (to confirm the account) and a rough idea of how you
want to organize bookings (per professional, per table, per space or per service — explained in
chapter 2).

---

# 1.1 Create your account

Registration is a **3-step wizard** that creates your user account, the **business** and the **first
store** at once. There are no half-created records: everything is created in a single final step.

1. On the home page, click **Create account** (or open `/Account/Register`).
2. **Step 1 — Business:**
   - **Business name** (e.g. "Central Barbershop"). It's the name shown on your public page.
   - **Address** and **phone** (optional but recommended — shown to customers).
   - **Default language:** the language your **public page** will appear in to customers. The picker
     opens on the language the site is currently shown in, with the flag and language name.
3. **Step 2 — Agenda & setup:**
   - **Business type:** pick from the list (barbershop, salon, clinic, restaurant, padel, escape room,
     spa, etc.). The list is grouped by category with icons.
   - **Agenda type:** **suggested automatically** from the business type (e.g. barbershop → Per
     professional; restaurant → Per table). You only pick it manually if you choose "Other".
   - **Include example data** (on by default): creates sample services, staff and/or spaces suited to
     the business type so you can try it right away. You can delete them later.
4. **Step 3 — Account:** your **name**, **email** and **password** (min 6 chars, with upper, lower,
   number and symbol). Click **Create account**.
5. The account is created **unconfirmed**. You get a **confirmation email** and land on the "Check your
   email" page.

> 📸 **`01-register-step1.png`** — Wizard step 1: business name + language picker with flag.
![Register — step 1](images/01-register-step1.png)

> 📸 **`01-register-step2.png`** — Step 2: business-type dropdown (grouped), the agenda-type cards and the "Include example data" toggle.
![Register — step 2](images/01-register-step2.png)

> 📸 **`01-register-step3.png`** — Step 3: name, email and password, with the "Create account" button.
![Register — step 3](images/01-register-step3.png)

> 💡 **Scenario** — *"I have two barbershops."* Create the account with one of them; add the second
> store later (chapter 10). You don't need two accounts.

---

# 1.2 Confirm your email

For security, you **can't sign in before confirming your email**.

1. Open the **"Confirm your email"** message from Rezvy (check spam too).
2. Click the confirmation button.
3. You'll see a success page with a **sign-in** link.

> 📸 **`01-confirm-email.png`** — "Check your email" page with the address and the resend button.
![Confirm email](images/01-confirm-email.png)

> ⚠️ **Didn't get the email?** The "Check your email" page has a **Resend** button. Make sure the
> address is correct. Emails are sent via our provider (Brevo) — on some corporate domains they can
> take a few minutes.

---

# 1.3 Sign in and recover your password

1. Open `/Account/Login`, enter your email and password and click **Sign in**.
2. **Forgot password:** click the link, enter your email and you'll get a message with a link to set a
   new password.
3. **Change your password** (while signed in): user menu → **Profile** → **Change password**.

> 📸 **`01-login.png`** — Sign-in screen with the "Forgot password" link.
![Login](images/01-login.png)

> ⚠️ **"Confirm your email" when signing in:** the credentials are right but the account isn't
> confirmed yet. Use the resend link shown in the error.

---

# 1.4 Tour the backoffice

After signing in you land directly on the **Agenda** (Appointments tab) — that's where you'll spend
most of your time. Navigation is a **two-row top bar**.

**Top row:**
- **Logo** (back to start).
- **Store switcher** — a pill with the active store; only appears if you have more than one store.
  Clicking switches store.
- **User menu** — shows your name and your **plan**; opens a popup with **Profile**, **language**,
  **Help** (if configured) and **Sign out**.

**Bottom row (tabs):**
- **Appointments** — the agenda and bookings (chapter 3).
- **Customers** — your customer base (chapter 5).
- **Staff** — your team (chapter 2.7).
- **Store setup** — submenu: Agenda · Hours · Special hours · Services · Spaces · Menu.
- **Settings** — submenu: Business · Stores · Public Page (owner only).

On mobile, the bar becomes a **menu (☰)** icon that opens a drawer with the same navigation.

> 📸 **`01-backoffice-topbar.png`** — Backoffice top bar with the tabs and the user menu open.
![Backoffice](images/01-backoffice-topbar.png)

> 📸 **`01-backoffice-mobile.png`** — Mobile version with the menu (☰) and the navigation drawer open.
![Backoffice mobile](images/01-backoffice-mobile.png)

> 💡 **Who sees what?** What appears in the menus depends on the user's **role** (Employee, Store
> admin, Business admin). See roles in chapter 10.3.

---
**Next:** [Set up your store](02-store-setup.md) — the most important step.

# 2. Set up your store

All operational configuration — hours, services, spaces, team, menu — belongs to a \*\*store\*\*. If you have several stores, \*\*first check which one is active\*\* in the store switcher (top-right) before touching settings.

# Introduction

All operational configuration — hours, services, spaces, team, menu — belongs to a **store**. If you
have several stores, **first check which one is active** in the store switcher (top-right) before
touching settings.

> 🧭 **Recommended order:** (1) agenda type → (2) hours → (3) services → (4) spaces, if applicable →
> (5) staff → (6) menu, if applicable → (7) booking window. Do it in this order and everything fits.

---

# 2.1 Store details

1. Go to **Settings → Stores** and click **Edit** on the store.
2. Fill in **name, address, phone, email**.
3. **Map location (optional, recommended):** click the map or drag the marker to the store's door. The
   coordinates make the address **clickable** on the public page — the customer taps it and Google Maps
   opens with directions.
4. **Active/Inactive:** an inactive store stops appearing on the public page and the switcher but keeps
   its history. Handy for a temporary closure.
5. Save.

> 📸 **`02-store-edit.png`** — Store edit page with the map picker (Leaflet/OpenStreetMap).
![Edit store](images/02-store-edit.png)

---

# 2.2 Choose the agenda type

This is the **most important setting**: it controls how bookings are structured and how the agenda is
drawn. Go to **Store setup → Agenda**.

| Type | Best for | The agenda shows | The booking asks for |
|---|---|---|---|
| **Per table (TimeSlot)** | restaurants | horizontal Gantt, 1 row per table | table + party size |
| **Per professional (ByStaff)** | barbershops, salons, clinics | columns per professional | service + professional |
| **Per space (ByLocation)** | courts, rooms, escape rooms | columns per space | space (+ party size) |
| **Per service (ByService)** | treatments with no fixed pro | columns per service | service (pro optional) |

1. Click the right **card**.
2. Set:
   - **Slot duration** (e.g. 15 min barbershop, 30 min clinic, 60 min restaurant or padel) — the time
     "grid".
   - **Minimum lead time** — minutes before a slot where an online booking is still accepted (e.g.
     120 = no booking for less than 2 h away).
   - **Daily cap** of online bookings (leave empty = no cap).
   - **Max days ahead** — how far out one can book (e.g. 60 = two months).
3. Save.

> 📸 **`02-agenda-type.png`** — Agenda page with the four agenda-type cards and the config fields.
![Agenda type](images/02-agenda-type.png)

> ⚠️ **Changing the agenda type** on a running store changes how existing bookings are displayed. Avoid
> switching with a full agenda.

---

# 2.3 Opening hours

1. Go to **Store setup → Hours**.
2. For each weekday, toggle **Open**.
3. Set **one or more ranges** per day. For a **lunch break**, create two ranges (e.g. `09:00–13:00`
   and `15:00–19:00`) with **+ Period**. The gap between them is closed.
4. Save. The system **validates** and blocks overlapping ranges.

> 📸 **`02-hours.png`** — Weekly grid with two ranges on a day (lunch break).
![Hours](images/02-hours.png)

> 💡 Bookable times (online and backoffice) come from **these** hours, intersected with each staff
> member's hours (2.8) and existing conflicts.

---

# 2.4 Special hours and holidays

For one-off dates that differ from the normal hours (holidays, events):

1. Go to **Store setup → Special hours** and click **Add**.
2. Pick the **date**.
3. Mark **Closed** (the store takes no bookings that day) **or** set **special ranges** (e.g. mornings
   only).
4. Optional: add a **note** (e.g. "Christmas").
5. Save.

Special hours **override** the normal hours on that date — in the backoffice agenda and the public page
(closed days appear blocked to customers).

> 📸 **`02-special-hours.png`** — Adding a special day (closed / custom hours) with a note.
![Special hours](images/02-special-hours.png)

---

# 2.5 Services

1. Go to **Store setup → Services** and click **New service**.
2. Fill in:
   - **Name** and **description**.
   - **Duration** (minutes) — how much room the service takes in the agenda and the possible times.
   - **Price**.
   - **Color** — used to identify the service in the agenda (pick a gradient).
3. **Groups (optional):** create groups (e.g. "Hair", "Beard") and assign services; drag by the handle
   to **reorder** services and groups. Groups show as headers in the public booking and the backoffice
   selectors.
4. Save. You can mark a service **inactive** to hide it without deleting it.

> 📸 **`02-services-list.png`** — Grouped services with colors, duration and price, and the "New service" button.
![Services](images/02-services-list.png)

> 📸 **`02-service-edit.png`** — Editing a service (duration, price, color, group).
![Edit service](images/02-service-edit.png)

> 💡 **Scenario (clinic):** create "Consultation" (30 min), "Physiotherapy" (45 min), "Nutrition" (30
> min). Different durations make each service take the right space in the agenda.

---

# 2.6 Spaces / tables

Applies to **Per table** and **Per space** agendas. Go to **Store setup → Spaces**.

1. Click **New space** and set:
   - **Name** (e.g. "Table 4", "Court 1", "Egypt Room").
   - **Capacity** — max people (optional).
   - **Price** and **pricing mode:** *per reservation* (fixed) or *per person* (price × party size).
   - **Exclusive booking:** on = a single reservation takes the space for the slot (court, room); off =
     several reservations share up to the capacity (e.g. a communal bar table).
2. Optional: organize into **groups** and drag to reorder.

> 📸 **`02-spaces.png`** — Spaces/tables list with capacity, price and the exclusivity indicator.
![Spaces](images/02-spaces.png)

> 💡 **Scenario (restaurant):** create M1–M6 (exclusive, capacities 2–8) and "Bar" (shared, 4 seats).
> 💡 **Scenario (padel):** create "Court 1–4" (exclusive, €24/reservation).
> 💡 **Scenario (escape room):** create the rooms priced **per person** with capacity (e.g. 6/4/8).

---

# 2.7 Staff

In **Staff → New staff member**:

1. **Name** and **color** (used in the agenda to tell the member's column apart).
2. **Role (access):**
   - **Employee** — bookings only; no settings access; locked to the assigned store.
   - **Store admin** — manages the store's settings (hours, services, agenda); can't touch the business
     or other stores.
   - **Business admin** — full access (like the owner).
3. **Stores:** assign to one or more stores. Per store, set the **service scope**: *All*, *Selected*
   (pick the list) or *None* (assigned but takes no bookings there).
4. **Services:** if the scope is *Selected*, pick which services the member performs. No services
   selected = performs all.
5. **Login account (optional):** link an **email + password** so the member can sign in. You can unlink
   later.
6. Save.

> 📸 **`02-staff-edit.png`** — Staff edit: role, assigned stores, service scope and login account.
![Staff](images/02-staff-edit.png)

> 💡 The owner is automatically created as a staff member with access to all stores — so on the Free
> plan (1 professional) the owner is that professional.

---

# 2.8 Staff working hours (per store)

Sets which hours each member works — useful when they differ from the store's.

**Example:** the store is open **09:00–22:00**, but Ann only works **09:00–14:00**. Without a custom
schedule the system would offer Ann's slots all day; with it, only 09:00–14:00.

1. In the staff edit page, turn on **"Use custom schedule"**.
2. **Each assigned store** gets a **7-day grid**. For each day mark **Working** and set the ranges
   (multiple per day supported, e.g. morning + afternoon).
3. Save.

**Important rules:**

- A member's available slots are the **intersection** of the store hours with their schedule. If you
  set hours **wider** than the store's, only the hours where **both** overlap count.
- Anyone assigned to **2 or more stores is required** to use a custom schedule (they must state the
  hours in each store). The toggle is **on and locked**.
- In the **day agenda**, the hours when the member **isn't at the store** are **shaded** in their
  column; dragging a booking into those hours is **rejected**.
- In **manual create/edit**, booking outside the member's hours shows an **alert** and **blocks** the
  save.

> 📸 **`02-staff-schedule.png`** — "Use custom schedule" on, with a 7-day grid per store.
![Staff schedule](images/02-staff-schedule.png)

> 📸 **`02-agenda-block.png`** — A staff member's column in the day agenda with off-hours shaded.
![Agenda block](images/02-agenda-block.png)

---

# 2.9 Menu

For businesses with a menu (e.g. restaurants), go to **Store setup → Menu**:

1. Create **categories** (e.g. "Starters", "Mains", "Desserts").
2. Inside each, create **items** (name, description, price, **image** — uploaded and cropped in the
   editor).
3. Drag by the handle to **reorder** categories and items.

The menu can be shown on the public page (chapter 4) and is available for any agenda type.

> 📸 **`02-menu.png`** — Menu management: categories and items with photos.
![Menu](images/02-menu.png)

---

# 2.10 Booking window (summary)

The fields in 2.2 control **when** a customer can book online:

- **Minimum lead time** — avoids "right now" bookings.
- **Max days ahead** — how far out you accept.
- **Daily cap** — limits bookings per day.

On the current day, times already past (and within the minimum lead) drop off automatically.

---
**Next:** [Manage appointments](03-appointments.md).

# 3. Manage appointments

The \*\*Appointments\*\* tab is the heart of the daily routine: it shows the \*\*active store's\*\* agenda and is where you create, move, confirm and cancel bookings.

# Introduction

The **Appointments** tab is the heart of the daily routine: it shows the **active store's** agenda and
is where you create, move, confirm and cancel bookings.

---

# 3.1 The agenda views

Use the toolbar at the top (prev/today/next + date picker + view picker) to switch:

- **Day** — the main working view.
  - For *Per professional / service / space*: a **grid** with one column per professional/service/space
    and the hours running down. Bookings are colored bars (service color).
  - For *Per table*: a **horizontal Gantt**, one row per table, bars positioned in time.
- **Week** — overview of the 7 days; each day shows up to **50 appointments** (with a "+N more" hint
  when there are more). Clicking one opens its Details.
- **Month** — monthly calendar with per-day counts.
- **List** — a chronological list, with **pagination** and the same filters as the other views.

**Sidebar (left):** a mini-calendar to jump dates + **filters** by professional/service/space (click to
hide/show) + a service filter. Filters **persist** across views and sessions.

**On mobile:** a day strip at the top + a **filters** button.

> 📸 **`03-agenda-day.png`** — Day view (per-professional grid), full, with the filter sidebar. (Real captures in `design/screenshots/cal*.png`.)
![Agenda — Day](images/03-agenda-day.png)

> 📸 **`03-agenda-week.png`** — Week view with the filters and the "+N more" on a busy day.
![Agenda — Week](images/03-agenda-week.png)

> 📸 **`03-agenda-gantt.png`** — Day view as a Gantt (Per table), one row per table.
![Agenda — Gantt](images/03-agenda-gantt.png)

---

# 3.2 Create an appointment

1. Click **+ New booking** (or click an empty slot in the agenda — it opens prefilled with the
   date/time/column).
2. **Date and time:** the offered times respect the store hours, the staff schedule (2.8), the minimum
   lead time and conflicts. Unavailable ones appear struck through.
3. **Customer:** name + **phone and/or email** (at least one if you want the customer to get
   notifications). The customer is created/linked automatically on save.
4. **Booking details** (per agenda type):
   - *Per professional:* **service** + **professional**.
   - *Per service:* **service** (professional optional).
   - *Per space / table:* **space/table** + **party size**.
5. **Notes** (optional).
6. Save.

**Multi-service (Per professional):** add several services for the same customer; each can have a
**different professional** (or "no preference"), chained **back-to-back**. It creates one booking per
service, linked as a **group**.

**Recurring:** tick the repeat option (e.g. weekly) and the **end date**. (Multi-service bookings can't
be recurring.)

> 📸 **`03-create-appointment.png`** — Create form: customer, service, professional and the list of available times.
![Create appointment](images/03-create-appointment.png)

> 📸 **`03-multi-service.png`** — Multi-service booking with several services and professionals.
![Multi-service](images/03-multi-service.png)

> ⚠️ If you try to book outside the staff member's hours, or clashing with another booking, the form
> shows the error and **won't save** — fix the time/professional.

---

# 3.3 Appointment details and history

Click an appointment (the agenda bar, or the name in List view) to open **Details** — a read-only
screen with:

- When, service/professional (or table/space + party size), **status**, **price/payment**, the
  customer contact, notes and the **group siblings** (if multi-service).
- **Activity timeline** — created, confirmed, cancelled, reopened, rescheduled, payment received —
  with who did it ("· Customer" or "· Name (Staff)").
- **Notification history** — what was sent, when and on which channel.

From here: **Confirm / Cancel / Reopen**, **Resend confirmation**, or **Edit**.

> 📸 **`03-details.png`** — Details screen with the activity timeline and the notification history.
![Details](images/03-details.png)

---

# 3.4 Statuses and actions

- **Pending** — received, awaiting confirmation (unless the store has auto-confirm).
- **Confirmed** — by you or the customer.
- **Cancelled** — can be **reopened**.
- **Awaiting payment** — when an online payment is pending (chapter 7).

For **group** (multi-service) bookings, when confirming/cancelling you can choose to apply it just to
that one or to the **whole group**.

---

# 3.5 Move, resize and reschedule

- **Drag** a booking on the grid to change the **time**; drag to **another column** to change the
  **professional / service / space**.
- **Resize** from the edge (bottom on the grid, right on the Gantt) to change the **duration**.
- Each change asks for **confirmation** and is validated (hours, conflicts, staff schedule,
  capacity/exclusivity of spaces). If invalid, it's rejected with a message.
- On rescheduling, the customer is **notified** ("Changed") and the reminder is re-armed.

**On mobile:** press and hold ~**0.3 s** on the booking until it "lifts" (vibrates) before
dragging/resizing — so you don't move it by accident while scrolling. A quick tap opens Details.

> 📸 **`03-drag.png`** — A booking being dragged to another column/time, with the confirm modal.
![Drag](images/03-drag.png)

---

# 3.6 Tips & troubleshooting

- **"No times appear":** the day may be closed (hours or special hours), the staff member may not work
  that day, or the minimum lead/daily cap were reached.
- **"This professional can't do this service":** the member's service scope at that store doesn't
  include the service (2.7).
- **Sync to your phone:** export the agenda to your phone calendar (chapter 11).

---
**Next:** [Public booking page](04-public-page.md).

# 4. Public booking page

The public page is your business's online "shop window": customers see your stores, services and menu and \*\*book themselves\*\*, with your branding and colors. Each business has its own address (e.g. `rezvy.app/p/my-business`).

# Introduction

The public page is your business's online "shop window": customers see your stores, services and menu
and **book themselves**, with your branding and colors. Each business has its own address (e.g.
`rezvy.app/p/my-business`).

---

# 4.1 Open the editor

Go to **Settings → Public Page** (owner only). The editor has two sides: fields on the left, a **live
preview** on the right (with a **mobile / desktop** toggle and store screens).

> 📸 **`04-page-editor.png`** — Public page editor with the themed live preview beside it.
![Public page editor](images/04-page-editor.png)

---

# 4.2 Brand and look

1. Page **title** and **subtitle**.
2. **Logo** and **cover image** — upload and **crop** the images in the editor (the logo also serves as
   the icon/favicon and the installable app).
3. **Color theme** — pick one of the ready-made themes (40 light + 10 dark). The whole page is colored
   from the chosen theme.
4. **Social links** and **footer message**.

> 📸 **`04-theme.png`** — Color theme grid + logo/cover upload with cropping.
![Theme](images/04-theme.png)

---

# 4.3 Address (slug), subdomain and QR

1. In the **Address** card, set the **slug** (2–40 chars, lowercase/hyphens). The page lives at
   `.../p/the-slug`. The editor shows **live availability** and validates the format.
2. **Custom subdomain** (**Pro+** plans): turn it on to also serve the page at `the-slug.rezvy.app`.
   (Needs DNS/TLS on the platform side.)
3. The slug can be changed **once a week** (the editor shows the next allowed date).
4. Each store has a **direct link** and a **QR code** (the **QR** button) with **Download** and
   **Print** options — ideal for the counter, window or cards.

> 📸 **`04-address-qr.png`** — Address card (slug + subdomain toggle) and the QR popup.
![Address and QR](images/04-address-qr.png)

---

# 4.4 Per-store options

For **each store**, in the editor:

- **Show reservations** — allow booking at that store.
- **Show menu** — show the menu on the store page.
- **Store cover** — its own image.
- **Auto-confirm** — incoming bookings become **Confirmed** right away (skips manual confirmation).
- **Reorder** — drag the stores to set the order on the page.

> 📸 **`04-stores-toggles.png`** — Stores list in the editor with the toggles and drag-to-reorder.
![Per-store options](images/04-stores-toggles.png)

---

# 4.5 Preview, publish and install (PWA)

- Use the **preview** (mobile/desktop) to check the look before sharing.
- When the page is **published**, it's reachable at the address. Share the link/QR.
- The public page is **installable as an app (PWA)** on the customer's (and your team's) phone — it
  opens full-screen from the icon.

---

# 4.6 How a customer books (the public flow)

The page guides the customer through a **wizard**:

1. **Choose** — service / space / party size (and, in barbershops, the **professional** or "no
   preference"). A **cart** sidebar shows the summary and total.
2. **Time** — pick the day (day strip) and the time; **only genuinely available times appear**
   (crossing store hours, professional hours and conflicts).
3. **Confirm** — fill in name/contact and confirm. If the store has **payments** on, it goes to Stripe
   checkout (chapter 7).

After booking, the customer gets the confirmation by **email/SMS** and can **confirm or cancel**
themselves via the `/c/{token}` link in the message.

> 📸 **`04-customer-flow.png`** — Public wizard at the Time step, with the cart sidebar.
![Customer flow](images/04-customer-flow.png)

> 📸 **`04-success.png`** — Booking confirmation screen (with the services summary/timeline).
![Success](images/04-success.png)

> 💡 **The public page appears in the business's language** (and the additional ones you offer), not
> the site's global language. Set the languages in Settings → Business (chapter 12).

---

# 4.7 Tips & troubleshooting

- **"The link doesn't work":** check the page is **published** and the store has **Show reservations**
  on.
- **"I get no bookings":** check the booking window (2.2/2.10) and that there are available
  hours/staff.
- **Subdomain:** **Pro+** only; without the plan, the page still works at `.../p/slug`.

---
**Next:** [Customers](05-customers.md).

# 5. Customers

The \*\*Customers\*\* tab is your business's customer base (shared across the stores of the same business).

# Introduction

The **Customers** tab is your business's customer base (shared across the stores of the same business).

# 5.1 View and manage customers

1. The list shows name, contact, number of appointments and last visit, with **search**, **sorting**,
   **store filter** and pagination.
2. **New customer:** click **New** and fill in name + phone and/or email (at least one) and optionally
   the address.
3. **Edit/Delete:** via the buttons on the customer's row.

A customer is **created automatically** whenever you save an appointment with a phone/email.

> 📸 **`05-customers-list.png`** — Customers list with search and store filter.
![Customers](images/05-customers-list.png)

# 5.2 Duplicates and merging

When the system detects a likely **duplicate** (same phone/email in different records), it shows a
badge. Click it to open the **merge** page and choose, field by field, which values to keep. The
appointments of the removed record move to the kept one.

> 📸 **`05-merge.png`** — Merging two customers (field-by-field choice).
![Merge customers](images/05-merge.png)

# 5.3 Anonymization (GDPR)

To honour the **right to erasure**, use **Anonymize** on the customer's row: the personal data (name,
contacts, address and notes) is irreversibly scrubbed, but the appointments and statistics remain
(without identifying the person). The customer is flagged as anonymized.

> 📸 **`05-anonymize.png`** — The anonymize button and the confirmation prompt.
![Anonymize](images/05-anonymize.png)

# 5.4 Tips & troubleshooting

- **Customer with no contact:** a customer must have **phone or email** (at least one). With no
  contact, the appointment still saves, but the customer isn't created/linked and gets no
  notifications.
- **Phone numbers:** stored in international format (E.164). Use the country selector in the phone field
  to get the right dial code.
- **Customers aren't shared across businesses** — each business has its own base.

> 💡 **Scenario:** a customer booked online with their email and later called and booked by phone. The
> system detects the **duplicate** (same name/contact in different records) and shows the badge — do a
> **merge** (5.2) to keep one unified history.

---
**Next:** [Messages & notifications](06-messages.md).

# 6. Messages & notifications

Rezvy automatically sends messages to customers (confirmation, changes, cancellation and reminders), by \*\*email\*\* and/or \*\*SMS\*\*. Configure everything in \*\*Messages\*\* (under the Settings menu).

# Introduction

Rezvy automatically sends messages to customers (confirmation, changes, cancellation and reminders),
by **email** and/or **SMS**. Configure everything in **Messages** (under the Settings menu).

# 6.1 Channels and templates

1. Toggle the **Email** and **SMS** channels.
2. For each **event** (Created, Changed, Cancelled, Reminder) and channel, edit the **subject** and
   the **body** of the template. You can use **placeholders** that are substituted automatically, e.g.
   `%NAME%`, `%BUSINESS_NAME%`, `%DATE_LONG%`, `%SERVICE%`, `%STAFF%`, `%LINK%`.
3. Use **Reset to default** to restore the original template.

> 📸 **`06-templates.png`** — Messages page with the email/SMS templates and the placeholders.
![Message templates](images/06-templates.png)

# 6.2 Reminders and confirm-by-link

- Set the **lead time** for reminders (hours before the appointment).
- Every message includes a `/c/{token}` link where the customer can **confirm or cancel** themselves.
- An SMS reminder can be automatically **skipped** if the appointment is already confirmed.

# 6.3 SMS and Email credits

Your plan includes a **monthly allowance** of emails and SMS. When it runs out, sending consumes
**purchased credits** (which never expire).

1. The **Messages** page shows the **balance** and a **Buy credits** link.
2. In **Subscriptions** you'll find the **"Buy SMS credits"** and **"Buy email credits"** cards: pick
   a pack and pay via Stripe; the balance is credited automatically.

> 📸 **`06-credits.png`** — SMS and Email credit-purchase cards on the Subscriptions page.
![Credits](images/06-credits.png)

# 6.4 SMS sender

You can set the **sender name** for SMS on the Messages page. Until it's approved, SMS go out with the
platform's default sender.

# 6.5 Tips & troubleshooting

- **"Messages don't go out":** check the **channel** (Email/SMS) is on, the customer has that channel's
  contact, and there's still **allowance or credits** (6.3). Each appointment's notification history
  (3.3) shows the status: Sent / Failed / **Skipped** (with the reason).
- **SMS "Skipped":** no balance, or the SMS reminder was skipped because the appointment was already
  confirmed by send time.
- **Email goes to spam:** ask customers to add the sender to contacts; the content is sent in a branded
  HTML template.
- **No keys configured (test environment):** sends are only logged as "Failed" without sending — normal
  without the Email/SMS keys.

> 💡 **Scenario:** you want to cut no-shows. Turn on the **Reminder** by email 24 h before and,
> optionally, by **SMS** 3 h before; include the `/c/{token}` link so the customer confirms with one
> tap.

---
**Next:** [Customer payments](07-payments.md).

# 7. Customer payments

You can ask customers to \*\*pay at booking time\*\*, through \*\*Stripe\*\*. (Available on plans with online payments — see chapter 8.)

# Introduction

You can ask customers to **pay at booking time**, through **Stripe**. (Available on plans with online
payments — see chapter 8.)

# 7.1 Connect your Stripe account

1. Go to **Customer Payments** (under the Settings menu).
2. Click **Connect Stripe** and follow the Stripe onboarding (Stripe Connect). Payments go straight to
   your Stripe account.
3. Once the account is **Active**, you can enable payments per store.

> 📸 **`07-stripe-connect.png`** — Payments page with the Stripe connect button and the account status.
![Stripe Connect](images/07-stripe-connect.png)

# 7.2 Per-store payment rules

For each store, set:

- **Payments enabled** — on/off.
- **Require payment** — force payment to confirm, or let the customer choose.
- **Amount** — the service price (or space price), or a **fixed amount**.
- **Currency**.

> 📸 **`07-payment-rules.png`** — A store's payment settings.
![Payment rules](images/07-payment-rules.png)

# 7.3 How the customer pays

When payments are enabled, on confirming the booking the customer is taken to **Stripe checkout**. The
appointment stays **Awaiting payment** until the payment is confirmed; then it becomes **Confirmed**
and the amount paid is recorded in the appointment details.

# 7.4 Refunds and statuses

- The payment is recorded in the appointment **Details** (amount, currency, date).
- The appointment stays **Awaiting payment** until Stripe confirms; only then it becomes **Confirmed**.
  If the customer abandons checkout, the booking stays incomplete (it doesn't hold the slot for good).
- Refunds are handled in your **Stripe** account (funds go straight to you).

# 7.5 Tips & troubleshooting

- **"The Stripe button is disabled":** the current plan doesn't include online payments (chapter 8),
  the Stripe account isn't **Active** yet, or the store's payments are off.
- **Incomplete onboarding:** Stripe may ask for extra documents/details; finish the process until the
  account is **Active**.

> 💡 **Scenario (padel):** require **payment to confirm** (RequirePayment) for weekend courts, to cut
> no-shows; set the amount = the space price.

---
**Next:** [Plans & billing](08-plans.md).

# 8. Plans & billing

Rezvy has four plans. Limits are \*\*per-business totals\*\* (`∞` = unlimited):

# 8.1 The plans

Rezvy has four plans. Limits are **per-business totals** (`∞` = unlimited):

| | Free | Pro | Business | Custom |
|---|---|---|---|---|
| €/mo | 0 | 19 | 49 | contact |
| Stores | 1 | 1 | 5 | * |
| Professionals | 1 | 5 | 20 | * |
| Services | 1 | 10 | 100 | * |
| Spaces | 1 | 10 | 100 | * |
| Emails/mo | 100 | 2,000 | 10,000 | * |
| SMS included/mo | 0 | 100 | 500 | * |
| Online payments | — | ✓ | ✓ | * |
| Custom subdomain | — | ✓ | ✓ | * |
| Advanced statistics | — | — | ✓ | * |

Limits are enforced **on creation** (if you're already above a limit after a plan change, you keep
what you have but can't create more until you're under it).

# 8.2 View and change your plan

1. Go to **Subscriptions** (under the Settings menu).
2. You'll see the **current plan**, the **usage bars** (stores, team, services, spaces, emails and SMS
   this month) and the **plan grid**.
3. Click **Upgrade/Downgrade** to the plan you want, choose **monthly or yearly** and complete payment
   via **Stripe**. Changes reconcile automatically.

> 📸 **`08-subscriptions.png`** — Subscriptions page with usage and the plan grid.
![Subscriptions](images/08-subscriptions.png)

# 8.3 Downgrading

If your current usage exceeds the target plan's limits, the system shows a **downgrade review** with
the resources to reduce and links to manage them. You can only confirm once you're within the limits.

> 📸 **`08-downgrade.png`** — Downgrade review screen (resources over the limit).
![Downgrade review](images/08-downgrade.png)

# 8.4 Custom plan

The **Custom** plan is configured by a platform admin (limits and yearly price). It shows as **pending
payment** until you pay; meanwhile the negotiated limits are already active. Pay via the **"Pay
X/year"** button.

# 8.5 Credits and billing portal

- **SMS/Email credits** are bought on this page (dedicated cards) and **never expire** — they're used
  after the plan's monthly allowance runs out (chapter 6.3).
- If you have an active subscription, the **Manage billing** button opens the **Stripe portal**
  (payment methods, invoices).
- When switching plans with an active subscription, the unused time is **credited** to the next
  invoices (Stripe proration) — the screen explains this before you confirm.

# 8.6 Tips & troubleshooting

- **"I can't downgrade":** your current usage exceeds the target plan's limits. Reduce the over-limit
  resources (stores/team/services/spaces) and try again — the downgrade review (8.3) tells you exactly
  what to reduce.
- **Admin-assigned plan above the limit:** you keep what you have (grandfathered), but can't create
  more until you're under it.

> 💡 **Scenario:** you opened a 2nd store and need multi-store → **upgrade to Business** (up to 5
> stores). If it's seasonal, you can go back to **Free/Pro** later (respecting the limits).

---
**Next:** [Statistics](09-statistics.md).

# 9. Statistics

The \*\*Statistics\*\* page (available on the \*\*Business\*\* plan or higher) is a business analytics dashboard.

# Introduction

The **Statistics** page (available on the **Business** plan or higher) is a business analytics
dashboard.

1. Go to **Statistics** (under the Settings menu).
2. Choose the **scope** (current store, a specific store or all stores) and the **period** (Today, 7,
   30 or 90 days, or a custom range).
3. Review the metric groups:
   - **Appointments & occupancy** — status mix, confirmation/cancellation rates, by day-of-week and
     hour, approximate occupancy.
   - **Customers** — total, new, active, returning, contactable.
   - **Team / Services / Spaces** — top and unused.
   - **Revenue** — collected amounts, average ticket, conversion (when payments are active).
   - **Notifications** — sent/failed/skipped, by event and channel.
   - **Public-page and menu views**.
   - **Booking insights** — peak day/hour, average lead time.

If your plan doesn't include advanced statistics, the page shows an **upgrade** card.

> 📸 **`09-statistics.png`** — Statistics dashboard with the store/period selector and the metric cards.
![Statistics](images/09-statistics.png)

# 9.1 How to read the numbers

- **Occupancy** is approximate (bookings ÷ agenda slots × columns) — use it to compare days/hours, not
  as exact accounting.
- **Revenue** only appears when a store in scope has **payments on** (amounts actually charged via
  Stripe).
- **Public-page/menu views** count **from the moment the feature shipped** — there's no earlier history.

# 9.2 Tips

> 💡 **Scenario:** you find **Friday 18:00** is the peak and **Tuesday morning** is empty. Run a Tuesday
> morning promo (more services/lower price) and add staff on Friday afternoon.

- Use the **"All stores"** scope to compare stores; use a specific store for detail.
- Combine with **Notifications** (cancellation rate) and **Customers** (returning vs. dormant) to plan
  campaigns.

---
**Next:** [Multi-store & teams](10-multi-store.md).

# 10. Multi-store & teams

1\. Create stores in \*\*Settings → Stores → New store\*\*. Each store has its own hours, services, staff, menu and agenda (a new store comes with a blank weekly agenda to fill in). 2. Switch stores in the \*\*store switcher\*\* (the pill in the top corner). The active store is kept across sessions. 3. \*\*Deleting\*\* a store removes everything that belongs to it; that store's booking history is removed too (there's a clear warning). You can't delete the last store.

# 10.1 Multiple stores

1. Create stores in **Settings → Stores → New store**. Each store has its own hours, services, staff,
   menu and agenda (a new store comes with a blank weekly agenda to fill in).
2. Switch stores in the **store switcher** (the pill in the top corner). The active store is kept
   across sessions.
3. **Deleting** a store removes everything that belongs to it; that store's booking history is removed
   too (there's a clear warning). You can't delete the last store.

> 📸 **`10-store-switcher.png`** — Store switcher open in the top bar.
![Store switcher](images/10-store-switcher.png)

# 10.2 Staff across stores

A staff member can be assigned to **several stores**, with a different service scope in each and
**per-store working hours** (see 2.8). When they have access to more than one store, they also see the
store switcher.

# 10.3 Roles and access

| Role | Appointments | Store setup | Business / Stores |
|---|---|---|---|
| **Employee** | ✓ | — | — |
| **Store admin** | ✓ | ✓ | — |
| **Business admin** (owner) | ✓ | ✓ | ✓ |

The owner is also created as a staff member with access to all stores. Set each member's role in their
edit page (see 2.7).

# 10.4 Tips & troubleshooting

- **Different timezones:** if stores are in different timezones, set the correct **business timezone**
  (chapter 12) — it's the reference for "today/now" and reminders.
- **A staff member not showing in a store:** check they have an assignment (`StaffMemberStore`) for that
  store and the **service scope** isn't *None*.
- **Can't delete a store:** you can't delete the **last** store of the business.

> 💡 **Scenario:** the manager (Business admin) runs the 3 stores and switches in the picker; each
> barber (Employee) only sees their store and their bookings. Assign barbers who work in two stores to
> both, with **per-store hours** (2.8).

---
**Next:** [Sync to your phone](11-sync.md).

# 11. Sync to your phone

You can subscribe to a store's agenda in your phone calendar (Apple, Google, etc.).

# Introduction

You can subscribe to a store's agenda in your phone calendar (Apple, Google, etc.).

1. In the agenda toolbar, click **Sync to phone** (or open **Calendar Export**).
2. Create a **feed** and choose what to export: the whole store, one or more **professionals**, or one
   or more **services**. You can include or hide the customer details.
3. For each feed you get: **Add to iPhone** (`webcal://`), **Add to Google**, **copy the link**,
   **QR**, and download a one-time **.ics** file.
4. You can **revoke** a feed at any time (the link stops working).

The link is private (it carries an unguessable token), so calendar apps can fetch it without signing
in. A regular employee can only export their own agenda.

> 📸 **`11-calendar-export.png`** — Calendar export page with a feed and the add options.
![Calendar export](images/11-calendar-export.png)

# 11.1 Tips

- The subscription **updates itself** in the phone calendar (it's not a one-time export). For a static
  copy, use the **.ics download**.
- **Revoke** a feed if the link is shared by mistake — it stops working immediately.
- Include **customer details** only in private feeds; for a calendar shared with the team, hide them
  ("Appointment" as a busy block).

> 💡 **Scenario:** each barber adds the feed with **their** agenda to **iPhone**; the manager adds the
> whole-store feed to **Google**.

---
**Next:** [Business settings](12-business-settings.md).

# 12. Business settings

Under \*\*Settings → Business\*\* you manage the data that applies to the whole business (all stores).

# Introduction

Under **Settings → Business** you manage the data that applies to the whole business (all stores).

1. **General data** — name, category, contacts.
2. **Timezone** — pick the business timezone from the list. It's the single source of "today"/"now"
   and time conversion across every store. Important for stores in different timezones and so that
   reminders go out at the right time.
3. **Languages** — the default language and the additional languages you offer. **Public pages appear
   in the business's language**, not the site's global language.

> 📸 **`12-business-settings.png`** — Business settings page (timezone and languages).
![Business settings](images/12-business-settings.png)

# Audit log

Every create/edit/delete by a staff member is recorded. View them under **Settings → Audit**, with
filters by operation, resource, colleague, date and text.

> 📸 **`12-audit.png`** — Audit page with filters.
![Audit](images/12-audit.png)

# Tips

- **Change the timezone before creating bookings at scale** — changing it shifts the meaning of
  "today/now" and the time reminders go out.
- Only enable the **languages you actually serve** — the public page offers switching between those.

> 💡 **Scenario:** a Lisbon business with international customers → timezone `Europe/Lisbon`, default
> language EN/PT and additional languages EN/FR/ES; the public page then lets visitors pick those.

---
**Next:** [Contact & support](13-support.md).

# 13. Contact & support

\- \*\*Live chat:\*\* the chat widget is available across the site (bottom corner). - \*\*Contact form:\*\* open the \*\*Contact\*\* page (`/Contact`), fill in name, email and message. Your message opens a conversation with the support team.

# Talk to us

- **Live chat:** the chat widget is available across the site (bottom corner).
- **Contact form:** open the **Contact** page (`/Contact`), fill in name, email and message. Your
  message opens a conversation with the support team.

> 📸 **`13-contact.png`** — Contact page and the chat widget.
![Contact](images/13-contact.png)

# Legal pages

In the site footer you'll find the **Terms**, **Privacy** and the **GDPR** section (data-subject
rights).

# Final tips

- Start with chapters 1 and 2 to get your store running; then publish the **public page** (chapter 4)
  to take bookings online.
- Set up **messages** (chapter 6) to cut no-shows with automatic reminders.
- Use **statistics** (chapter 9) to understand your busiest days/hours.

# 14. End-to-end scenarios by business type

"From scratch" recipes for the most common business types. Each scenario stitches the steps from the earlier chapters into a practical sequence. Use them as a template and adapt the values.

# Introduction

"From scratch" recipes for the most common business types. Each scenario stitches the steps from the
earlier chapters into a practical sequence. Use them as a template and adapt the values.

---

# 14.1 Barbershop / Salon (Per professional)

**Goal:** customers book a service with a specific barber (or "no preference").

1. **Agenda type:** Per professional. **Slot:** 15 min. **Min lead:** 60 min. **Max ahead:** 30 days.
   (2.2)
2. **Hours:** Tue–Sat `09:00–13:00` + `15:00–19:00` (lunch break). (2.3)
3. **Services:** Haircut (15 min, €12), Beard (15 min, €8), Cut+Beard (30 min, €18), Fade (30 min,
   €15) — with colors. (2.5)
4. **Staff:** create the barbers; assign them to the store; set each one's services (or leave "all").
   If someone only works half-days, set a **custom schedule** (2.8). (2.7/2.8)
5. **Public page:** theme + logo + slug; turn on **Show reservations**. (4)
6. **Messages:** enable email + SMS; reminder 3 h before. (6)
7. **Done:** share the QR at the counter; bookings land in the **Per professional** agenda.

> 📸 **`14-barbershop.png`** — A barbershop's day agenda (columns per barber), full.
![Barbershop](images/14-barbershop.png)

---

# 14.2 Clinic / Practice (Per professional)

**Goal:** appointments with professionals and different durations per specialty.

1. **Type:** Per professional. **Slot:** 30 min. (2.2)
2. **Hours:** Mon–Fri `09:00–12:00` + `14:00–18:00`; Sat `09:00–13:00`. (2.3)
3. **Services:** Consultation (30 min), Physiotherapy (45 min), Nutrition (30 min), Psychology (50
   min). (2.5)
4. **Staff:** each professional with **their** services (scope *Selected*). (2.7)
5. **Payments (optional):** require payment to confirm first consultations. (7)
6. **Messages:** email reminder 24 h before + SMS 2 h before to cut no-shows. (6)

> 💡 Use **Special hours** (2.4) for holidays and training/absence days.

---

# 14.3 Restaurant (Per table)

**Goal:** table bookings by party size, with the menu visible.

1. **Type:** Per table. **Slot:** 60 min. (2.2)
2. **Hours:** Mon–Sat `12:00–14:00` (lunch) + `19:00–21:00` (dinner). (2.3)
3. **Tables (Spaces):** M1/M2 (2p), M3/M4 (4p), M5 (6p), M6 (8p) **exclusive** + "Bar" (4p) **shared**.
   (2.6)
4. **Menu:** categories + items with photos. (2.9)
5. **Public page:** turn on **Show reservations** and **Show menu**. (4)

The day agenda is a **Gantt** (one row per table). Bookings store the **table** and the **party size**
(capped by capacity).

> 📸 **`14-restaurant.png`** — A restaurant's day Gantt (rows per table) + the menu on the public page.
![Restaurant](images/14-restaurant.png)

---

# 14.4 Padel / Courts (Per space)

**Goal:** book courts by the hour, with payment.

1. **Type:** Per space. **Slot:** 60 min. (2.2)
2. **Hours:** every day `08:00–13:00` + `15:00–22:00`. (2.3)
3. **Spaces:** Court 1–4, **exclusive**, **€24/reservation**. (2.6)
4. **Payments:** connect Stripe and **require payment** to confirm. (7)
5. **Booking window:** max ahead 14 days; min lead 30 min. (2.10)

The public booking asks for the **court** and the **time**; payment is the court's price.

---

# 14.5 Escape Room (Per space, per-person price)

1. **Type:** Per space. **Slot:** 60 min. (2.2)
2. **Hours:** Wed–Sun `14:00–22:00`. (2.3)
3. **Rooms (Spaces):** priced **per person** (e.g. €14–18), capacities 4/6/8, **exclusive**. (2.6)
4. **Payments:** the total = per-person price × party size. (7)

---

# 14.6 Spa / Beauty studio (Per service)

**Goal:** book treatments without fixing a specific professional.

1. **Type:** Per service. **Slot:** 30 min (spa) or 15 min (studio). (2.2)
2. **Services:** Massage, Facial, Manicure, Pedicure, Lashes, Brows. (2.5)
3. **Staff (optional):** you can assign therapists; the professional is **optional** in this type.
4. The day agenda shows **columns per service**.

---

# 14.7 Quick checklist (any business)

- [ ] Agenda type chosen and configured (2.2)
- [ ] Opening hours + special days (2.3 / 2.4)
- [ ] Services with duration, price and color (2.5)
- [ ] Spaces/tables, if applicable (2.6)
- [ ] Staff + per-store hours (2.7 / 2.8)
- [ ] Menu, if applicable (2.9)
- [ ] Public page published with slug + theme + QR (4)
- [ ] Messages (reminders) on (6)
- [ ] Payments, if applicable (7)
- [ ] Business timezone and languages (12)

---
**Next:** [Frequently asked questions](15-faq.md).

# 15. Frequently asked questions (FAQ)

\*\*I can't sign in — it says to confirm my email.\*\* The account exists but the email isn't confirmed. Use the \*\*resend\*\* link in the error and click the button in the confirmation email. (1.2)

# Account & access

**I can't sign in — it says to confirm my email.**
The account exists but the email isn't confirmed. Use the **resend** link in the error and click the
button in the confirmation email. (1.2)

**I forgot my password.**
On "Sign in", click **Forgot password** and follow the emailed link. (1.3)

**How do I add a staff member with their own login?**
In Staff, link an **email + password** and set the **role** (Employee / Store admin / Business admin).
(2.7 / 10.3)

# Agenda & bookings

**Why are no times available?**
Possible causes: the day is closed (hours or **special hours**), the staff member doesn't work that
day, the **min/max lead** or the **daily cap** were reached, or there's a conflict. (2.2 / 2.3 / 2.8)

**Can I have a lunch break?**
Yes — set **two ranges** in the day's hours (e.g. 09:00–13:00 and 15:00–19:00). (2.3)

**A professional works fewer hours than the store.**
Turn on the member's **custom schedule** and set the hours per store; slots become the **intersection**
store × member. (2.8)

**A staff member works in two stores.**
They're **required** to set a per-store custom schedule (state the hours in each). (2.8)

**How do I make a recurring booking?**
In the create form, tick the repeat and the end date (not available for multi-service). (3.2)

**I moved/resized by accident on mobile.**
Press and hold ~**0.3 s** on the booking before dragging/resizing. (3.5)

# Public page

**What's my page's address?**
`.../p/your-slug` (set in the editor). On **Pro+** you can enable `your-slug.rezvy.app`. (4.3)

**What language does the page appear in to customers?**
The **business's language** (and the additional ones you offer), not the site's global language. (12)

**Can I take bookings without asking for payment?**
Yes. Payments are **optional** and only on plans that include them. (7 / 8)

# Messages & credits

**What placeholders can I use in templates?**
E.g. `%NAME%`, `%BUSINESS_NAME%`, `%DATE_LONG%`, `%SERVICE%`, `%STAFF%`, `%LINK%`. (6.1)

**I used up my SMS/Email allowance — now what?**
Buy **credits** (they never expire) on the Subscriptions page; they're used after the allowance. (6.3)

# Plans & billing

**How do I change plan?**
In **Subscriptions**, pick the plan and period (monthly/yearly) and pay via Stripe. (8.2)

**It won't let me downgrade.**
Your current usage exceeds the target plan's limits. Reduce the over-limit resources and confirm. (8.3)

# Data & privacy (GDPR)

**A customer asked to delete their data.**
Use **Anonymize** on the customer record: personal data is irreversibly scrubbed, but the
history/statistics remain without identifying them. (5.3)

**Is there a record of who did what?**
Yes — **Settings → Audit** logs creates/edits/deletes by staff member. (12)

# Mobile

**How do I see the agenda in my phone calendar?**
Create a **calendar feed** (iCal) and add it to iPhone/Google; it updates itself. (11)

---

Didn't find your answer? See **[Contact & support](13-support.md)**.