User manual for the operations team. Covers every panel, button, and decision the dashboard expects you to make.
/dashboard/v3/manual.
The V3 dashboard is the single operations cockpit for the PCMA Brain. It pulls together everything the system is doing into one screen so an operator can answer five questions in under a minute:
Everything else on the page — campaigns, economics, Plandome, room engine — is supporting context for those five questions.
/dashboard/v3.The dark top strip is always visible and tells you whether the system is alive and trustworthy.
| Badge | What it means | What to do |
|---|---|---|
| Environment | PROD means real sends. DEV means outbound is blocked. | Make sure it says PROD before expecting messages to actually go out. |
| Circuit Breaker | GHL connection health. Green = open, red = tripped after repeated failures. | If red, GHL is having problems. Wait or check the GHL status page. |
| Auto-Send Mode | Whether automatic outbound is on. | Off = system is in “draft only” mode. Turn back on when you want sends to flow. |
| Daily Caps | How close PCMA & Plandome are to today’s email cap. | If you’re at 90%+, expect outbound to throttle for the rest of the day. |
| Last Sync | Minutes since the last GHL contact pull. | If > 60min, run a manual Pull Now from the inbox panel. |
A coloured banner that tells you whether it is safe to spend on paid traffic today. The verdict comes from a list of independently-tunable checks (lead intake speed, reply rate, deliverability, no-show rate, CPA freshness, etc).
| Verdict | Meaning | Action |
|---|---|---|
| GREEN | All checks pass. Funnel can absorb new traffic. | Spend. |
| AMBER | One or more checks are warning but not failing. | Investigate the listed blockers. You can spend, but watch closely. |
| RED | Critical check failed. | Pause paid traffic immediately. The team will also get an email + Slack/WhatsApp alert. |
Every inbound reply (email, SMS, WhatsApp) lands here, classified by AI into Interested / Question / Objection / etc. Anything obviously not from a real prospect (lead-broker emails, marketing newsletters, sales pitches) is auto-filtered out via the noise filter (see next section).
The exclusion layer keeps the inbox clean by classifying every inbound message against a deterministic rule chain (no AI cost):
lead-platform:<name>, marked do-not-contact, but kept visible in their own tab.List-Unsubscribe header or from a known bulk sender domain (Mailchimp, SendGrid, HubSpot, Klaviyo, Apollo, Outreach, SalesLoft, Lemlist, Smartlead, Instantly, …). Tagged excluded:marketing-list, marked do-not-contact, hidden.excluded:service-pitch, marked do-not-contact, hidden.do-not-contact and excluded:* / lead-platform:* tags from GHL without touching other tags, (3) adds the sender to exclusions.allowlist so they’ll never be auto-excluded again.unsubscribed=True as belt-and-braces. This is legit deliberately does not flip that back — re-subscribing must be an explicit operator decision.A passive integrity monitor that watches for contacts stuck between stages — e.g. an active deal with no owner, a contact with no status, an offer viewed but no application started.
| Severity | What it means |
|---|---|
| CRITICAL | Revenue at risk. Fix today. |
| WARN | Worth fixing this week. |
| INFO | Heads-up only. |
A 9-stage rolling-30d view of the funnel from GHL Contact through to Elite Partner. Each stage shows actual conversion rate vs target.
Below the funnel, a single sentence calls out the biggest bottleneck — the one stage where, if you pulled it back to target, the most downstream revenue would unlock. The verdict includes a forward projection in £ so you can prioritise.
Ranks 7 lead pools by Value × Effort so you always know where the next pound of revenue is hiding.
| Pool | Definition (typical) |
|---|---|
| Pool 1 — Highest intent | Tool completed + offer viewed in last 7d, no app yet. |
| Pool 2 — Application started | Began application but didn’t submit. |
| Pool 3 — Recently engaged | Replied or clicked in last 14d. |
| Pool 4 — Cold but qualified | Past tool completion, no recent activity. |
| Pool 5 — Lost-recoverable | Was in pipeline, dropped out, may be reactivatable. |
| Pool 6 — Long-dormant | No activity in 90d+. |
| Pool 7 — Cold list | Never engaged. |
Click Pool definitions to see the exact SQL rules for each pool — useful when explaining why a contact ended up where they did.
The Room Engine tracks prospect movement through the 4 virtual rooms (Report → Playbook → Masterclass → Invitation). The Portal Engagement panel tracks tool completions (T01–T16), offer views, and application starts.
Daily outbound volume across Email, SMS, WhatsApp. Sudden drops usually mean a daily cap was hit or the circuit breaker tripped.
A breakdown of outbound attempts that were blocked. Reasons:
Per-template open / click / reply rates with a single composite efficacy score. The system flags Winners (replicate the angle) and Losers (rewrite or retire).
Plandome-specific sequences (Abandoned Tool, Win-Back, …) with enrollment and conversion rates. The Gold-Pool Actions sub-panel surfaces individual high-value contacts to act on today: lost-recoverable leads, stale opportunities, upsell candidates.
Cohort campaigns are time-boxed sends to a specific lead segment for testing copy or angles before promoting to evergreen.
When any campaign is auto-paused a red summary banner appears above the campaigns table listing the count and the names. Click any name to jump straight to that row — it scroll-snaps and briefly flashes so you find it instantly even in a long table.
An auto-paused campaign doesn’t need an operator to recover from a transient outage. After a configurable cooldown (default 30 minutes) the system fires one canary send:
Manual pauses are never auto-resumed — only circuit-breaker pauses are. You stay in control.
The moment a campaign trips, the team gets paged on three channels in parallel: email, Slack (if webhook configured), and WhatsApp (if phone configured). A second "auto-resume" notice goes out the same way when a paused campaign self-recovers, so pause + recovery sit in the same inbox.
The financial pulse of the operation, rolling 30 days.
| Metric | Definition |
|---|---|
| Spend (30d) | Total ad spend logged via the spend-entry form. |
| CPL (Cost Per Lead) | Spend ÷ new contacts. |
| CPA (Cost Per Application) | Spend ÷ submitted applications. |
| ROAS — Actual | Realised revenue ÷ spend. |
| ROAS — Projected LTV | Modelled lifetime value of the cohort ÷ spend. |
Use the Log spend button to enter today’s ad spend; this feeds CPL/CPA/ROAS and the Ads-Readiness cpa_freshness check.
An automated 7am summary email that recaps the previous 24 hours: KPI deltas, what the system did autonomously, what needs an operator decision, ads-readiness verdict, exclusions caught, campaigns active, and bottleneck verdict.
Mutating actions (restore-legit, run backfill, edit thresholds, restore template version, send test, force alert, log spend, etc.) are gated by an admin token. The dashboard prompts for it the first time you click an admin action and remembers it for the session.
PROD.Open the Excluded tab, find the row, click This is legit. The contact is restored locally and in GHL, and that sender goes on the permanent allow-list.
Read the listed blockers in the banner. Each blocker maps to a specific check (e.g. cold_reply_rate, noshow_rate, cpa_freshness). Either fix the underlying issue or, if the threshold itself is wrong, click Edit thresholds and adjust. All edits are audit-logged.
Open the template, click History, find the previous version, click Restore. The restore itself is logged so you have a full chain.
Check the global time selector — different panels honour it differently. Some are always rolling-30d (Funnel, Economics) regardless of the selector.
Click Pull Now in the Response Inbox panel; this triggers a manual GHL sync and inbound mail pull.
| Ads-Readiness | The composite gate that says whether it’s safe to spend on paid traffic. |
| Auto-pause | A campaign that the circuit breaker stopped after repeated send failures. |
| Circuit breaker | Generic safety mechanism that trips a system off when failures pile up. |
| Cohort campaign | A controlled, time-boxed send to a specific lead segment, used for testing. |
| CPA freshness | How recently spend was logged. Stale spend invalidates ROAS. |
| Daily Caps | Per-brand maximum number of outbound emails per day. |
| Do-not-contact | Contact-level flag that hard-blocks all outbound. |
| Efficacy Verdict | The single sentence that tells you which funnel stage to fix next. |
| Exclusion label | Why a contact was filtered out: service_pitch, marketing_list, or lead_platform_notification. |
| MTTR | Mean Time To Recovery — how long an ads-readiness red episode lasted. |
| Pool | A lead segment defined by behaviour, ranked in the Revenue Priority Queue. |
| Room | One of the 4 virtual stages a prospect moves through inside the portal. |