Skip to main content

Advanced Features

This guide covers advanced configuration features including multi-tenant setup, capacity pools, waiver management, notification configuration, and tax setup.

Overview

Advanced features provide enterprise-level capabilities:

  • Multi-Tenant Management: Managing multiple tenant organizations
  • Capacity Pools: Shared capacity across resources
  • Waiver Management: Digital waivers and compliance
  • Notification Configuration: Email and SMS setup
  • Tax Configuration: Tax rules and calculation
  • Sandbox Mode: Test environment without real transactions
  • Auto-Reschedule Engine: Automatic conflict resolution

Multi-Tenant Management

Understanding Multi-Tenancy

The system is designed as a multi-tenant SaaS platform where:

  • Each tenant has complete data isolation
  • Tenants cannot access each other's data
  • Each tenant operates independently
  • Shared infrastructure, separate data

Tenant Structure

Tenant Hierarchy:

Tenant
├── Sites (multiple physical locations)
│ ├── Products
│ ├── Resources
│ └── Schedules
└── Configuration
├── Policies
├── Pricing
└── Settings

Creating Tenants

Tenant Information:

  • Tenant ID: Unique identifier
  • Tenant Name: Organization name
  • Default Locale: Language preference
  • Default Currency: Base currency
  • Status: Active or inactive

Tenant Configuration:

  • Default timezone
  • Business settings
  • Policy defaults
  • Notification preferences

Multi-Site Management

Managing Multiple Sites:

  • Each tenant can have multiple sites
  • Sites operate independently
  • Shared configuration possible
  • Site-specific overrides available

Site Configuration:

  • Site name and address
  • Timezone per site
  • Site-specific policies
  • Independent schedules
  • Site-specific resources

Common Multi-Site Scenarios:

  • Multiple venue locations
  • Different timezones
  • Regional pricing differences
  • Independent operations

Per-Site Payment Credentials

By default every site under a tenant charges through the tenant's payment gateway credentials. When a site needs to settle into its own Stripe account or its own Paytrail merchant (for example, franchised or separately-owned venues under one tenant), you can give that site its own credentials in the Site Payment Settings card.

What you can configure per site:

  • Stripe — publishable key, secret key, and webhook secret
  • Paytrail — merchant ID and secret key
  • An Enable custom payments toggle that must be on for the site credentials to take effect

How resolution works:

Credentials are resolved for each booking in a fixed precedence — site → tenant → environment:

  1. If the booking's site has Enable custom payments on and a key for the provider, that site key is used.
  2. Otherwise it falls through to the tenant's credentials.
  3. Paytrail may then fall through to the platform environment credentials; Stripe never falls back to the platform key — an unconfigured site/tenant simply reports "not configured" rather than charging into the platform account.

This same precedence applies to charges, refunds, group / mixed-tender payments, and the site-aware Paytrail stale-payment poller, so a payment and its later refund always settle against the same account.

Security:

  • Secret keys and webhook secrets are encrypted at rest (same encryption path as tenant credentials) and are never returned in plaintext when the settings are read back — the form shows them masked.
  • A site with no settings row, or with Enable custom payments off, contributes no site-level credentials and behaves exactly as before (tenant credentials are used). Existing single-account tenants need no changes.

Tenant Isolation

Data Isolation:

  • Row-level security (RLS) enforced
  • Database-level tenant filtering
  • API-level tenant validation
  • Complete data separation

Isolation Guarantees:

  • Cannot access other tenant data
  • API requests require tenant context
  • Database queries filtered automatically
  • Cross-tenant operations prevented

Capacity Pools

Capacity pools allow multiple resources to share a common capacity limit.

Understanding Capacity Pools

What are Capacity Pools?

  • Shared capacity across resources
  • Common limit for multiple resources
  • Used when resources share availability
  • Flexible capacity management

Use Cases:

  • General admission slots
  • Shared equipment pools
  • Flexible room assignments
  • Overflow capacity management

Creating Capacity Pools

Required Information:

  • Pool Name: Descriptive name
  • Pool Type: Shared, dedicated, overflow, priority, waitlist
  • Total Capacity: Maximum capacity limit
  • Site (optional): Site-specific pool

Pool Configuration:

  • Overbooking allowed
  • Overbooking percentage
  • Waitlist enabled
  • Auto-release timing
  • Allocation strategy

Pool Types

Shared Pool

  • Multiple resources share capacity
  • First-come-first-served
  • Common availability
  • Example: General admission

Dedicated Pool

  • Reserved capacity
  • Specific resources only
  • Guaranteed availability
  • Example: VIP areas

Overflow Pool

  • Additional capacity when primary full
  • Used for peak times
  • Flexible allocation
  • Example: Extra equipment

Priority Pool

  • Priority-based allocation
  • Weighted access
  • Different access levels
  • Example: Members vs. general

Waitlist Pool

  • Capacity beyond normal limit
  • Waitlist management
  • Auto-allocation when available
  • Example: High-demand products

Pool Configuration Options

Allocation Strategies:

  • First-Come-First-Served: Standard booking order
  • Priority-Based: Weighted by priority
  • Round-Robin: Distribute evenly
  • Weighted: Custom weighting rules

Overbooking Settings:

  • Allow overbooking (yes/no)
  • Overbooking percentage
  • Maximum overbooking limit
  • Overbooking handling

Waitlist Settings:

  • Enable waitlist
  • Waitlist size limit
  • Auto-notification
  • Priority handling

Linking Resources to Pools

Assigning Resources:

  1. Create capacity pool
  2. Edit resource
  3. Select capacity pool
  4. Resource uses pool capacity

Pool Capacity:

  • Resources draw from pool
  • Pool capacity shared
  • Total bookings limited by pool
  • Individual resources can have own limits

Pool Monitoring

Pool Metrics:

  • Current utilization
  • Available capacity
  • Reserved capacity
  • Allocation history

Pool Reports:

  • Utilization trends
  • Peak usage periods
  • Overbooking statistics
  • Waitlist metrics

Waiver Management

Waivers are legal documents customers must accept for certain activities.

Understanding Waivers

What are Waivers?

  • Legal consent forms
  • Risk acknowledgment
  • Activity-specific requirements
  • Compliance documentation

When Required:

  • High-risk activities
  • Legal requirements
  • Age restrictions
  • Special conditions

Creating Waiver Templates

Step 1: Basic Information

  • Template Name: Identifier
  • Version: Version number (for updates)
  • Content: Waiver text (HTML/markdown)
  • Locale: Language version

Step 2: Configuration

  • Requires Signature: Digital signature required
  • Applicable For: All, specific products, specific sites
  • Scope IDs: Which products/sites require this

Step 3: Content

  • Legal text
  • Terms and conditions
  • Risk acknowledgment
  • Signature section

Multi-Language Support:

  • Create templates per language
  • Same template, different locales
  • Automatic selection by customer locale

Waiver Versions

Version Management:

  • Templates have versions
  • Track version history
  • Old signatures preserved
  • New bookings use latest version

Versioning Rules:

  • Increment version for changes
  • Old versions remain accessible
  • Signatures linked to version
  • Compliance maintained

Waiver Signing

Digital Signatures:

  • Customer signs electronically
  • Signature captured and stored
  • Timestamp recorded
  • Legal validity maintained

Signature Process:

  1. Customer views waiver
  2. Reads terms
  3. Provides signature
  4. Signature stored
  5. Linked to booking

Signature Storage:

  • Secure storage
  • Immutable records
  • Audit trail
  • Compliance ready

Waiver Compliance

Compliance Features:

  • Required waivers enforced
  • Signature validation
  • Age verification
  • Guardian signatures for minors

Audit Trail:

  • All signatures logged
  • Timestamp records
  • IP address tracking
  • User agent information

Managing Waivers

Template Management:

  • Create new templates
  • Update existing templates
  • Deactivate old templates
  • Version control

Waiver Analytics:

  • Signing rates
  • Version usage
  • Compliance statistics
  • Missing signatures

Notification Configuration

Notifications keep customers informed about their bookings.

Notification Types

Booking Notifications:

  • Confirmation emails
  • Reminder notifications
  • Cancellation notices
  • Reschedule confirmations

Operational Notifications:

  • Hold expiration warnings
  • Payment confirmations
  • Refund notifications
  • No-show alerts

Notification Channels

Email Notifications:

  • Primary communication channel
  • HTML email templates
  • Branded templates
  • Multi-language support

SMS Notifications:

  • Text message alerts
  • Short, concise messages
  • Important updates only
  • Opt-in required

Push Notifications:

  • Mobile app notifications
  • Real-time alerts
  • Requires mobile app
  • User preferences

Configuring Notifications

Notification Settings:

  • Enable/disable per type
  • Delivery preferences
  • Timing settings
  • Language selection

Template Configuration:

  • Customize email templates
  • Brand colors and logos
  • Message content
  • Personalization variables

Notification Preferences:

  • Default language
  • Business contact information
  • Support email/phone
  • Booking website URL

Notification Templates

Template Variables:

  • Customer name
  • Booking details
  • Dates and times
  • Pricing information
  • Cancellation policies

Customization:

  • HTML templates
  • Brand styling
  • Logo and images
  • Footer information

Notification Scheduling

Automatic Notifications:

  • Sent at key events
  • Configurable timing
  • Follow-up sequences
  • Reminder schedules

Reminder Settings:

  • Days before booking
  • Hours before booking
  • Multiple reminders
  • Custom timing

Follow-Up Notifications:

  • After booking completion
  • Feedback requests
  • Rebooking suggestions
  • Loyalty information

Notification Providers

Email Provider (Brevo):

  • Transactional emails
  • Template management
  • Delivery tracking
  • Analytics

SMS Provider (Twilio):

  • Text messaging
  • Delivery confirmations
  • International support
  • Usage tracking

Tax Configuration

Tax configuration defines how taxes are calculated and applied to bookings.

Understanding Tax Configuration

Tax Modes:

  • INCLUSIVE: Tax included in price (VAT-style)
  • EXCLUSIVE: Tax added to price (Sales Tax style)

Tax Hierarchy:

  • Tenant-level defaults
  • Site-level overrides
  • Product-level overrides (future)

Creating Tax Configuration

Step 1: Basic Information

  • Tax Name: Display name (e.g., "VAT", "Sales Tax")
  • Tax Rate: Percentage (e.g., 0.20 for 20%)
  • Tax Mode: Inclusive or Exclusive
  • Jurisdiction: Country/state/city code

Step 2: Scope

  • Tenant-Wide: Applies to all sites
  • Site-Specific: Override for specific site

Step 3: Applicability

  • Base Price: Tax base booking price
  • Add-ons: Tax add-on items
  • Shipping: Tax shipping costs (if applicable)

Step 4: Validity Period

  • Effective From: Start date
  • Effective To: End date (optional)

Tax Modes Explained

INCLUSIVE Mode (VAT-style)

  • Tax included in displayed price
  • Common in Europe
  • Example: €100 includes €20 VAT (20%)

Calculation:

Display Price: €100 (includes tax)
Tax Rate: 20%
Tax Amount: €16.67 (20% of €83.33)
Net Price: €83.33

EXCLUSIVE Mode (Sales Tax style)

  • Tax added to base price
  • Common in US
  • Example: €100 + €8 tax = €108

Calculation:

Base Price: €100
Tax Rate: 8%
Tax Amount: €8
Total Price: €108

Jurisdiction Support

Jurisdiction Types:

  • Country: Country-level tax (e.g., "GB", "US")
  • State/Province: Regional tax (e.g., "US-CA", "CA-ON")
  • City: Local tax (e.g., "US-CA-LA")
  • Custom: Custom jurisdiction codes

Jurisdiction Hierarchy:

  • Most specific applies
  • Site location determines jurisdiction
  • Customer location considered (future)

Tax Calculation

What Gets Taxed:

  • Base booking price
  • Add-ons (configurable)
  • Shipping (if applicable)
  • Service fees (if applicable)

Tax Exemptions:

  • Certain products
  • Specific customer types
  • Jurisdiction exemptions
  • Special circumstances

Tax Reporting

Tax Reports:

  • Tax collected by period
  • Breakdown by jurisdiction
  • Tax-exempt transactions
  • Compliance reports

Tax Compliance:

  • Accurate tax calculation
  • Jurisdiction tracking
  • Audit trail
  • Export for accounting

Advanced Configuration Workflows

Setting Up Multi-Tenant Environment

Initial Setup:

  1. Create tenant organization
  2. Configure default settings
  3. Set up first site
  4. Configure policies
  5. Set up pricing
  6. Test booking flow

Adding Sites:

  1. Create new site
  2. Configure site settings
  3. Set timezone
  4. Link products
  5. Configure resources
  6. Set up schedules

Configuring Capacity Pools

Pool Setup:

  1. Create capacity pool
  2. Set total capacity
  3. Configure allocation strategy
  4. Link resources to pool
  5. Test capacity allocation
  6. Monitor utilization

Implementing Waivers

Waiver Setup:

  1. Create waiver template
  2. Add content (legal text)
  3. Configure applicability
  4. Test waiver display
  5. Verify signature capture
  6. Review compliance

Notification Setup

Email Configuration:

  1. Configure Brevo/SendGrid
  2. Set up email templates
  3. Customize branding
  4. Test email delivery
  5. Configure preferences

SMS Configuration:

  1. Configure Twilio
  2. Set up SMS templates
  3. Configure opt-in
  4. Test SMS delivery
  5. Monitor usage

Tax Setup

Tax Configuration:

  1. Determine tax mode (inclusive/exclusive)
  2. Identify jurisdictions
  3. Set tax rates
  4. Configure applicability
  5. Test tax calculation
  6. Verify reporting

Best Practices

Multi-Tenant Management

  1. Clear Naming: Use descriptive tenant names
  2. Consistent Structure: Standardize site setup
  3. Policy Templates: Create reusable policy templates
  4. Regular Audits: Verify tenant isolation

Capacity Pool Management

  1. Monitor Utilization: Track pool usage regularly
  2. Optimize Allocation: Adjust strategies based on usage
  3. Plan Capacity: Forecast demand
  4. Document Rules: Document allocation logic

Waiver Management

  1. Legal Review: Have waivers reviewed by legal
  2. Version Control: Track all version changes
  3. Clear Language: Write clearly for customers
  4. Compliance: Ensure regulatory compliance

Notification Management

  1. Test Templates: Test all notification types
  2. Monitor Delivery: Track delivery rates
  3. Personalize: Use customer information
  4. Respect Preferences: Honor opt-outs

Tax Management

  1. Accurate Rates: Keep tax rates current
  2. Jurisdiction Updates: Update for law changes
  3. Regular Audits: Verify tax calculations
  4. Compliance: Maintain compliance records

Troubleshooting

Multi-Tenant Issues

Data Leakage:

  • Verify RLS policies
  • Check tenant context
  • Review API guards
  • Test isolation

Configuration Issues:

  • Verify tenant settings
  • Check site configuration
  • Review policy inheritance
  • Test tenant switching

Capacity Pool Issues

Capacity Not Allocating:

  • Verify pool configuration
  • Check resource links
  • Review allocation strategy
  • Test booking flow

Overbooking Issues:

  • Verify overbooking settings
  • Check pool limits
  • Review allocation rules
  • Monitor utilization

Waiver Issues

Waivers Not Showing:

  • Check template active status
  • Verify applicability rules
  • Review product configuration
  • Test waiver retrieval

Signature Issues:

  • Verify signature capture
  • Check storage permissions
  • Review signature format
  • Test signing process

Notification Issues

Emails Not Sending:

  • Verify provider configuration
  • Check template syntax
  • Review delivery logs
  • Test email delivery

SMS Not Sending:

  • Verify Twilio configuration
  • Check opt-in status
  • Review message format
  • Test SMS delivery

Tax Issues

Tax Not Calculating:

  • Verify tax configuration active
  • Check jurisdiction matching
  • Review tax mode setting
  • Test tax calculation

Wrong Tax Amount:

  • Verify tax rate
  • Check tax mode
  • Review applicability rules
  • Test with sample booking

Sandbox Mode

Sandbox mode allows testing booking flows without affecting production data or sending real notifications/payments.

Understanding Sandbox Mode

What is Sandbox Mode?

  • Test environment for the tenant
  • No real notifications sent
  • No real payments processed
  • Clear visual indicators in responses
  • Complete audit logging

Use Cases:

  • Testing new product configurations
  • Training new staff
  • Demonstrating system to stakeholders
  • Integration testing

Enabling Sandbox Mode

Toggle Sandbox Mode:

  • Admin with elevated permissions required
  • Toggle via admin panel or API
  • Takes effect immediately
  • All subsequent operations in sandbox

API Endpoint:

POST /api/v1/admin/tenants/sandbox/toggle
Authorization: Bearer <admin-token>

{
"enabled": true,
"reason": "Testing new pricing configuration"
}

Sandbox Behavior

Notifications:

  • Emails are logged but not sent
  • SMS messages are logged but not sent
  • Push notifications are simulated
  • All notification attempts recorded

Payments:

  • Stripe test mode automatically used
  • No real charges to cards
  • Payment flows work normally
  • Refunds simulated

Bookings:

  • Bookings created normally
  • Visible in admin panel
  • Marked as sandbox bookings
  • Can be cleaned up easily

Sandbox Indicators

API Responses:

All responses include sandbox indicator when active:

{
"success": true,
"data": { ... },
"sandbox": true,
"sandboxMessage": "This operation was performed in sandbox mode"
}

Admin Panel:

  • Clear banner indicating sandbox mode
  • Visual indicators on bookings
  • Sandbox badge on relevant screens

Sandbox Best Practices

  1. Document Testing: Log what you tested
  2. Clean Up: Remove test data after testing
  3. Limited Access: Restrict sandbox toggle permissions
  4. Regular Disable: Don't leave sandbox enabled long-term

Cancellation & Reschedule Policies

Each site has configurable cancellation and reschedule policies stored as JSON. These are set at the site level — different brands can have different policies.

Cancellation Policy

The cancellation policy supports sliding-scale fee tiers based on how far in advance the cancellation is made:

Time Before EventFeeCustomer Receives
More than 7 days0% (free)Full refund
3–7 days50%Half refund
Less than 3 days100%No refund

Policy fields:

FieldDescription
fee_calculationSLIDING_SCALE or NO_FEE
sliding_scale_rulesArray of {threshold_value, threshold_unit, fee_percentage}
auto_refund_enabledAutomatically process refunds
refund_processing_daysBusiness days for refund processing (default: 5)

Reschedule Policy

FieldDescription
allowedWhether rescheduling is permitted
minimum_notice_valueMinimum notice required (e.g., 2)
minimum_notice_unitHOURS or DAYS
capacity_check_requiredVerify capacity at new time
max_reschedules_per_bookingMaximum reschedules allowed (default: 3)

Policies are configured per site and applied automatically during booking cancellation and reschedule flows.

Auto-Reschedule Engine

The auto-reschedule engine automatically handles booking conflicts when resources become unavailable.

Understanding Auto-Reschedule

What is Auto-Reschedule?

  • Automatic conflict detection
  • Alternative slot suggestions
  • Admin approval workflow
  • Customer notification
  • Complete audit trail

When Triggered:

  • Resource enters maintenance
  • Schedule changes affect bookings
  • Capacity reductions
  • Resource deactivation

Reschedule Strategies

SAME_DAY Strategy:

  • Finds alternative on same date
  • Minimal disruption to customers
  • Preferred when available
  • Default strategy

NEARBY Strategy:

  • Looks within configurable window
  • Usually ±3 days from original
  • Good for flexible activities
  • Respects customer preferences

FLEXIBLE Strategy:

  • Broader search window
  • Considers capacity optimization
  • May suggest different times
  • Best for high-demand periods

CUSTOMER_CHOICE Strategy:

  • Presents multiple options
  • Customer selects preferred time
  • Higher engagement required
  • Best for VIP bookings

Configuration

Tenant-Level Settings:

{
"autoRescheduleEnabled": true,
"defaultStrategy": "SAME_DAY",
"searchWindowDays": 7,
"requireAdminApproval": true,
"notifyCustomerAutomatically": true
}

Site-Level Overrides:

  • Override strategy per site
  • Different windows per location
  • Custom approval workflows

Reschedule Workflow

Step 1: Conflict Detection

  1. Resource marked unavailable
  2. System identifies affected bookings
  3. Suggestions generated automatically

Step 2: Admin Review (if enabled)

  1. Admin sees pending suggestions
  2. Reviews each affected booking
  3. Approves, modifies, or rejects

Step 3: Customer Notification

  1. Customer notified of change
  2. New booking details provided
  3. Option to decline (if configured)

Step 4: Execution

  1. Booking moved to new slot
  2. Capacity updated
  3. Audit trail created

Managing Suggestions

Viewing Suggestions:

GET /api/v1/admin/reschedule/suggestions
Authorization: Bearer <admin-token>

Approving Suggestions:

POST /api/v1/admin/reschedule/suggestions/{id}/approve
Authorization: Bearer <admin-token>

Bulk Operations:

  • Approve multiple suggestions
  • Reject with reason
  • Generate alternative suggestions

Customer Self-Service

Customer Endpoints:

  • View pending reschedule
  • Accept proposed time
  • Decline and request alternatives
  • Contact support

Customer Portal:

  • Clear notification of reschedule
  • Easy acceptance flow
  • Alternative time selection
  • Cancellation option

Auto-Reschedule Best Practices

  1. Set Reasonable Windows: Don't search too far ahead
  2. Use Approval: Review before executing
  3. Clear Communication: Notify customers promptly
  4. Track Success: Monitor acceptance rates
  5. Handle Declines: Have fallback procedures

Next Steps