# SalesCoach AI — Product Documentation (Initial Brief)

> **Working title:** SalesCoach AI · **Doc type:** Product Definition / Approval Brief
> **Version:** 0.1 (Draft for review) · **Date:** 2026-08-03
> **Author:** _[Your name]_ · **Owner:** Product · **Status:** 🟡 For review & sign-off
> **Audience:** Team Lead · Project Manager · CEO
> **Decision requested:** Approve concept, scope, and pricing model to begin Phase 1 build.

---

## 1. Executive Summary

**SalesCoach AI** is a white-label, AI-powered call and meeting coaching platform built for the **GoHighLevel (GHL) agency ecosystem**. It automatically captures inbound and outbound calls (and Zoom meetings), transcribes them, analyzes the conversation with the **Anthropic Claude API**, and returns an objective **performance score plus coaching feedback** for every sales rep.

The product is **SaaS-on-SaaS**: we sell to **GHL agency owners**, who **resell it to their sub-accounts** (their clients) under their own brand and their own margin. We charge a **flat base subscription plus a metered per-analysis fee**; the agency owner sets their own resale price on top to make a profit.

**Why now:** Every GHL agency already runs calls through the platform but has no objective way to measure or improve rep performance at scale. Manual call review doesn't scale; AI coaching does. We turn an unmeasured, manual QA process into an automated, billable, recurring revenue stream — for us *and* for the agency.

**The ask:** Approve this brief so we can begin a focused Phase 1 (MVP) build: GHL call ingestion → transcription → Claude scoring → dashboard → metered billing.

---

## 2. Problem & Opportunity

### The problem
- Sales & appointment-setting teams inside GHL sub-accounts make thousands of calls, but **call quality is invisible**. Managers can't listen to more than a tiny fraction.
- Coaching today is **subjective, inconsistent, and reactive** — usually only after a deal is lost.
- Agencies want to **prove ROI and stickiness** to their clients but lack a differentiated, data-driven product to sell.
- Existing conversation-intelligence tools (Gong, Chorus, etc.) are **enterprise-priced, not GHL-native, and not resellable** by small agencies.

### The opportunity
- GHL has a large, active base of agencies already running phone systems and SaaS rebilling.
- Agencies are actively looking for **new billable services** to add margin to their retainers.
- AI transcription + LLM scoring is now **cheap and fast enough** to run on every call profitably.
- A **native GHL marketplace app with usage-based rebilling** removes the biggest friction: distribution and billing are already built into GHL.

**One-line opportunity:** _Give every GHL agency a "call coach" they can switch on for their clients in minutes and bill as a recurring, usage-based add-on._

---

## 3. Solution Overview

SalesCoach AI sits between the **call/meeting source** and the **agency dashboard**:

1. **Capture** — Listen for completed inbound/outbound calls in GHL (via webhooks) and completed Zoom meetings (via Zoom webhooks).
2. **Transcribe** — Retrieve the recording and produce a speaker-labeled transcript (pluggable transcription provider; use native Zoom/GHL transcripts when available).
3. **Analyze** — Send the transcript to the Claude API with a structured coaching rubric.
4. **Score** — Return a 0–100 performance score, per-dimension breakdown, strengths, red flags, and specific coaching actions.
5. **Deliver** — Surface results in a dashboard (per rep, per team, per sub-account), with trends over time.
6. **Bill** — Meter each analysis and rebill through the agency to the sub-account.

The agency owner configures it once at the agency level, enables it per sub-account, and sets their resale price. Reps and managers just make calls as usual — coaching appears automatically.

---

## 4. Target Users & Personas

| Persona | Role | What they want | How SalesCoach AI helps |
|---|---|---|---|
| **Agency Owner** (our customer) | Owns a GHL agency, resells services | New recurring revenue, client retention, differentiation | Turnkey, white-label coaching product with built-in margin |
| **Sub-Account Admin / Client** | Business owner or sales manager | Better close rates, coached team, proof of value | Automatic scoring & coaching across the whole team |
| **Sales Rep / Setter** | Makes the calls | Fair feedback, know how to improve | Objective, private, actionable coaching after each call |
| **Platform Admin** (us) | Runs SalesCoach AI | Healthy margins, low support load, scale | Metered usage, multi-tenant controls, cost governance |

---

## 5. Value Proposition

- **For agency owners:** _A new profit center._ Enable in minutes, white-labeled, priced to your margin, billed automatically through GHL.
- **For their clients:** _Every call coached, automatically._ No more guessing why deals stall — see exactly what reps do well and where they lose the deal.
- **For reps:** _Private, consistent, fair feedback_ that actually tells them what to change on the next call.
- **For us:** _High-margin, usage-based recurring revenue_ that scales with call volume, distributed through GHL's existing agency network.

---

## 6. Product Scope

### 6.1 Phase 1 — MVP (target for first release)
- GHL Marketplace app + OAuth connection (agency + sub-account level).
- Webhook ingestion of **completed call events** with recordings.
- Pluggable **transcription** (one provider to start) with speaker separation.
- **Claude-based analysis** with a fixed, versioned scoring rubric → structured JSON.
- **Dashboard**: call list, individual call detail (transcript + score + coaching), per-rep and per-sub-account rollups.
- **Multi-tenant** hierarchy: Agency → Sub-Account (Location) → User → Rep.
- **Metered billing**: track analyses per sub-account; base subscription + per-analysis usage.
- **Agency markup control**: agency sets resale price per analysis / per seat.
- Roles & permissions (agency admin, sub-account admin, rep) — _leverages existing auth system._

### 6.2 Phase 2 — Fast-follow
- **Zoom integration** (OAuth + `recording.completed` / transcript webhooks) for meeting coaching.
- Custom / editable **scoring rubrics** per agency or per sub-account (sales methodology support).
- **Team leaderboards, trends, and alerts** (e.g., score drop, compliance flag).
- **Automated coaching digests** (email / GHL notification) to reps and managers.
- **CRM write-back** into GHL (score as a custom field, tags, opportunity notes).

### 6.3 Explicitly out of scope (for now)
- Real-time / live-call coaching (this is post-call analysis).
- Non-GHL, non-Zoom sources (e.g., raw uploads) — evaluate later.
- Native mobile app.
- Multi-language rubrics beyond an initial primary language.

> **Scope principle:** MVP proves the loop **Call → Transcript → Score → Bill** for GHL calls. Everything else is sequenced after that loop works and is profitable.

---

## 7. Key User Flows

**A. Agency onboarding**
1. Agency owner installs SalesCoach AI from the GHL Marketplace → OAuth consent.
2. Sets base configuration, chooses scoring rubric, sets resale price / markup.
3. Enables SalesCoach AI on selected sub-accounts.

**B. Sub-account activation**
1. Sub-account admin connects (or inherits agency connection).
2. Maps GHL users → reps to be coached.
3. Reps make calls as normal — no behavior change required.

**C. Analysis loop (automatic)**
1. Call completes in GHL → webhook fires → recording retrieved.
2. Recording transcribed → transcript stored.
3. Transcript + rubric → Claude API → structured score & coaching.
4. Result stored, dashboard updated, usage event metered.

**D. Coaching consumption**
1. Rep/manager opens dashboard → sees score, strengths, gaps, next-call actions.
2. Manager reviews team rollups and trends.

**E. Billing**
1. Usage aggregated per sub-account per billing period.
2. Agency billed by us (base + metered). Agency rebills sub-account at their price via GHL SaaS rebilling / Stripe.

---

## 8. AI Analysis & Scoring Framework

Each transcript is scored against a **weighted rubric** producing a composite **0–100** score plus per-dimension detail. Initial proposed dimensions (to be validated with a sales SME):

| Dimension | What it measures | Example weight |
|---|---|---|
| **Rapport & Opening** | Tone, personalization, professionalism | 10% |
| **Discovery** | Quality of questions, uncovering pain/needs | 20% |
| **Value / Pitch** | Tying solution to the prospect's stated needs | 15% |
| **Objection Handling** | Acknowledging and resolving concerns | 20% |
| **Closing / Next Step** | Clear CTA, booked next action | 20% |
| **Talk-to-Listen Ratio** | Rep talk time vs. prospect | 5% |
| **Compliance & Etiquette** | Required disclosures, respectful conduct | 10% |

**Claude returns structured JSON**, e.g.:
```json
{
  "overall_score": 78,
  "dimensions": [
    {"name": "Discovery", "score": 15, "max": 20, "notes": "Good pain questions; missed budget/timeline."}
  ],
  "strengths": ["Strong rapport", "Confident objection handling"],
  "red_flags": ["No clear next step booked"],
  "coaching_actions": ["Always confirm a specific follow-up date before ending the call."],
  "summary": "Solid discovery, weak close.",
  "sentiment": "positive",
  "call_type": "outbound_sales"
}
```

**Design principles:**
- **Versioned rubric** — every score records which rubric version produced it (auditable, comparable over time).
- **Deterministic structure** — schema-validated JSON output; retry on malformed responses.
- **Cost governance** — model choice (e.g., a Claude Sonnet-class model for routine calls, Opus-class for escalated/long calls), transcript truncation/chunking strategy, and per-tenant caps to protect margin.
- **Explainability** — every score cites specific transcript moments so coaching is credible and defensible.

> _Model selection, exact rubric weights, and token/cost budgets to be finalized during technical design; validate current model IDs and pricing against Anthropic docs before locking estimates._

---

## 9. System Architecture (High Level)

```
        ┌────────────┐        ┌────────────┐
        │   GHL      │  webhook│   Zoom     │  webhook
        │ (calls)    ├────────►│ (meetings) ├────────┐
        └─────┬──────┘         └─────┬──────┘        │
              │  recording URL       │  transcript   │
              ▼                      ▼               ▼
        ┌───────────────────────────────────────────────┐
        │            Ingestion & Job Queue               │
        └───────────────┬───────────────────────────────┘
                        ▼
        ┌───────────────────────────┐   (pluggable)
        │   Transcription Service   │◄── Deepgram / AssemblyAI /
        └───────────────┬───────────┘    Whisper / native transcript
                        ▼
        ┌───────────────────────────┐
        │   Analysis Engine         │──► Anthropic Claude API
        │   (rubric + JSON schema)  │
        └───────────────┬───────────┘
                        ▼
        ┌───────────────────────────┐   ┌─────────────────────┐
        │   App DB (multi-tenant)   │   │  Metering / Billing │──► Stripe / GHL rebilling
        └───────────────┬───────────┘   └─────────────────────┘
                        ▼
        ┌───────────────────────────┐
        │   Dashboard (Next.js)     │  Agency → Sub-account → Rep views
        └───────────────────────────┘
```

**Stack (proposed, building on existing work):**
- **App:** Next.js dashboard + API (existing `salescoach-next` codebase).
- **Data:** Supabase (Postgres) — multi-tenant, row-level security.
- **Auth/roles:** existing multi-tenant auth system (agency/sub-account/rep roles).
- **AI:** Anthropic Claude API.
- **Transcription:** pluggable provider interface (start with one).
- **Billing:** Stripe metered billing + GHL SaaS rebilling.
- **Queue:** background job/worker for transcription + analysis (async, retryable).

---

## 10. Integrations

| Integration | Purpose | Mechanism | Notes / risks |
|---|---|---|---|
| **GoHighLevel** | Primary call source + distribution + billing | Marketplace OAuth app, webhooks, SaaS rebilling | App review/approval process; rate limits; recording availability |
| **Zoom** (Phase 2) | Meeting/call source | OAuth app, `recording.completed` + transcript webhooks | Zoom app marketplace review; cloud recording required |
| **Anthropic Claude** | Transcript analysis & scoring | Server-side API calls | Cost/token governance; structured output validation |
| **Transcription provider** | Audio → speaker-labeled text | Provider SDK/API behind an interface | Accuracy, language, cost; swap without app changes |
| **Stripe** | Metering & payment | Metered subscription + usage records | Reconcile with GHL rebilling to avoid double-billing |

---

## 11. Multi-Tenancy & White-Label Model

Three tiers, mirroring GHL's own structure:

```
Platform (us)
   └── Agency (our paying customer, white-labels the product)
          └── Sub-Account / Location (agency's client)
                 └── Users / Reps (coached)
```

- **Data isolation** per tenant (row-level security); an agency never sees another agency's data; a sub-account never sees another's.
- **White-label:** agency's brand/name on client-facing surfaces (Phase 1: minimal; Phase 2: full theming).
- **Delegated administration:** agency admin controls which sub-accounts are enabled, rubric selection, and pricing.
- **Usage attribution:** every analysis is attributed to (agency → sub-account → rep) for accurate metering and rebilling.

---

## 12. Business Model & Pricing / Unit Economics

### Pricing structure (illustrative — to validate)
- **Base subscription:** **$40 / month** per agency (or per active sub-account — decision needed).
- **Metered usage:** a **per-analysis fee** we charge the agency (e.g., **$0.50 / analyzed call**).
- **Agency markup:** the agency sets its **own resale price** to sub-accounts (e.g., **$1.50–$3.00 / analysis** or bundled into a monthly retainer) — the spread is the agency's profit.

### Illustrative unit economics (per analyzed call)
| Line item | Est. amount | Notes |
|---|---|---|
| Transcription cost | ~$0.05–$0.15 | Depends on call length & provider |
| Claude analysis cost | ~$0.02–$0.10 | Depends on transcript length & model |
| Infra / overhead | ~$0.02 | Amortized |
| **Our cost / analysis** | **~$0.10–$0.30** | |
| **We charge agency** | **~$0.50** | ~40–80% gross margin |
| **Agency charges client** | **~$1.50–$3.00** | Agency keeps $1.00–$2.50 spread |

> All figures illustrative and **must be validated** against real transcription pricing and **current Anthropic model pricing** before commitment. The model is deliberately structured so that **cost per analysis < what we charge < what the agency charges** at every tier.

### Revenue model summary
- **Recurring base** ($40/mo) = predictable floor.
- **Usage** = scales with the agency's call volume (aligns our revenue with customer value).
- **Agency margin control** = the reason agencies adopt and stay (they profit from reselling).

### Key pricing decisions needed
1. Is the **$40 base** per **agency** or per **active sub-account**?
2. Do we **cap** usage or offer **tiered/committed** volume discounts?
3. Do we bill usage via **Stripe metered** directly, via **GHL rebilling**, or both — and how do we reconcile?

---

## 13. Competitive Landscape

| Competitor | Positioning | Our differentiation |
|---|---|---|
| Gong / Chorus | Enterprise conversation intelligence | GHL-native, agency-resellable, fraction of the price |
| Generic AI call summarizers | Summaries, not coaching | Structured, weighted **scoring + coaching**, trends |
| Manual QA / call review | Human, doesn't scale | Every call scored automatically, consistently |
| DIY (agency builds own) | Custom, costly | Turnkey, billed & maintained, marketplace-distributed |

**Moat:** GHL-native distribution + white-label reselling + usage-based margin baked in. We meet agencies where they already work and let them profit.

---

## 14. Success Metrics (KPIs)

**Adoption**
- # agencies installed · # active sub-accounts · # reps coached

**Engagement / value**
- Analyses per active sub-account per week
- % of eligible calls analyzed
- Dashboard weekly active managers

**Quality**
- Score-to-outcome correlation (do higher scores → more booked/closed?)
- Transcription accuracy / analysis retry rate

**Business**
- Gross margin per analysis
- Net revenue retention (agency)
- Agency churn rate
- Revenue split: base vs. usage

**North-star candidate:** _Weekly analyzed calls across active sub-accounts_ (captures adoption × usage × retention).

---

## 15. Roadmap & Milestones

| Phase | Focus | Exit criteria |
|---|---|---|
| **P0 — Design & sign-off** | This brief, technical design, rubric v1, cost model | Approved brief + validated unit economics |
| **P1 — MVP** | GHL ingest → transcribe → Claude score → dashboard → metered billing | End-to-end loop working for 1–2 pilot agencies, positive margin |
| **P2 — Zoom + rubric + rollups** | Zoom source, custom rubrics, team trends/alerts | Meeting coaching live; agencies self-serve rubric config |
| **P3 — Scale & polish** | Full white-label, CRM write-back, marketplace launch, GA | Public GHL Marketplace listing, self-serve onboarding |

_(Timeline/dates to be set with the team after resourcing.)_

---

## 16. Risks, Compliance & Mitigations

| Risk | Impact | Mitigation |
|---|---|---|
| **Call recording consent** (one-/two-party laws) | Legal | Rely on GHL/Zoom's consent handling; surface disclosures; keep it agency's responsibility per ToS; region controls |
| **PII in transcripts** | Privacy / trust | Encryption at rest/in transit, tenant isolation, retention limits, redaction option, DPA |
| **AI cost overrun** | Margin | Per-tenant caps, model tiering, transcript length limits, monitoring & alerts |
| **Transcription accuracy** | Score credibility | Provider evaluation, speaker-labeling, confidence flags, human-review fallback |
| **GHL / Zoom app approval & rate limits** | Timeline | Start marketplace review early; backoff/queueing; graceful degradation |
| **Scoring perceived as unfair** | Adoption | Explainable scores with cited transcript moments; versioned, tunable rubric; keep rep feedback private |
| **Billing reconciliation (Stripe vs GHL)** | Revenue leakage | Single source of truth for usage events; automated reconciliation |
| **Model/pricing drift** | Cost planning | Re-validate model IDs & pricing before launch and periodically |

---

## 17. Open Questions / Decisions Needed

1. **Pricing base:** $40 per agency or per active sub-account?
2. **Billing rails:** Stripe metered, GHL rebilling, or both?
3. **Transcription provider** for MVP (accuracy vs. cost vs. language)?
4. **Recording access:** Are GHL call recordings reliably retrievable via API/webhook for all agency phone setups?
5. **Rubric ownership:** fixed rubric at MVP, or editable per agency from day one?
6. **Data retention policy** (how long do we keep audio / transcripts)?
7. **Pilot agencies:** which 1–2 do we launch with?

---

## 18. Appendix — Glossary

- **GHL / GoHighLevel:** all-in-one CRM/marketing platform used by agencies; supports sub-accounts and SaaS rebilling.
- **Sub-account (Location):** an agency's individual client workspace inside GHL.
- **SaaS-on-SaaS / rebilling:** reselling a software service to end clients with a markup, billed through the platform.
- **Metered billing:** charging per unit of usage (here, per analyzed call).
- **Rubric:** the weighted set of dimensions used to score a call.
- **Transcript:** speaker-labeled text of a call/meeting.

---

_This is a draft for review. Figures marked "illustrative" require validation before commitment. Requesting approval to proceed to technical design and Phase 1 build._
