Services

The Services page is where you manage everything you offer to customers — from a 30-minute haircut to a week-long equipment rental. Each service has its own name, description, duration, price, eligible branches, linked resources, add-ons, cancellation policy, and payment settings.


The Service List

The Services page at /provider/services shows all your services in a table. Each row displays:

Column What It Shows
Name Service name with its short description underneath
Status Two badges — one for active/inactive, one for verification status
Duration How long the service takes (e.g. "60 minutes", "2 hours", "3 days")
Price The base price in your currency (e.g. 150.00)
Actions Buttons to edit, manage add-ons, toggle active/inactive, or archive

Buttons at the Top

  • Create — opens a form to add a new service
  • View Public Page — opens your public profile page so you can see how customers see your services (only appears if your business profile has a company slug)

Search

Type in the search box to filter by service name or short description.


Verification & Approval

New services go through a verification process before they appear on your public booking page:

Badge Status Meaning
Pending (yellow) Waiting for admin review You submitted the service, the platform team needs to check it
Approved (green) Passed review Fully bookable — customers can see and book this service
Resubmitted (blue) Changed after approval You edited an approved service; it needs re-review
Rejected (red) Did not pass review Read the admin's notes below the badge, fix the issue, and resubmit

To activate a service that was in draft, set its status to Active. The system then submits it for admin review. You can't activate a service that was rejected until you fix the issues mentioned in the admin notes.


Creating a Service

Click Create to open the service form. It is organised into sections, each explained below.

{info} Reservai is built for everything from a simple 30-minute appointment to complex multi-resource day rentals with AI-powered booking. That's why you'll see many options. You don't need to configure everything at once. Fill in the required fields — name, duration, price, resources — and your service will work. Come back to explore deposits, recurring, resource pools, or add-on option groups as your business needs grow. Each section below explains when and why you'd use it.

Basic Information

Field What to Enter Why It Matters
Service Name A clear name customers will recognise Used everywhere — the list, the booking page, invoices
Status Draft or Active Draft saves without publishing; Active submits for review (see Verification)
Description Full description using the rich-text editor Customers see this on the booking page — add details about what the service includes, how to prepare, what to expect
Short Description A brief summary (max 500 characters) Shown in search results and on service cards — keep it punchy
Includes A list of what's included, one item at a time Type each item and press Enter. Example for a car wash: "Exterior wash", "Interior vacuum", "Tyre shine", "Window cleaning". These appear as a bullet list on the booking page.
Service Image A photo representing the service Upload one image (JPEG, PNG, or WebP). Shows on the booking page next to the service details. Good lighting and clear subjects work best.

Duration

Field What to Enter Example
Duration Value How many units the service takes 60
Duration Unit Minutes, Hours, or Days Minutes for a massage, Days for a rental

{primary} The duration unit affects how the service is scheduled. Minutes/Hours create time-slot appointments (e.g. a 60-minute massage at 10:00–11:00). Days create day-based rentals (e.g. a 3-day equipment hire with check-in and check-out dates).

Pricing

Enter a Base Price for the service. This is the starting price in your currency (e.g. 150). Add-ons can increase the total (see Services & Pricing).

Eligible Branches

Select which of your branches offer this service. You must choose at least one.

  • If you have one branch, just select it
  • If you have multiple branches, you can offer this service at some or all of them
  • Only customers booking at an eligible branch will see this service

Eligible Resources

Resources are the people, rooms, equipment, or vehicles needed to deliver your services. Before you can assign resources here, you need to create them on the Resources page.

This section builds up from a simple example to show how resources work together.

1. The Simplest Case: One Resource

A haircut needs a hairstylist. That's it — one person, one resource.

You select the stylist from the dropdown. This is a primary resource — the main person or thing the customer books with.

Every resource has a schedule that you set separately on the Resource Scheduling page. The schedule defines when the resource is available (e.g., "Monday–Friday, 9 AM to 5 PM"). The system checks this schedule whenever a customer tries to book.

If the stylist is already booked at 10:00, the 10:00 slot is unavailable. Simple.

2. How Resources Behave: Operational vs Hub

Each resource has a behaviour that determines how many bookings it can handle at the same time:

Behaviour Meaning Examples
Operational One booking at a time. Once booked, the resource is occupied for the full slot. No other customer can book the same time. A hairstylist, a captain, a massage table, a piece of equipment
Hub Can handle multiple bookings at the same time, up to a set capacity. Like a room that fits several people at once. A yoga studio (capacity 20), a boat (capacity 20), a parking lot

Quick example:

  • A hairstylist is Operational — you can't book two haircuts at 10:00 with the same stylist
  • A yoga studio is a Hub with capacity 20 — 15 people can book the same 10:00 class, and 5 more can still join

You set the behaviour when you create the resource (see Resources). The schedule you set on the Resource Scheduling page defines the operating hours for both types.

3. Adding a Second Resource

Some services need more than one resource to run. For example, a boat tour needs both a boat and a captain.

When you select a second resource, you'll see a checkbox labelled Resource Is Relevant. This lets you mark a resource as a supporting role:

Role Checkbox What It Means
Primary (default) Unchecked The main resource. The customer picks this when booking. At least one primary is required.
Relevant (support) Checked Also required, but secondary. The system checks this resource too — it must be free and have schedule coverage.

Both roles affect availability. If the relevant resource is closed or already booked by another service, the slot is blocked — even if the primary resource is free. You must have at least one primary; you cannot mark all resources as relevant.

4. Example: Boat Tour

Let's say you run boat tours. Your service needs:

Resource Role Behaviour Why
The boat Primary (unchecked) Hub, capacity 20 The main item the customer books. A Hub boat can take multiple tour groups simultaneously up to 20 people.
The captain Relevant (checked) Operational Also required — you can't run a tour without a captain. But the captain is Operational (one tour at a time).

When a customer books the boat tour for 5 guests at 10:00:

  1. The system checks the boat's schedule — is it open at 10:00? Yes. Does the boat have capacity? It has 20, and you're requesting 5. The boat reserves 5 spots, leaving 15 remaining.
  2. The system checks the captain's schedule — is the captain available at 10:00? Yes. The captain is reserved for the full 10:00–11:00 slot.
  3. The booking goes through.

Now, what happens if another customer tries to book the same tour for 10 people at 10:00?

  • The boat still has 15 remaining capacity — 10 fits. ✅
  • The captain is already reserved — but this is the same tour, same service, so it uses the same captain reservation. ✅
  • The slot is available. The boat now has 5 remaining spots.

What happens if you have a second service — "Captain's Hour" — that uses the captain as its primary resource, and someone tries to book it at 10:00?

  • The captain is already reserved by the boat tour until 11:00. ❌
  • The 10:00 slot is blocked, even though the captain's own schedule says "open".

This is the key point: a relevant resource blocks ALL other services that need it, just like a primary resource does.

5. Summary

Scenario Primary Resource Relevant Resource Can You Book?
Both have schedule coverage and are free ✅ Ready ✅ Ready ✅ Yes
Primary is free, relevant is already booked ✅ Free ❌ Busy ❌ No
Primary is free, relevant has no schedule today ✅ Free ❌ Closed ❌ No
Primary is a Hub with capacity, relevant is free ✅ Has space ✅ Ready ✅ Yes
Primary has capacity, relevant is booked ✅ Has space ❌ Busy ❌ No

{primary} A service can have multiple primary resources. For example, you could add 5 hairstylists all as primary resources (unmarked). The customer would then pick their preferred stylist, or the system auto-assigns one depending on the selection mode below. Each primary resource is checked independently — if one is busy, the others may still be available.

6. Per-Resource Buffer Toggle

When the service has a buffer configured (see Services & Pricing), each selected resource shows an Applies Buffer After Booking checkbox:

  • Enabled — the buffer gap is added after each booking on this resource
  • Disabled — bookings on this resource run back-to-back without buffer

Not every resource needs turnaround time. A room might need 15 minutes to clean between appointments, but a staff member can start a new booking immediately. The system requires at least one resource to have buffer enabled.

{primary} The total booking slot is: Service duration + sequential add-on durations + buffer (if enabled for the resource). Without buffer (0 min), the toggle is hidden entirely.

7. Resource Pools (Interchangeable Relevant Resources)

For relevant (support) resources, you can optionally group them into a named pool. A pool marks resources as interchangeable — when one is busy, the system checks others in the same pool before blocking the slot.

Example — Boat Tour Service:

  • Primary: The boat
  • Pool "Captains": Staff A, Staff B (both relevant resources)
  • Customer books the boat for 10:00. Staff A is already booked. The system checks Staff B in the same "Captains" pool — Staff B is free. The slot is available.

Without a pool, each relevant resource is checked independently. If Staff A were busy and no pool existed, the slot would be blocked even though Staff B is free.

Scenario With Pool Without Pool
Primary free, one relevant busy, another relevant free from same pool ✅ Available (system uses the free one) ❌ Blocked
All resources in pool are busy ❌ Blocked ❌ Blocked (same result)

The Resource Selection Mode (next section) controls whether customers see and choose from these resources when booking.

Resource Selection Mode

Mode Meaning Best For
Required The customer must pick a specific resource when booking Multiple staff members offering the same service — let the customer choose their preferred stylist, therapist, or room
Optional The customer can pick a resource but doesn't have to When you have multiple equivalent resources — the system assigns one automatically if the customer doesn't pick
Hidden The system auto-assigns the resource behind the scenes Single-resource services — the customer doesn't need to know which room or staff member they're getting

Capacity & Group Bookings

Field What It Does Example
Max Participants The maximum number of people who can book this service in a single slot A yoga class with max 15 participants means 15 people can book the same 10:00 AM slot. Leave empty for one-person appointments.
Enable Group Bookings Lets customers book for multiple guests at once A customer booking a yoga class for themselves + 2 friends (3 people total). When enabled, add-ons can also be charged "per guest" (see Add-On Charge Units).

Example — Yoga Class:

  • Max Participants: 15
  • Group Bookings: Enabled
  • Customer A books 3 spots (themselves + 2 guests)
  • Customer B books 1 spot
  • Slots remaining: 15 − 3 − 1 = 11

Example — Haircut:

  • Max Participants: (empty)
  • Group Bookings: Disabled
  • Each booking is for one person only

Recurring Bookings

Enable this if customers should be able to book a repeating series, such as a weekly massage every Monday for a month.

Example — Personal Training Package: A customer wants to book 8 personal training sessions — every Monday and Wednesday for 4 weeks.

Field Setting for This Example
Recurring Enabled ✅ On
Recurring Intervals Select "weekly"
Max Occurrences 8 (4 weeks × 2 sessions per week)
Payment Policy Pay as you go — customer pays per session; Full upfront — customer pays for all 8 at once
Fixed Occurrences ✅ On — the customer commits to exactly 8 sessions

Available recurrence intervals:

Interval Example
Daily Every day (Mon–Sun) until max occurrences reached
Every other day Monday, Wednesday, Friday...
Weekly Every Monday, every Tuesday, etc.
Biweekly Every other week on the chosen day
Monthly Same date every month

Payment policies for recurring bookings:

Policy When Money Is Collected Best For
Pay as you go Before each occurrence Ongoing commitments — the customer can skip a week
Full upfront At the time of first booking Fixed packages — training programs, course series

Fixed Occurrences: When enabled, the customer commits to a set number of sessions. When disabled, each session can be booked independently within the recurring window.

Payment Method Overrides

These toggles control how customers can pay for THIS specific service. They override your default payment settings.

Toggle What It Means When It's Available
Accept Credit Card Customers can pay by card online through your gateway Requires online payment setup (your own Stripe Connect, or PayPal where supported)
Cash on Delivery Customers pay at the appointment in cash Always available, but disabled when a deposit is required (deposits need online payment)

How card payments reach you: you connect your own Stripe account, customers pay you directly, and the money settles in your gateway. Reservai tracks the booking, invoicing and commission but never holds your money.

{info} If you haven't set up online payment, a blue notice appears at the top of the section: "Online payment is not configured for your account. Only Cash on Delivery is available." In that case, the credit card toggle is greyed out.

Deposit Settings

Require a deposit to lock in a booking. Deposits are collected immediately; the balance is due later.

Field What to Enter Example
Deposit Required ✅ On to require a deposit 200 service → 50 deposit
Deposit Type Fixed (specific amount) or Percent (percentage of total) Fixed = 50; Percent = 25%
Deposit Value The amount or percentage 50 (for fixed) or 25 (for percent)

{warning} Enabling deposits switches off Cash on Delivery automatically, because deposits require online card payment.

Cancellation & Change Policy

Field What It Does Example
Cancellation Policy Text Free-text policy customers see when booking "Cancel at least 24 hours before your appointment for a full refund."
Free Cancellation Window How long before the appointment customers can cancel for free 24 hours before — a customer with a 10 AM Tuesday appointment can cancel any time before 10 AM Monday
Total Fee Refund % Before Deadline % refunded if cancelled before the free window 100% — full refund
Total Fee Refund % After Deadline % refunded if cancelled after the free window 50% — half refund
Allow Customer to Cancel Let customers cancel from their account ✅ On recommended — reduces no-shows

Available free cancellation windows: 30 minutes, 1 hour, 2 hours, 5 hours, 12 hours, 16 hours, 1 day, 2 days, 3 days, 5 days, 10 days, 20 days, 30 days

{primary} Deposit refund rules appear when deposits are enabled. You set separate refund percentages for the deposit portion vs the total fee. Example: you might keep the deposit (0% deposit refund) but still refund the service fee if cancelled early.

No-Show Policy

Field What It Does Example
Collect No-Show Fee ✅ On to charge a fee if the customer doesn't arrive Applies when customer doesn't show and doesn't cancel
No-Show Retained % What % of the service fee is charged 100% — full service fee charged. 50% — half fee charged

Example: A 200 service with 100% no-show retained → if the customer no-shows, they are charged 200 (or the deposit is kept if a deposit was taken).


Invisible Custom Service

Toggle Invisible Custom Service if this service should only be available at your counter (point of sale), not on the public booking page. Use this for:

  • Custom one-off services you create on the spot
  • Special rates for walk-in customers
  • Services that don't need an online booking flow

When enabled, the service won't appear on your public profile page regardless of its verification status.


Add-Ons

Add-ons are extra items or options customers can add when booking a service. Manage add-ons from the service list by clicking the Add-ons button on any service row.

Creating an Add-On

Field What to Enter Example
Name A clear name customers will recognise "Extra waxing", "Insurance", "Engraving"
Price The cost of the add-on (hidden if using options — see below) 50
Description Optional explanation "Full undercarriage wash — adds 15 minutes"
Image Optional photo An image of the add-on item

Add-On Option Groups (Dynamic Pricing)

Toggle Has Options to turn the add-on into a choice group where customers pick from variants, each with its own price. This replaces the need for separate add-ons for each variant.

Example — Car Wash "Protection Package" add-on with options:

Option Price
Basic wax 0
Standard wax 50
Premium ceramic coating 150

The customer sees these as choices during booking. The add-on price changes based on their selection.

Options setup:

  • Click Add Option to add a row
  • Enter a Label (what the customer sees) and an Option Price
  • Each option must have both a label and a price (can be 0)
  • Minimum 2 options required

Required toggle: When Is Required is ON, the customer must pick one of the options. When OFF, the add-on is optional and the customer can skip it entirely.

{primary} Option groups are great for upgrades, insurance tiers, package sizes, or any add-on where you want to offer choices at different price points. A single add-on replaces what would otherwise need multiple separate add-on entries.

Charge Units

The charge unit determines how the add-on price is calculated:

Charge Unit How It's Calculated Example When Available
Once per booking One flat fee regardless of guests or duration 50 "Insurance" = 50 total Always
Per guest Price × number of guests 25 "Welcome drink" × 3 guests = 75 Requires group bookings on the service
Per day Price × number of rental days 100 "GPS unit" × 3 days = 300 Requires day-based duration
Per guest & day Price × guests × days 15 "Breakfast" × 3 guests × 2 days = 90 Requires both group bookings and day-based duration

The dropdown only shows charge units that are valid for the current service. If only "Once per booking" is available, you'll see a notice explaining the other units require group bookings or day-based duration.


Archiving Services

If you no longer offer a service, you can archive it. Archiving removes it from the public booking page but keeps the data for historical records (past bookings, reports, transactions).

Click the Archive button in the service's action row. If the service has upcoming bookings, you'll see a warning listing those bookings — you can either wait for them to pass or cancel them first.

Archived services can be reactivated later.


Related Pages

  • Services & Pricing — pricing details, deposits, and commission
  • Resources — create and manage the resources linked to your services
  • Resource Scheduling — configure availability windows for your resources
  • Dashboard — view the service popularity chart and booking trends