Skip to content
Ultimate Software Solutions

Ultimate CRM · Ultimate HRMS

A member walks in at 6:40am.
Everything after that is this software.

The finger on the reader, the package that expires in nine days, the reminder that leaves from your own WhatsApp number, the balance that turns up in tonight’s collection report. That is Ultimate CRM. The trainer who opened the floor at 6am, their shift, their leave balance and their payslip — that is Ultimate HRMS. One system, one login, two products.

Running since December 2023. 12,370,692 member check-ins recorded so far.

01 / Two products

One for your members, one for your staff

They are not two databases with an integration between them. The same attendance row a member’s check-in writes is the row a trainer’s payroll reads.

Ultimate CRM

Members, money and the front desk

One record per member with about a hundred and thirty fields on it. Enquiries through a ten-stage funnel. Memberships that freeze, transfer, upgrade and renew. GST invoices with their own numbering per branch. Biometric and QR check-in. WhatsApp, SMS and email that send themselves. About forty reports.

Ultimate HRMS

The people who run the place

Departments, designations and a live org chart. Onboarding, probation, transfer and exit. Shifts and rosters. An append-only leave ledger. Five kinds of letter on your letterhead. Staff documents stored outside the web root. Payroll from attendance to payslip, with a validator standing in front of the approve button.

Ultimate HRMS is switched on per centre and off by default. A gym that only wants the CRM never sees an HR menu. A gym that wants both gets one login, one member and staff attendance stream, and one bill.

02 / Measured, not claimed

Four numbers off the production database

Counted the day this page was written. The gloss underneath each one is there so you can tell what it does and does not mean.

12,370,692

member check-ins recorded since December 2023

1,529,290

of them in the last thirty days

420,624

member records across every centre

305

fitness centres on the platform

Of those 305 centres, 191 checked a member in during the last ninety days. The gap is the honest part: some centres are seasonal, some are set up and not yet live, some have stopped. A competitor quoting one number is quoting the bigger one.

On the staff side there are 1,871 staff accounts and 2,195 trainer accounts on the platform — the population Ultimate HRMS was built for.

Two numbers the old site carried have been removed and not replaced: the count of countries served, and the review score. Neither can be evidenced from anything we hold, so neither goes back on until it can be.

Ultimate CRM

03 / Everything on the member side

Six blocks. This is the whole of it, named the way it is named in the software.

03.1 / Members and enquiries

The list your staff open first

A member is one record at your gym: identity, address, emergency contact, ID documents and their scans, body metrics, goal and level, RFID number, biometric enrolment, e-signature. Everything else hangs off it.

Enquiries run a ten-stage funnel on the CRM screen — untapped, tapped, call not connected, demo scheduled, demo conducted, waiting for confirmation, not interested, training scheduled, training conducted, payment received — each with an owner, a next date, an expected close date and an expected value. Over thirty other follow-up types cover the things that are not enquiries: freeze, referral, transfer, measurement, PT trial, upgrade.

Lead ads on Facebook and Instagram arrive through a webhook, not a CSV export. The lead becomes a member record with its source recorded and a hot follow-up already scheduled, and a retried webhook does not create a second copy.

Follow-ups the software writes overnight, against a named staff member.
Follow-upWhen it appears
Renewal reminder45, 7 and 3 days before the membership expires
Membership expiredOn the expiry date itself
Balance dueOn the payment date the member agreed to
Not checked inAfter 3 days without a punch
Irregular memberAfter 7 days without a punch, active memberships only
BirthdayOn the day
The follow-up list in Ultimate CRM on a weekday morning, showing renewals, balances due and members who have not checked in, each with an assigned staff member and a next date.
The follow-up list, as the front desk finds it. Member names and numbers replaced.
The mobile app can only move a lead between three of those ten stages. The full funnel is a CRM-screen feature. That is a real limit and it is cheaper to hear now than in month three.

03.2 / Memberships and money

Packages, invoices, GST and the balance nobody chased

Plans carry a duration, a price, a tax treatment, a purchase window, a stock limit, a PT session count and a freeze allowance. A sale becomes a subscription with its own lifecycle, and every operation a gym actually asks for is a first-class screen rather than a workaround: freeze and unfreeze with a freeze history, transfer to another member, upgrade, downgrade, extend, renew.

Money is kept as separate quantities — gross, net of tax, paid, pending, balance, written off — so the collection report and the balance-due report cannot disagree. Invoices and receipts are real PDFs, numbered per branch. There are registers for sales, collection, daily collection, balance due, GST, write-offs and cancelled invoices.

Card and UPI collection runs through Razorpay, with the payment signature verified server-side, and through Stripe. PhonePe, Paytm, PayU, CCAvenue and others are recorded from the app after their own SDK has run. Offline is still where most of the money is, and the payment types say so: cash, cheque, card, NEFT, pay later, plus buy-now-pay-later providers in the Gulf.

What a membership can do

Duration
Hours, days, months, years, or Forever
Tax
GST exclusive, inclusive or not applicable; CGST and SGST held apart
Freeze
An allowance in days, with an audited freeze history
Transfer
To another member, recorded on both
Change
Upgrade, downgrade, extend, renew
States
Active, Pending, Expired, Cancelled, Used
Wallet
Store credit per member, as a ledger

03.3 / Check-in

Two ways in, and both of them survive the line going down

The terminal on the wall

eSSL and ZKTeco units speaking the classic ADMS push protocol — ZAM230-NF, ZAM180-NF50VA, F22, F85, F107 and ProMA-class multi-biometric terminals. Fingerprint on all of them, RFID card on all of them, face on the face-camera units.

Enrol a finger once on the master terminal and the user record, the fingerprint template and the face photo are queued onto every other terminal in that group. You do not walk the building with a laptop.

When a membership is sold, its start and end dates are pushed into the device. So when the line goes down, the reader keeps refusing the member whose package ended on Tuesday: the expiry lives on the device, not only in our database.

Setting a terminal up is a wizard. You type the serial off the box, mark it master or slave, copy a host and port into the device’s own comms settings, then verify, sync and reboot.

No palm reader. Nothing in the product reads a palm, and this site is not going to say otherwise.

The code in the member’s phone

The member app draws a QR code that is signed and expires sixty seconds later. Screenshot it, send it to a friend in the car park, and it is worthless before they reach the door. The desk scans it, the write takes a lock, and a second check-in on the same day is refused.

There is a typed gym code as a fallback for a phone with no camera, an all-access mode that consumes one session per day per gym with an audit row, and an in-app door unlock that dispatches a command to your terminals and logs who pressed it.

Numbers with a mechanism behind them

QR validity
60 seconds from generation
Device counts as online
Seen within the last 60 seconds
Command throughput
Devices poll us; one command per poll, one poll per second
Duplicate punch
Keyed on device, PIN and timestamp, so a resync cannot double it
Unknown PIN
Recorded, not dropped
Devices dial us; we never dial them. A terminal unplugged for a fortnight comes back with a fortnight of queued commands to work through, one per second. That has happened, to real gyms, which is exactly why the membership window is pushed into the device instead of being enforced only from our side.

03.4 / Messaging

From your number, in your words

You write the wording

You connect your gym’s own WhatsApp by scanning a QR code once, and the messages then leave from that number. Birthday, new enquiry, irregular member, check-in welcome and bill created each have their own editable template; placeholders like {cust_first_name} are substituted as it sends. The check-in welcome rotates through 365 lines so a member who trains daily is not read the same sentence for a year.

SMS runs alongside with proper Indian DLT modelling — template id, vendor template id, sender id, entity id, operator. Email can leave from your own address over your own SMTP server. Push goes through Firebase.

The same member cannot be messaged twice

Every outgoing WhatsApp message is hashed — gym, phone number, message body — and that hash is remembered for twenty-four hours, inside the sender itself. Two triggers landing on the same member on the same day produce one message, not two. The renewal cron and a staff member pressing send at the same moment cannot double up.

It is enforced at the bottom of the stack, so every feature that sends anything inherits it. That is the difference between a rule and a habit.

Plainly: this is not the official Meta WhatsApp Business Platform. It drives your own WhatsApp session, which is why the messages come from your number, and why we will not promise you a delivery SLA or a green tick. Gyms send with it every day. We would rather you knew what it is.

SMS is India-only in practice: the sender accepts ten-digit +91 numbers and refuses everything else.

03.5 / The apps

One for members, one for trainers

Member app

  • Check in by QR, by gym code, or unlock the door
  • Workout plans assigned by a trainer, and logging with personal records
  • Diet plans, meal logging and a food diary with protein, fat, carbohydrate, fibre and calories
  • Body measurements with front, back and side photographs, and a transformation gallery
  • PAR-Q and medical history forms
  • Challenges with tasks, teams, leaderboards and a player of the day
  • A community feed with posts, comments, follows and owner-side moderation
  • An in-app shop with products, cart, coupons, delivery slots and orders
  • Habits, water, steps and sleep
  • Account deletion from inside the app

Trainer app and dashboard

  • Client list, profiles, measurements and progress graphs
  • A workout plan builder and a diet plan builder on the web dashboard
  • Exercise logging and personal records against a client
  • PT sessions logged against attendance, with accept and no-show flags
  • Appointment slots, leave, expiring clients and client notes
  • Sales statistics split into PT, new and renewals
  • Commission as a fixed amount, a revenue share, or either banded by client count
  • Monthly sales targets in five slabs, each with its own commission rate
  • Twelve per-trainer permission switches, so one trainer can mark attendance and another cannot

Assigning a subscription is off by default for every trainer. You turn it on for the ones you trust with it.

Member-to-trainer messaging exists, one to one, and it polls. It is not group chat and we do not call it live chat.

03.6 / Reports

About forty of them, named as they are named in the software

So you can tell in ten seconds whether the one you check every Monday is in there.

  • Collection, and day-wise collection
  • Renewal analysis, with a drill-down to the members behind each bucket
  • Enquiry-to-member conversion, and conversion by staff member
  • Follow-up activity, and lead source attribution
  • Personal training sales, and trainer and staff sales leaderboards
  • Footfall by hour, and attendance analysis by batch
  • Profit and loss, expenses, and revenue forecast
  • Monthly sales statement, and month against month
  • GST register, write-offs, cancelled invoices, balance due
  • Bounced and failed memberships

Attendance analysis is capped at 50,000 rows in a single pull. A very large chain that expects to hit that ceiling should raise it with us before signing rather than after.

The full Ultimate CRM page

Ultimate HRMS

04 / Everything on the staff side

Newer than Ultimate CRM and deliberately narrower. What is built is built properly; what is not built is listed inside the product as not built, and listed here too.

The part worth reading twice

Where a payroll run stops

Approval is blocked by a validator, not by a warning you can click past. About a dozen blockers: no salary structure, incomplete or contradictory attendance, a negative net, a missing bank account, an attendance correction still pending, a leave request still pending, two current structures for the same person.

You can override a blocker. You cannot override it silently — the system takes a written reason and stores it with your name and a frozen list of exactly what you waved through.

The payroll approval screen in Ultimate HRMS, showing a blocker on a run and the box demanding a written reason before it can be overridden.
Payroll approval, refusing to approve. Employee names replaced.

Attendance it does not have to collect

Ultimate HRMS captures no punches of its own. It reads the biometric and QR attendance Ultimate CRM is already recording, adds manual entries and approved regularisations on top, and deduplicates by day so somebody who is both a trainer and a member counts once. A day gets exactly one status, decided by a fixed precedence. A punch up to two hours after a night shift ends is attributed back to the day the shift began, which matters if you are open twenty-four hours.

Employees raise a regularisation request for a missed punch and a manager approves it. Once payroll for a month is locked, attendance for that month stops being editable.

Leave as a ledger, not a number in a box

Every movement is an append-only entry, and there are eight kinds: opening, accrual, carry-forward, taken, reversal, encashment, lapse, adjustment. The balance is a cache recomputed from those entries and never typed in by hand. Each accrual carries a natural key, so re-running last month’s accrual twice cannot credit anybody twice. Leave costs working days, so a public holiday and a rostered weekly off do not come out of it. A mid-month joiner accrues a pro-rated share, and at year end the lapsed remainder is written as its own visible row rather than quietly disappearing.

And the rest of it

  • Departments with a head, designations with a grade, and an org chart built from the reporting lines
  • Six HR roles with a permission matrix behind them
  • Employee records that deactivate rather than delete, because deleting would cascade away attendance history
  • Onboarding with a seven-item checklist, probation and confirmation, inter-branch transfer, exit with a notice period, and full and final settlement
  • Shifts with a night-shift flag, a flexible start window, minimum and maximum hours, a break and a lateness grace period
  • One roster row per person per day, and a holiday calendar
  • Five letter types — appointment, offer, confirmation, experience, relieving — on your letterhead with your signatories
  • Assets: categories, asset tags, serial numbers, condition, and issue and return with an expected return date
  • An employee self-service launchpad with exactly five tiles: my attendance, apply for leave, my payslips, my documents, my email address

An issued letter is frozen: the PDF, plus a snapshot of every value it was rendered from, so a letter reprinted in two years reads exactly as it did on the day. An unknown placeholder is left visible rather than silently blanked, which means a broken letter looks broken instead of looking finished.

Staff documents are written outside the web root and every download goes through a permission check. That is the honest answer to “where do my employees’ Aadhaar scans live”.

A payroll run, in order

  1. Resolve the structure that was in force then

    Not the one in force today. A raise in March does not rewrite February.

  2. Pull the attendance and work out payable days

    Working days minus absent minus unpaid leave. Approved paid leave is not docked.

  3. Compute the components

    Fifteen standard Indian components ship as defaults: basic, HRA, conveyance, medical, special, DA, LTA, performance bonus, overtime, commission, bonus, employee PF, employee ESI, professional tax, advance. Formulas are parsed rather than evaluated, and accept only numbers, four operators, brackets and known component codes.

  4. Loss of pay as its own line

    Charged against the fixed part only, and shown as a line you can point at, not folded into a net figure.

  5. Deductions, loan instalments, approved reimbursements

    PF, ESI and professional tax are computed once you configure them. They are off until you do.

  6. Submit, approve, lock, mark paid

    Lock is the irreversible one: it debits loan balances and freezes the run. A bulk run gives every person at the centre a row — computed, skipped with a reason, or failed with the error text. Nothing is silently missing.

Ultimate HRMS payroll does not compute TDS. Deliberately. A payroll run that confidently prints a wrong TDS number is worse than one that visibly does not compute it. There is no gratuity and no statutory bonus either.
It moves no money. Disbursement produces a NEFT-style CSV of beneficiary, account, IFSC, amount and narration; you upload that to your bank and confirm back that it went. There is no gateway inside payroll and there is not going to be one pretending to be.

Also not built, and listed as not built inside the product: tax management, recruitment, job openings, candidates, performance, appraisals, training, HR reports and analytics, custom reports, integrations, audit logs, backup and restore. There is no multi-level approval chain in leave or in payroll, no overtime hour computation, and no rupee value for leave encashment.

05 / Edges

Things we would rather you heard from us

Every one of these is a real limit today. None of them stops a gym running on this; all of them are cheaper to know now.

You might assumeWhat is actually true
Automatic recurring debit from a member’s card, or EMI Neither is built. Card and UPI go through Razorpay or Stripe as collections you take; a standing mandate product does not exist here.
A group-level rollup across your branches Branches are separate sets of books reached from one login. There is no group entity above them and therefore no consolidated group report.
A shipped catalogue of exercises and foods Exercises and food items are your gym’s own rows. You import them and we help. Nobody hands you a library of thousands.
Full white label with your own brand colours Your logo, your domain, your login screen and a choice of themes. You pick from a fixed set of palettes; you cannot type in a brand hex.
IVR menus and call recording inside the CRM There is a click-to-call button wired to one telephony provider, set up per gym on request. No IVR menus, no inbound routing, no missed-call-to-lead.
Live video sessions from your own app Not built. There is no Zoom or Meet integration behind the member app.

Next

Bring the question you think will break it

A demo is a live console, sample data, and a person who will say “no, that is not built” when it is not. Tell us your member count, your branch count and what you run today, and we will skip the parts you do not need.

Or email crm.sales@proultimate.com. A person reads it.