# Business Map — First 40 Hours Handoff Plan

Lead magnet: rule-based mini web app that gives a founder a ranked "what to hand off first" plan, plus an emailed PDF copy (approved in `Research/Part 1 Recommendation.md`).

Status as of 07-10-2026: **the ads (review mock-ups), landing page, mini app, capture stand-in, booking mock, thank-you page and PDF template are built, tested and hosted on Cloudflare Pages (`pareto-final-project.pages.dev`). CRM, email and booking workflows are modelled and tested in the local simulator; nothing is live in GoHighLevel.** Every node is labelled. Asset IDs (A1, A2…) match `Asset Register.md`; gap IDs (G1, G2…) match `Gap Register.md`.

Rendered copies of the diagram below: `Business Map.png` and `Business Map.svg` (same folder, drawn from this file with mermaid-cli; statuses refreshed 07-10-2026). Re-render after any change.

## Legend

| Label | Meaning |
|---|---|
| `LIVE (staging)` | Built, tested and hosted on Cloudflare Pages (no login) |
| `MOCK (simulator)` | Specified and tested in the local CRM simulator; not created in GoHighLevel, OFF |
| `NOT BUILT` | Planned asset, no URL yet |
| `MOCK PAGE` | Hosted stand-in for a GoHighLevel page or calendar; not a live Pareto asset |
| `ASSUMPTION` | Illustrative number or rule; must be labelled in the final project |
| `HUMAN CHECK` | Nazim approves before anything goes live or is sent |

## Map

```mermaid
flowchart TD
    %% ---------- 1. TRAFFIC ----------
    subgraph T["1 · Traffic"]
        AD["A1 · 5 Facebook ads<br/>(one per persona angle)<br/>LIVE (staging) · review mock-ups, not published"]
        UTM["A2 · Tracking labels<br/>utm_source=facebook · utm_campaign=handoff-plan<br/>utm_content=ad1…ad5<br/>BUILT · defined in UTM Map"]
        AD --> UTM
    end

    %% ---------- 2. CAPTURE ----------
    subgraph C["2 · Capture"]
        LP["A3 · Landing page<br/>hero · what's inside · who it's for · proof · CTA<br/>LIVE (staging)"]
        APP["A4 · Mini app questionnaire<br/>pick recurring tasks + hours/week<br/>LIVE (staging)"]
        SCORE["A5 · Ranking rules<br/>rank tasks by hours × ease to hand off<br/>BUILT · 17 tests pass"]
        FORM["A6 · GoHighLevel form<br/>name · email · phone · 5 qualifiers · email consent<br/>MOCK PAGE · local stand-in live; GHL form is a gap"]
        LP -->|"CTA: Build my plan"| APP --> SCORE --> FORM
    end
    UTM -->|"click (UTMs carried)"| LP

    %% ---------- 3. QUALIFICATION & RESULT ----------
    subgraph Q["3 · Qualification and result"]
        RES["A7 · Personalised result<br/>ranked handoff list totalling hours<br/>LIVE (staging)"]
        ROUTE{"A8 · Routing rules<br/>ASSUMPTION thresholds"}
        FORM -->|"submit"| RES --> ROUTE
    end

    %% ---------- 4. CRM & DELIVERY ----------
    subgraph D["4 · CRM, delivery and nurture"]
        CRM["A9 · Contact + opportunity created<br/>stage: Opted In · tag: lm-handoff-plan<br/>MOCK (simulator)"]
        PDF["A10 · Opt-in workflow: PDF email<br/>sent to EVERY completed submission<br/>MOCK (simulator) · OFF"]
        NOTE["A11 · Internal notification<br/>new opt-in + fit tier<br/>MOCK (spec) · OFF"]
        CRM --> PDF
        CRM --> NOTE
    end
    FORM -->|"fields + UTMs passed"| CRM

    %% ---------- ROUTES ----------
    ROUTE -->|"High fit"| HI["Tag: fit-high<br/>Stage: Qualified"]
    ROUTE -->|"Potential fit"| PO["Tag: fit-potential<br/>Stage: Unqualified Leads"]
    ROUTE -->|"Low fit"| LO["Tag: fit-low<br/>Stage: Unqualified Leads"]

    %% ---------- 5. BOOKING ----------
    subgraph B["5 · Booking and call"]
        BOOK["A12 · Booking page<br/>Pareto Talent Right Hand Discovery Call<br/>30 min · mock availability<br/>MOCK PAGE · LIVE (staging)"]
        CONF["A13 · Booking workflow<br/>confirmation + reminder<br/>MOCK (simulator) · OFF"]
        BOOKED["Stage: Call Booked<br/>tag: call-booked"]
        CALL["A14 · Right Hand conversation<br/>(Pareto sales call)<br/>GAP — outside this build"]
        CLIENT["Stage: Client"]
        BOOK -->|"books"| BOOKED --> CONF --> CALL -->|"signs"| CLIENT
    end
    HI -->|"redirect after submit"| BOOK

    %% ---------- THANK-YOU & NURTURE ----------
    TY["A15 · Thank-you page<br/>confirms action + resource link<br/>LIVE (staging)"]
    PO -->|"redirect"| TY
    LO -->|"redirect"| TY

    QF["A16 · High-fit follow-up<br/>2 value emails + booking nudge<br/>stops when call-booked<br/>MOCK (simulator) · OFF"]
    PN["A17 · Unqualified nurture<br/>3 educational emails after delivery<br/>no booking CTA<br/>MOCK (simulator) · OFF"]
    LD["A18 · Low-fit handling<br/>same educational nurture<br/>no booking CTA<br/>MOCK (simulator) · OFF"]
    HI -->|"not booked"| QF -->|"books"| BOOK
    PO --> PN -.->|"if ready later"| BOOK
    LO --> LD

    %% ---------- HUMAN CHECKPOINT ----------
    GATE["HUMAN CHECK<br/>Nazim approves every email, page and<br/>workflow activation before live use.<br/>Test contact only until then."]
    GATE -.-> PDF
    GATE -.-> QF
    GATE -.-> PN
    GATE -.-> CONF
    GATE -.-> AD
```

## Routing rules (A8)

From the approved Part 1 logic. Thresholds marked `ASSUMPTION` are illustrative mock values (decisions 4 and 5).

| Tier | Rule | Route |
|---|---|---|
| High fit | Team beyond the founder **and** 10+ hrs/week lost to operational work **and** considering help within 6 months **and** revenue range `$500K+` (`ASSUMPTION`: illustrative mock threshold) | PDF email → booking page → high-fit follow-up if not booked |
| Potential fit | Has a team but fails one of: 10+ hrs, 6-month window, or `$500K+` revenue (includes the `$250K–$500K` band, `ASSUMPTION`) | PDF email → thank-you page → three educational nurture emails |
| Low fit | No team, or no current delegation need, or under 2 hrs/week **and** no six-month hiring intent (`ASSUMPTION`) | PDF email → thank-you page → three educational nurture emails, no booking CTA |

Previous VA/assistant answer: stored as a field and used for messaging (Burned Buyer copy), never to disqualify.

## Data capture and hand-off points

| Where | Data | Passed to |
|---|---|---|
| Ad click | utm_source, utm_campaign, utm_content | Landing page URL → app → form hidden fields |
| Mini app | Selected tasks, hours per task, total hours, ranked list | Result page and PDF template |
| GoHighLevel form | Name, email, phone, team (Y/N), hours/week, revenue range, hiring window, previous VA + outcome, email consent | Contact record, custom fields, tags |
| Routing | Fit tier | Tag, pipeline stage, redirect URL, workflow choice |
| Booking calendar | Appointment date/time | Stage "Call Booked", confirmation and reminder |

## Pipeline stages (A19)

`Opted In → Qualified → Call Booked → Client`, plus `Unqualified Leads` (potential-fit and low-fit, split by tag).

## Map decisions for review

1. **App vs form order — settled:** keep the app first, then the GoHighLevel form at the end. Use hidden fields or an embedded form so GoHighLevel remains the system of record. Use a single GHL multi-step form only if the app-to-form handoff proves unreliable.
2. **Potential-fit stage — settled:** keep potential-fit leads in `Unqualified Leads` with the `fit-potential` tag. The brief names one non-qualified stage, and the tag preserves the distinction.
3. **Strict-guidelines nurture length — settled:** send the resource delivery email plus three educational nurture emails to all unqualified contacts. This follows the supplied guidelines DOCX; the Day 10 one-email version is retained as a documented discrepancy.
4. **Revenue band — settled:** treat `$500K+` as high-fit for the mock routing. Treat `$250K–$500K` as potential-fit. Label this as an illustrative assumption in the final project.
5. **Low-fit threshold — settled:** use under 2 hours/week only when combined with no six-month hiring intent. Do not reject a founder on hours alone.
6. **Map tool for submission — settled:** keep Mermaid as the source of truth and publish a static SVG/HTML view with no login when the build is hosted. Do not create a separate mapping account unless the public-link test fails.
