Library

Assigning Workout Plans

How It Works:

1. Select Client - Go to your Clients page and click "Assign Service" next to any client 2. Choose Service - Select from your created memberships, packs, or passes 3. Start Subscription - Client is redirected to professional Stripe Checkout 4. Automatic Setup - Client enters payment method and agrees to billing terms 5. Entitlement Activated - Client's service goes live and credits are initialized

Client Onboarding Flow:

Invitation System - Trainers send email invitations with assigned service • Onboarding Wizard - 6-step process for new clients: 1. Accept invitation (validate token) 2. Create account (email/password) - Password must meet complexity requirements (see Password Requirements section) 3. Profile setup (name, phone, etc.) 4. Terms acceptance 5. Payment Setup (Optional) - Only shown for Stripe-linked services. Manual billing services skip this step entirely. 6. Welcome complete • Payment Flexibility - Clients can complete onboarding without immediate payment • Smart Reminders - Payment setup banner appears in client portal if payment skipped • Context Retention - System remembers which service was assigned during invitation • Resilient Onboarding - If a client closes their browser, loses connection, or encounters an error mid-onboarding, they can click the invitation link again to resume where they left off. Progress is saved automatically after each step.

Manual Billing Services:

When a service uses manual billing (not connected to Stripe), the payment step is skipped during onboarding. The trainer handles payment collection directly. When inviting a client, if the assigned service uses manual billing, the "Require payment" option is hidden and a notice explains that the service is not connected to Stripe.

Service Assignment Types:

MEMBERSHIP Assignment:

• Client redirected to Stripe Checkout for subscription setup • Automatic recurring billing (weekly/monthly) • Credits replenish automatically each billing cycle via webhook • Client can manage their subscription via Stripe Customer Portal • Cancellations are scheduled at the end of the current billing period (the client keeps full access until then). The trainer can also Undo a cancellation before the period ends. • Example: "Monthly PT (2x/week)" → 8 credits replenish every month

PACK Assignment:

• Client pays one-time fee via Stripe Checkout • Fixed credits granted immediately (e.g., 10 sessions) • Credits valid for set expiry period (default 180 days) • Client books sessions using their credit balance • Example: "10-Session Pack" → 10 credits, expires in 6 months

PASS Assignment:

• Client pays one-time fee via Stripe Checkout • Time-limited access window activated • Optional daily booking limits enforced • Access expires after set days • Example: "7-Day Trial Pass" → Unlimited or 1 session/day for 7 days

Benefits:

• ✅ No Payment Chasing - Automatic recurring billing for memberships • ✅ Professional Experience - Secure Stripe Checkout like Netflix/Spotify • ✅ Client Self-Service - Clients manage payments via Stripe Portal • ✅ Smart Credit Tracking - Idempotent ledger prevents double-deduction • ✅ Automatic Replenishment - Membership credits refill each period • ✅ More Training Time - Focus on clients, not billing

Security:

• PCI compliant processing via Stripe • Client data stays with Stripe (not stored by us) • Automatic retry for failed payments • Professional dunning management • Idempotent webhook handling (no duplicate charges)

Important Limitations:

Subscription cancellations are fair by default - Unassigning a subscription schedules cancellation at the end of the current billing period. The client keeps full access until then. No further charges. • One-off packs cancel immediately - Packs and passes (one-time payments) cancel straight away when unassigned. There is no billing cycle to wait for. • No Automatic Refunds - Unassigning does not issue a refund. Clients keeping access until period end is the refund mechanism for subscriptions. • Manual Refund Process - If you need to refund a past charge, process it manually through the Stripe Dashboard. • No App Integration - There is no refund button or API endpoint in BuildStability. All refunds go through Stripe. • Trainer Responsibility - You set your own refund policy beyond the automatic period-end rule. • See "Refund Policy & Unassigning Services" section for detailed refund instructions

Ready to implement these strategies?

Join thousands of trainers using BuildStability to automate engagement tracking and prevent churn.

Start Your Free Trial