Appearance
Unified Controlling Dashboard
Kill the $1,500/month GHL Automations. Replace 4 Google Sheets + Lovable with Metabase.
Status: 🔵 Planning | Owner: Ben Taylor + Steffen | Priority: 🔴 P1 (Garrett Cascade View)
🎯 Executive Summary
The Problem (Current State)
Monthly Burn: $1,000–$1,500 on GHL Workflow Automations alone. Plus daily manual labor that scales with chaos.
GoHighLevel CRM
↓
GHL Automations ($1k-1.5k/month — pay per trigger)
↓
4 Google Sheets (manually maintained)
├─ Hyros ad spend: Anne copies daily ❌
├─ SendBlue metrics: Manual copy-paste morning ❌
├─ Webinar attendance: Zapier + manual fixes ❌
└─ Commission tracking: Ben verifies manually ❌
↓
Lovable Dashboard (warrior-reports GitHub)
↓
Garrett sees numbers (1-2 days delayed)Pain Points:
- ❌ $1,500/month for GHL automations that just push data
- ❌ Hyros: Anne logs in daily, copies ad spend manually
- ❌ SendBlue: Alex copies dialer metrics to GHL every morning
- ❌ No real-time view — everything delayed by manual steps
- ❌ 4 separate sheets with no single source of truth
🏗️ Target Architecture (SOLL)
Zero-GHL-Automation Pipeline
Cost: ~$0/month (runs on existing $80 Vultr infrastructure)
Savings: $1,000–$1,500/month + daily manual labor eliminated
📊 The Four Dashboards
Dashboard 1: Garrett's Cascade View (Executive)
Purpose: The cascade Garrett has never had clean — from ad spend to ROI.
Metrics:
- Gross ad spend per day / per campaign / per platform
- Leads generated (GHL + SendBlue)
- Webinar registrations vs attendance
- 15-min calls booked vs showed
- Closing calls completed
- Sales closed (count + revenue)
- Cost per lead, cost per sale, ROI by campaign
Update Frequency: Daily (automated)
Dashboard 2: Sales Performance (Ben's Management View)
Purpose: Rep-level scorecards without manual compilation.
| Rep | Calls/Day | Close Rate | Cash Collected | Set→Close Conv |
|---|---|---|---|---|
| Stephen | 45 | 12% | $45,000 | 8% |
| Mark | 38 | 15% | $52,000 | 11% |
Metrics:
- Call volume (dials, pickups, talk time) — GHL + SendBlue
- Close rate by rep and by source
- Cash collected per rep
- Set → Close conversion rate
- Average deal size
- Time to close
Dashboard 3: Commission Tracker (Replaces Setter/Closer Sheet)
Purpose: Real-time commission calculation with automatic payment verification.
Automation:
Stripe Payment Webhook
↓
Auto-match to appointment in GHL
↓
Mark commission as "verified" in real-time
↓
Affiliate attribution from GHLEliminates:
- ❌ Ben manually checking payments
- ❌ Cross-referencing affiliate system
- ❌ Delayed commission reports
Dashboard 4: Campaign Attribution (Marketing View)
Purpose: Per-campaign performance — spend, conversions, ROI.
Data Sources:
- Hyros: Ad spend by campaign
- GHL: Leads and conversions by campaign tag
- Stripe: Revenue by campaign attribution
Views:
- Campaign list: spend → leads → sales → ROI
- Funnel by campaign: where does each campaign drop off?
- Platform comparison: which platform delivers best ROI?
🔧 Manual Processes to Automate
| Process | Current | Automation | Impact |
|---|---|---|---|
| Hyros Ad Spend | Anne copies daily to sheet | Hyros API → n8n scheduled job → database | Zero manual work |
| SendBlue Metrics | Alex copies every morning | SendBlue API → webhook → GHL update + database | Real-time sync |
| Webinar Attendance | Zapier + manual fixes | Zoom webhook → n8n → database | Accurate tracking |
| Refund Tracking | No system exists | Stripe refund webhook → database flag | Full visibility |
| Payment Verification | Ben checks manually | Stripe → auto-match → commission verified | Instant commissions |
🚀 Implementation Phases
Phase 1: Foundation (Weeks 1-2)
Goal: Data flowing from GHL + Stripe to PostgreSQL
| Task | Owner | Duration |
|---|---|---|
| Study warrior-reports codebase | Steffen | 4 hours |
| Map 4 Google Sheets schema | Steffen | 4 hours |
| Deploy Metabase on Vultr | Steffen | 2 hours |
| Build GHL API → PostgreSQL pipeline | Steffen | 8 hours |
| Build Stripe webhook → PostgreSQL | Steffen | 4 hours |
Success Criteria:
- GHL contacts, appointments, purchases auto-sync to database
- Stripe payments, subscriptions, refunds auto-sync
- Basic Metabase connection working
Phase 2: Manual Process Replacement (Weeks 2-3)
Goal: Eliminate daily manual data entry
| Task | Owner | Duration | Dependency |
|---|---|---|---|
| Hyros API integration | Steffen | 6 hours | Hyros account from Ben |
| SendBlue → GHL sync workflow | Steffen | 6 hours | SendBlue API access |
| Zoom attendance webhook | Steffen | 4 hours | Zoom admin access |
| Refund tracking pipeline | Steffen | 3 hours | — |
Success Criteria:
- Hyros ad spend auto-imports daily
- SendBlue metrics sync automatically
- Zoom attendance accurate without manual fixes
Phase 3: Dashboards + Go-Live (Week 3-4)
Goal: Garrett's cascade view live, GHL automations killed
| Task | Owner | Duration |
|---|---|---|
| Build Garrett's cascade view in Metabase | Steffen | 6 hours |
| Build Ben's commission tracker | Steffen | 4 hours |
| Build sales performance dashboard | Steffen | 4 hours |
| Build campaign attribution view | Steffen | 4 hours |
| Train Ben on Metabase | Steffen | 2 hours |
| Delete GHL automations | Ben/Weston | 2 hours |
| Decommission Lovable dashboard | Ben | 1 hour |
Success Criteria:
- All 4 dashboards functional and accurate
- GHL automation costs: $0
- Manual daily processes: eliminated
💰 Business Case
Cost Comparison
| Component | Current | Target | Savings |
|---|---|---|---|
| GHL Workflow Automations | $1,000–$1,500/month | $0 | $12k–$18k/year |
| Lovable Dashboard | $0 (sunk dev cost) | $0 | — |
| Manual Labor (Anne daily) | ~10 hrs/week | 0 | ~$10k/year |
| Manual Labor (Alex daily) | ~5 hrs/week | 0 | ~$5k/year |
| Metabase Infrastructure | — | $0 (on Vultr) | — |
| Total Annual Savings | $27k–$33k/year |
Time-to-Value
- Week 1: Database foundation, first automated sync
- Week 2: Hyros + SendBlue automated (biggest pain points)
- Week 3: Garrett sees live cascade view for first time
- Week 4: GHL automations canceled, costs eliminated
✅ Success Criteria
Technical KPIs
| Metric | Target | Measurement |
|---|---|---|
| Data freshness | < 1 hour delay | Last sync timestamp |
| Data accuracy | > 99% vs manual sheets | Spot-check comparison |
| System uptime | > 99% | Vultr monitoring |
| Dashboard load time | < 3 seconds | Metabase performance |
Business KPIs
| Metric | Before | After | Target |
|---|---|---|---|
| GHL automation costs | $1.5k/month | $0 | 100% elimination |
| Manual data entry hours | 15 hrs/week | 0 | 100% elimination |
| Garrett's data delay | 1-2 days | < 1 hour | Real-time |
| Report generation | Manual, days | Automatic, instant | Self-service |
🔗 Related Projects
| Project | Relationship |
|---|---|
| Sales Call Feedback Loop | Feeds call quality data into sales performance dashboard |
| GHL Cost Reduction | This project eliminates $1.5k/month automation costs |
| SendBlue Migration | SendBlue API feeds into this unified database |
| warrior-reports (Lovable) | Being decommissioned — schema study only |
📞 Key Contacts
| Role | Person | Responsibility |
|---|---|---|
| Project Owner | Ben Taylor | Requirements, testing, go-live, kill GHL automations |
| Technical Lead | Steffen | Architecture, implementation, Metabase |
| Data Verification | Anne | Hyros data validation during transition |
| Operations | Alex (VA) | SendBlue process changeover |
| Budget Approval | Garrett | Sign-off on decommissioning existing systems |
🎯 Ready for Implementation
Prerequisites:
- ✅ warrior-reports codebase received (GitHub)
- ✅ 4 Google Sheets mapped and accessible
- ✅ Vultr server available
- ✅ PostgreSQL planned (shared with Sales Call Feedback)
Blockers:
- ⏳ Hyros API account for Steffen (Ben to create)
- ⏳ SendBlue API documentation review
Next Action: Begin Phase 1 — study warrior-reports schema, deploy Metabase.
Last Updated: 2026-03-09
Status: 🔵 Planning — Ready for Phase 1
Target Go-Live: End of March 2026