Agency Analytics Infrastructure Plan
Problem
- Data is scattered across GHL, Instantly, Signal House, N8N, and Supabase
- No single source of truth for funnel KPIs
- Current analytics are unreliable ("I don't even trust the analytics showing right now")
- Flying blind on actual CAC, CPL, booking rate, show rate
Key Metrics to Track
| Metric | Definition | |--------|------------| | CPL | Cost Per Lead | | CPA | Cost Per Appointment | | CAC | Customer Acquisition Cost | | LTV | Lifetime Value | | LTV:CAC Ratio | Payback efficiency | | Payback Period | Months to recoup CAC | | Booking Rate | Interested → Booked | | Show Rate | Booked → Showed | | Close Rate | Showed → Closed |
Architecture
Data Sources:
├── GHL (pipeline stages, appointments, conversions)
├── Instantly (email campaigns, reply rates)
├── N8N SMS Engine (sends, deliveries, replies via Signal House)
└── Iron Funnels (funnel submissions, page views)
↓
Supabase (central database)
↓
Metabase (self-hosted at analytics.ironops.xyz)
↓
Dashboards & KPI tracking
Implementation Approach
- GHL → Supabase: Server-side sync every 30 minutes (like a Conversions API for internal use)
- Instantly → Supabase: API pull for campaign stats
- N8N SMS Engine → Supabase: Already logging to Supabase (needs cleanup)
- Metabase: Self-hosted, connects directly to Supabase, visualizes everything
Priority Order
- Conversation AI (boost booking rate)
- No-show workflow (boost show rate)
- Onboarding flow (streamline delivery)
- Analytics system (track everything, make data-driven decisions)
- Scale volume
Key Insight
"Before we crank volume even more, I want to make sure we're in KPI for reply rate, cost per lead, cost per customer. Mainly just cost per customer — that's the only thing that really matters. Everything else is vanity."