Case Study · Sales Operations SaaS

From an Excel operating system to a multi-tenant app with Stripe billing + seat provisioning.

A fractional CSO had built a powerful sales framework in spreadsheets, but delivery and scale were bottlenecked by manual setup, ad hoc access, and disconnected reporting. We rebuilt the system as a full-stack PHP web app that sells subscriptions, provisions organizations with dynamic seat counts, and generates KPI dashboards by location.

Industry Sales Leadership / RevOps
Project Type Custom SaaS Platform + Stripe Integration
Stack PHP · MySQL · jQuery · Stripe API
Outcome Monetized product with automated onboarding + KPI visibility
Client subscribes
SaaS Platform Org + seats auto-provisioned
KPI Dashboards Location-level performance
1 click
From checkout to provisioned organization
Dynamic seats
License counts mapped to active reps
Standardized data
Deal input matches CSO's operating format
Live KPIs
Admin visibility by location and team
The challenge

The framework worked, but Excel could not support productized delivery.

The fractional CSO had a battle-tested process for sales teams, but the delivery model required too much manual work: onboarding clients, assigning reps, formatting data, and pulling KPIs all lived in brittle spreadsheets.

That created four friction points:

  • No productized checkout. Subscriptions and access were handled manually.
  • Seat management pain. Rep counts changed often, but licenses did not update automatically.
  • Inconsistent data entry. Teams entered deals differently, making KPI output noisy.
  • Delayed reporting. Location-level performance required spreadsheet wrangling before leadership could act.
sales_operating_system_master.xlsx
K22 =SUMIFS(Deals!H:H,Deals!C:C,$B22,Deals!E:E,"Won")
RepLocationPipelineWin %Forecast
1AJDallas$410k32%$131k
2RMPhoenixPending#DIV/0!$96k
3SHAustin$305k28%#N/A
4KGDallas$358k35%$125k
5TPHouston?$84k
6LMPhoenix$267k#REF!$89k
deals kpis cohorts forecast_v4 archive_old
BEFORE
The solution

A full-stack SaaS that handles billing, provisioning, and performance analytics end to end.

We translated the existing operating model into structured workflows: a customer subscribes, an organization is created, seats are assigned to reps, deals are entered in a standardized format, and KPI views update for admins in real time.

Users
Org Admin
Sales Rep
Leadership
Web App
Billing + Access
Stripe subscription, plan, seat entitlements
Organization Layer
Tenant setup, rep assignment, role controls
KPI Engine
Location metrics, trend lines, forecasting views
Event-driven updates
Integrations
Stripe API Subscriptions + seat-aware provisioning triggers
The hard part

Making billing, seat counts, and data integrity behave like one system.

The technical core was orchestration: when subscription state changes, tenant state must change with it. Seats could increase or decrease over time, and that had to flow safely into user access and KPI calculations.

  • Stripe webhook orchestration. Checkout, invoice, and subscription events trigger provisioning updates.
  • Dynamic seat lifecycle. Rep limits automatically reflect current entitlements.
  • Tenant-safe data model. Every deal and KPI query is scoped to one organization.
  • Format enforcement. Input validation ensures all reps submit deals in the CSO's canonical structure.
SubscriptionProvisioner.php
// Stripe event -> organization + seats stay in sync
public function handleSubscriptionUpdated($event) {
    $customerId = $event['data']['object']['customer'];
    $seatCount = $this->billing->extractSeatQuantity($event);

    $org = $this->orgs->findOrCreateByStripeCustomer($customerId);
    $this->orgs->setSeatLimit($org->id, $seatCount);

    // Enforce active seats <= plan allowance
    $this->users->reconcileActiveRepSeats($org->id, $seatCount);

    return $this->kpi->refreshOrgCaches($org->id);
}

Representative flow. Subscription changes update entitlements, rep access, and KPI availability in one pass.

What we built

Core modules that turned a consulting process into a product.

Stripe Subscription Flow

Customers can subscribe directly to the SaaS offering with plan and billing state synced into the app automatically.

Org Auto-Provisioning

A new subscription creates an organization workspace with default settings, role scaffolding, and seat limits.

Dynamic Seat Management

Seat counts grow and shrink with the active subscription, so rep access always matches paid entitlements.

Standardized Deal Capture

Sales reps submit deals through a structured form that mirrors the CSO's methodology and reporting schema.

Location-Level KPIs

Admins can compare performance by office/location, identify gaps, and act faster on coaching or resource changes.

Forecasting Views

Revenue forecasting updates as pipeline data changes, giving leadership a cleaner view of likely outcomes.

The build

A practical stack for product reliability and fast iteration.

The product needed to stay simple to operate while supporting future growth. We used a dependable PHP stack with clear boundaries around billing, tenant management, and KPI computation.

PHP
MySQL
jQuery
Bootstrap
Stripe API
Multi-tenant RBAC
01

Workflow Decomposition

Mapped the CSO's spreadsheet process into product modules: billing, org setup, seat logic, deal capture, and KPI outputs.

02

Tenant + Access Foundation

Implemented organization isolation, roles, and seat-aware permissions before expanding feature depth.

03

Stripe + Provisioning Automation

Connected checkout and webhooks so subscription lifecycle events drive onboarding and entitlement state automatically.

04

KPI Engine + Admin Dashboards

Built location-level KPI reporting and forecasting views so admins can tune sales performance with live data.

The results

A monetizable product with operating leverage built in.

Automated onboarding

New customers move from checkout to usable workspace without manual setup.

Seat control at scale

Rep capacity and permissions remain aligned with active subscriptions.

Cleaner performance data

Standardized deal formats reduce ambiguity and improve KPI accuracy.

Faster decisions

Admins can monitor location-level sales signals and forecast trends in one place.

The biggest shift was leverage. We went from custom spreadsheet onboarding every time to a repeatable SaaS flow where billing, seats, and KPIs just work together.

— Fractional CSO, Product Owner
Estimated ROI

Typical gains from productizing a spreadsheet-based sales system.

Actual outcomes depend on customer count and team size, but these are common after replacing manual onboarding and reporting.

10-20 hrs/week
Estimated founder/operator time saved from onboarding + seat administration
Faster activation
New organizations become operational immediately after payment
Higher data trust
KPI integrity improves through standardized deal capture and tenant-safe queries
Scalable delivery
Service model shifts from bespoke spreadsheets to repeatable SaaS subscriptions

If your sales process lives in spreadsheets today, we can map the path to a production-ready web app.

Sound familiar?

Still running a revenue engine from Excel?

If you're productizing a consulting framework or replacing spreadsheet-heavy sales ops, this is exactly the kind of build we help launch.

  • 30-min discovery call, free
  • Written architecture + roadmap
  • Fixed-price quote (if you want one)
  • Yours to keep, no obligation
We respond personally, usually within 24 hours. Your info is never sold or shared.
Got it. We'll be in touch within 24 hours with your audit.
Something went wrong. Email grant@websitegranted.com directly.