Key Concepts & Glossary
Core concepts and terminology explained
Before diving into the details, here’s a quick reference for the core concepts in CapFlow.
Core Concepts
Resource
A physical capacity unit at your venue. Examples: “Studio A”, “Main Wall”, “Court 1”, “Pool Lane 1”.
Resources are the foundation of scheduling — each timeslot belongs to one resource. If two activities share the same physical space and capacity limit, they should use the same resource and the same shared timeslots. Independently scheduled offers do not automatically share their available places.
Service
A bookable offering that customers see on your storefront. Each service is linked to:
- A Resource (where the activity happens)
- A Shopify Product (for pricing and checkout)
Example: “Group Yoga” is a service linked to the “Studio A” resource and a Shopify product with price variants.
Timeslot
A specific time block when customers can book. Timeslots have:
- A start and end time
- A resource they belong to
- Capacity limits (how many people can book)
Timeslots are usually auto-generated by Schedules, not created manually.
Schedule
A date range with weekly schedule rules that auto-generate timeslots. Instead of creating hundreds of timeslots by hand, you define “every Monday–Friday, 10:00–18:00, hourly sessions” and CapFlow creates all the timeslots for you.
Booking
A confirmed customer reservation for one or more timeslots. Bookings track:
- Customer info (from Shopify)
- Party size (number of people)
- Check-in status
- Which capacity pool was used (member or public)
Booking Hold
A temporary reservation (10-minute TTL) created when a customer starts the checkout process. Holds prevent double-booking while the customer completes payment. If the hold expires without confirmation, the capacity is released.
Waitlist request and offer
A request for a full service session with a fixed group and consecutive duration. A timed email offer reserves the entire request. Claimed means converted to a booking, not necessarily paid. Available from Growth; enable it explicitly.
Block Booking
A staff-created booking that blocks capacity without a customer. Used for maintenance, private events, staff training, or any time you need to reduce available capacity.
Capacity Concepts
Capacity Pool
Each timeslot has parallel capacity buckets:
| Pool | Who can book | Example |
|---|---|---|
| Total | Hard maximum for the timeslot | 12 people |
| Members | Reserved for members with pool access | 4 people |
| Public | Available for anyone (public/walk-in) | 8 people |
Total is usually the sum of Members + Public, but doesn’t have to be.
Pool Release
A mechanism that opens unused member capacity to the public as the timeslot approaches. If member slots haven’t been booked X hours before the session, they become available to everyone.
Example: “Release 24 hours before” — if 2 of 4 member slots are unused 24 hours before the session, those 2 slots become available to public customers.
Occupancy
The percentage of total capacity that’s been booked. Shown throughout the app as colour-coded indicators:
- Green: Low occupancy (plenty of availability)
- Yellow/Orange: Medium occupancy
- Red: Near or at capacity
Membership Concepts
Membership Type
A configurable definition of a membership tier. Each type has a display label, a Shopify tag for customer syncing, and settings for pool access and weekday restrictions. You configure your membership types in Settings > Membership Types.
Entitlement
A customer’s membership rights. Common types include:
- Annual Pass (Full) — Full access for a year (or configured duration)
- Annual Pass (Weekday) — Weekday-only member access (Mon–Fri); weekends at regular pricing
- Monthly Pass — Full access for a month
- Clip Card — Pre-paid credits (clips) for individual sessions
You can create custom membership types beyond these defaults. Entitlements are created automatically when a customer purchases the corresponding Shopify product.
Clip
A pre-paid credit unit. Customers buy a clip card (e.g., 10 clips) and spend clips to book sessions. Clips are refunded if a booking is cancelled within the free cancellation window.
Fee Account
A running balance of fees owed by a customer. Fees are added for:
- Late cancellations (within the fee window)
- No-shows (checked by staff)
Fees are tracked but not auto-charged — you collect them separately.
Booking Flow
Here’s how a customer booking works end-to-end:
Customer visits your product page
↓
Booking widget loads and shows available dates/times
↓
Customer selects service, date, time, and party size
↓
Widget creates a HOLD (10-min reservation)
↓
Customer confirms details (adults/children)
↓
Hold converts to a BOOKING
↓
Shopify cart is created with the right product variants
↓
Customer is redirected to Shopify checkout
↓
Customer pays via your Shopify payment provider
↓
Confirmation email is sent automatically
Status Reference
Booking Statuses
| Status | Meaning |
|---|---|
| CONFIRMED | Active booking |
| CANCELLED | Cancelled by customer or staff |
| NO_SHOW | Customer didn’t arrive (marked by staff) |
Booking Kinds
| Kind | Meaning |
|---|---|
| CUSTOMER | Regular customer booking |
| BLOCK | Staff-created capacity block |
Hold States
| State | Meaning |
|---|---|
| PENDING | Active hold, waiting for confirmation |
| CONFIRMED | Converted to a booking |
| EXPIRED | Timed out without confirmation |
| CANCELLED | Manually cancelled |