Dashboard
New Clients Last 12 Months
Revenue Closed Last 12 Months
MRR Growth Last 12 Months
Active Clients Last 12 Months
Cohort Retention
Manual Continuity Due
Clients
Renewal Alerts
Milestones
Breakdown
AI Insights
BetaGet a plain-English read on your business — what's working, where the bottleneck is, and exactly what to do about it.
Payment Failures
Cancelled Clients
Clients
Inbox
Client messages
Renewal Pipeline
Track and act on every upcoming renewal
Platform Status
Settings
Appearance
Business Settings
Set your max client capacity to unlock the Capacity Utilization stat — so you always know when it's time to raise prices or open a waitlist.
Coach Profile
Your Instagram handle is used as the watermark on transformation posts the mobile app generates. Same value as your mobile profile — update either side and both stay in sync.
The name your emails sign off with. First and last reads best.
Only used to text YOU when something needs your attention — never shown to clients. Leave blank and the Text switches in Communications stay off.
One credential — the one a client would recognise. Four acronyms wrap onto their own line on a phone and stop reading as a qualification. Leave blank to show none.
Plain English, and not your business name — that gets added after it automatically, so don't type it twice.
Shown in small print at the bottom of your client emails, under the Sent by line. One line per row. Leave blank to show none.
Workout Display
How sets / reps / intensity show in workout programs. Per-program override available in the program editor's Options menu, and per-client override on the Admin tab of any client profile.
Form Check Videos
Clients can record a short form-check clip mid-workout that lands in your chat + check-in review. "Only when requested" limits the recorder to exercises you've tagged with the Form ✓ checkbox in the program builder. Clips past the weekly cap still arrive but are flagged "over cap".
Client app tabs
Choose which bottom tabs your clients see in the app. Home and Profile always show; Sessions only appears for in-person and hybrid clients — uncheck it if you don't want the app handling your scheduling. Tabs the platform hasn't enabled yet stay hidden even if checked here.
Timezone
All dates and times in your CRM are displayed in this timezone. Auto-adjusts for daylight savings.
Currency
Date Format
Units of Measure
Sidebar Logo
- Square format — 80×80px minimum (e.g. 400×400px for high-res)
- Accepted formats: PNG, JPG, SVG
- Tip: use a version with a transparent background
- Horizontal format — 4:1 ratio recommended (e.g. 400×100px)
- Accepted formats: PNG, JPG, SVG
- Tip: use a version with a transparent background
Brand Colors
Customize colors used throughout your CRM.
Client Tags
Define the tags available to assign to clients. Each tag gets a name and a color you choose.
Set up your branded app
We'll walk you through everything your app needs — name, look, store copy, and connecting your Apple & Google accounts. Each step saves as you go, and you can come back anytime.
First, your store accounts
Your app is published from your own Apple and Google accounts — you stay the owner and just add us as a team member. Tell us what you already have and we'll show only the steps you actually need.
Choose your app name
The name people see in the App Store — unique across all of Apple's apps. Both stores cap it at 30 characters; no emoji, ALL-CAPS, or promo words ("free", "#1").
Your app icon
The square people tap on their phone. We'll make the iOS, Android, and launch-screen versions for you.
We'll center your logo on a background and build every size. No logo yet? Add one in Settings → Appearance — it shows up here automatically.
- 1024 × 1024px, PNG
- Square with sharp corners — the phone rounds them for you; don't round them yourself
- No transparency — fill the whole square to the edges
- One simple symbol or monogram — not a full wordmark (text vanishes at real size).
- Solid background, high contrast, a little padding around the mark.
- Upload a full square with sharp corners — the phone rounds them; no transparency.
Pick your brand color
Your brand color — used on your app's splash screen and accents throughout the app (applies whether you generate or upload your icon). We've pre-filled it from your CRM branding.
Your store copy
What people see on your App Store / Play page. We've started it for you using your brand — edit any line, or redraft the description with AI.
Privacy policy
Apple and Google require a privacy policy link. Most coaches use the shared FitOps Pro one.
Your D-U-N-S number — free
To create a business store account, you first need a free D-U-N-S number — a business ID that makes your company name show as the app's seller. Apple and Google both use the same one.
Dun & Bradstreet assigns these to businesses automatically — many companies have a D-U-N-S without ever asking for it. Search first before requesting a new one; you might save yourself the wait.
Look up my D-U-N-S ↗Request one for free with the same Apple tool above — it walks you through it. It's usually ready in about 1–2 weeks. You don't have to wait: keep going with the rest now and add your number here whenever it arrives.
Connect your accounts
Your app is published from your own Apple and Google accounts — you add us as a team member so we can build and publish it for you. Nothing to paste; just do your part and tick the box. We connect and verify on our end (Apple can take a day or two), and flag anything to fix right here.
- Create your Apple Developer account as an Organization — $99/year, using the D-U-N-S number from the last step. Start Apple enrollment ↗
- Add us as an Admin. Open Users and Access and invite [email protected] with the Admin role. Open Users and Access ↗
- Create a Google Play Developer account — a $25 one-time fee, using the same D-U-N-S number. Start Google sign-up ↗
- Invite us as an Admin. Open Users and permissions and invite the service account below with the Admin role. Open Play Console ↗
Submit your app request
Here's everything we have. When it's all set, send us the request and your app goes into our build queue.
Lead Engine (Instagram)
Not connectedConnect your Instagram Business account to read every inbound DM into one inbox. Reply within Meta's 24-hour window from inside FitOps Pro. Lead source attribution, list tagging, and Charge & Add Client land in the next phases.
Automation integrations
Connect the tools your automations post to. Connect once here, then drop a “Post to Slack”, “Add row to Sheet”, “Create Notion item”, or “Create calendar event” step into any automation.
Email your clients from your own business domain. Receipts, check-in reminders, and agreement requests look like they're coming from you, not from us. Replies land back in your CRM inbox automatically.
Booking links
The link people use to book a call with you. Put your own name on it — or your own web address.
Voice
Not connectedForward calls from your business number to any phone you choose. Voicemail when you can't pick up. One-click call any client straight from the CRM.
Two add-ons that put your business name on outbound calls and reduce the chance you'll be flagged as "Spam Likely."
When clients see your number ring, your business name shows instead of just the digits. ~$1/month per number, 1–2 business days for carrier approval.
Carrier-signed attestation so your number doesn't get flagged as "Spam Likely." Activates automatically once your SMS Brand is approved — same brand profile covers both.
Register CNAM
CNAM registration runs through Twilio's Trust Hub. You'll register once per phone number — the same brand info from your SMS A2P registration is reused, so it's quick.
Maximum 15 characters — carriers truncate longer names. Stick to your brand, not your legal entity.
SETUP STEPS
- Save the business name above.
- Open Twilio Console → Phone Numbers.
- Click your number → Voice section → Caller ID (CNAM) → enter the same name + submit.
- Twilio reviews in 1–2 business days. Come back here and click "Mark as approved" once it lands.
SHAKEN/STIR verified caller
SHAKEN/STIR is a carrier protocol that signs your outbound calls so they aren't labeled "Spam Likely" or blocked outright. Nothing for you to register manually.
HOW IT WORKS
- Your SMS A2P Brand registration also enrolls you in Twilio's Voice Integrity program.
- Once your A2P Brand is approved, outbound calls from your number get an A-level attestation automatically.
- Carriers (AT&T, Verizon, T-Mobile, etc.) see the verified signature and skip the "Spam Likely" label.
Setup
SMS
Loading…Text your clients two ways — their replies land right in your CRM inbox. Before any number can text US clients, the phone carriers need to verify your business. Five quick steps below. We'll show you exactly what's still pending and what (if anything) you need to do.
SMS Compliance via Signal House
Loading…Signal House registration follows a cleaner four-stage flow: Subgroup → Brand → Campaign → Phone Number. Approvals typically land in 2–3 business days vs Twilio's 10–15. Any rejection comes back with the exact reason and a retry path.
Stripe Connect
Connect your own Stripe account so client payments land directly in your bank account. FitOps Pro™ routes each charge to your Stripe — we never hold your money. You manage your own payouts, taxes, and refunds through Stripe.
Client Receipt Branding
How receipt emails look when your clients get charged. Pick who sends the receipt below. Your business name is always shown in the footer — the fields below add your logo, accent color, and an optional support line.
Reschedule Credit Expiry
Set how many months a reschedule credit is valid before it expires, based on who cancelled the session. Coach cancellations typically grant more time since it wasn't the client's fault.
Calendar Sync
Connect Google Calendar (Outlook / Apple coming soon) so your existing events block client booking slots, and new bookings appear on your calendar automatically. Real-time updates while the dashboard is open.
Online Booking
Let in-person and hybrid clients book sessions from inside their app. Bookings consume one of their available session credits. Configure your weekly hours below.
Weekly Hours
Add one or more time windows per day. Slots are generated at session-length increments inside each window.
Blackout Dates
Whole-day blackouts (vacations, holidays). Comma-separated YYYY-MM-DD list.
Booking Page Copy
Cycle-End Reminder
Buzz a client's phone once per cycle when they have unused tickets and the month's almost over. They also see a sticky banner at the top of their Sessions screen until they book or the month ends. Off per-client by setting cycleEndNudgeEnabled: false on the client.
One-Way Messaging
When enabled, clients can only view messages you send. They cannot reply. You can override this per-client on their profile page.
Protocols (supplements & PEDs)
Adds an optional section to a client's profile for recording supplements and performance-enhancing drugs — name, dose, and timing. Off by default and hidden entirely unless you turn it on here; even then you enable it individually per client.
Auto-Suspend on Overdue Payment
Automatically suspend app access for clients whose payment is past due by a specified number of days. Suspended clients see a locked screen until payment is resolved. Applies to manual continuity and failed Stripe payments.
Quick Reply Templates
Save text snippets you frequently use in client conversations. Click the template icon in the chat composer to insert one.
Review Categories
Organize check-in review rows into groups. Assign categories to form fields in the form builder. Analytics rows have defaults but can be reassigned below.
Response Templates
Save text snippets you frequently use when reviewing check-ins. Click "Templates" in the review editor to insert one.
Macro & Calorie Adherence Tolerance
How close to target counts as "hit" — drives both your client's check-in streak (in Check-Ins) and the color of their kcal + macro tokens on the home tab. Pick percentage (one band scales with each target) or absolute (set a specific kcal / gram amount per macro).
Example: at 10%, a 200 g protein target lets the client land between 180 g and 220 g for it to count as a "hit."
Streak Freezes
Let clients bank "freezes" that protect their home streak when they miss a day. Freezes refill each month and stockpile up to a cap — a missed day spends one to keep the streak alive. Off by default.
A client gains freezes per month each month, banking up to max banked total.
Save Attempt Defaults
Configure how the save attempt flow behaves when a client wants to cancel.
Pause Limits
Control how pauses work for your clients.
Early Churn Detection
Scores all active clients nightly based on engagement signals (check-ins, app activity, messages, workouts, habits). Alerts you when a client is at risk of cancelling.
Cancellation Agreement Language
Template language to include in your client agreements. Uses {cancelEmail} for your cancel@ address, {coachName} for your name, {businessName} for your business.
Post-Cancellation Follow-ups
Automated messages sent to clients after their cancellation is finalized. Day counts start from the official cancellation date (end of notice period).
Two-Factor Authentication
Protect your account with a time-based one-time password (TOTP). You'll need an authenticator app like Google Authenticator, 1Password, or Authy.
Enable Two-Factor Authentication
1. Scan this QR code with your authenticator app:
Can't scan? Enter this code manually
2. Enter the 6-digit code from your app:
Save Your Backup Codes
Each code works once and replaces your TOTP code if you lose your authenticator. Store these somewhere safe (password manager, printed copy, etc.). These won't be shown again.
Disable Two-Factor Authentication?
Enter a code from your authenticator to confirm disabling 2FA.
Check-Ins
No pending check-ins.
Builder
Create nutrition plan
Plan settings
Apply a saved day to this plan
Active agreements using this template
This template can't be deleted while agreements using it are still out for signature. Void the ones you don't need, then the template will delete automatically.
Select a block to edit its properties
Program overview
Save & Share
What would you like to do with this program?
Saved Days
Workout
Start a new program
When a client is selected, the AI pulls in their profile, check-ins, weight trend, recent workouts, and exercise notes.
Say it plainly if there are injuries, weight caps or movements to avoid — those are applied as hard limits and override the volume targets. Anything here overrides the client's saved restrictions.
How this AI designs programs
Every program is built on current peer-reviewed hypertrophy research, not a template library:
- Weekly volume landmarks per muscle (MV / MEV / MAV / MRV) calibrated by experience level. Grounded in Baz-Valle 2018 & Schoenfeld 2019 dose-response research.
- Top-set + back-off rep structure for intermediate and advanced lifters — two progression knobs per lift.
- Proximity-to-failure (RIR) as the intensity regulator. Every set prescribed is a working set; warm-ups are the client's responsibility.
- Mandatory volume self-check before emit. The AI tallies weekly sets per muscle using the same primary=1 + secondary=0.5 math the builder shows you.
- Server-side retry if any muscle lands over MRV or under MEV. You never see a program in MAINTAIN territory by mistake.
You can layer on your own protocols via admin → AI reference files, or override the full prompt in admin → AI insights.
Assign Workout Program
Pick the workout for each day.
Which cycle slot does the client start on? Most start at Day 1.
Marks these weeks as a deload on the client's calendar and program timeline.
Progression Editor
Add Exercise
Add Exercise
Exercise Library
Select a field to edit its settings
Pick the poses clients are guided through. The number of poses is the number of photos.
The first screen the client sees, in your words. Leave it empty and the form opens straight on question one.
Analytics Library
Advanced growth metrics — pin any card to your Dashboard
Customize Dashboard
Drag to reorder · uncheck to hide
Sessions
Select a client to view their session details