Active users
Reactivation
Upsell / Referral
Market watch
Finance sync
Trials expiring soon
Posts awaiting approval
Unread support tickets
New proposal / demo requests
Churn flags
Upcoming calls
Recent sales recap
Touch queue
Auto-scheduling needs a Buffer account
Approving a draft always marks it approved. It only posts automatically once BUFFER_ACCESS_TOKEN and BUFFER_PROFILE_IDS secrets are set — until then, approved posts show a Copy button for manual posting.
Generate Drafts
Describe what to promote — a feature ship, a rankings update, a blog post
Gmail Inbox
Mail sent directly to chris@falconeyefaceoff.com (read-only)
Drafted Replies
Auto-classified & drafted from FAQ content — approve to send, or escalate manually
Lead Follow-Ups
Proposal / demo requests — personalized follow-up drafted within the hour
Trial nurture — waiting on trial signup wiring
The day-3/7/12 usage nudges run daily, but nothing currently creates a trialAccounts doc when a trial starts, so this list is empty until that hook is added — see ADMIN_HUB_SETUP.md.
Flags only — this never sends anything
A paying program going quiet longer than expected for the current point in the lacrosse season gets flagged here as worth a personal check-in call. Deliberately conservative threshold — see functions/churn.js for the season-baseline logic.
Flagged Programs
Going quiet — unusual for this point in the season
Only drafts in December/January
Timed to just before preseason, not at random — see functions/reactivation.js. Trial-expired and cancelled accounts only; respects the weekly touch budget.
Reactivation Drafts
Lapsed/expired programs — preseason nudge awaiting approval
Upsell signal is limited to what's actually tracked today
Only weekly AI-usage-vs-budget is tracked as a plan limit anywhere in this codebase — storage/max-scouts limits aren't fields on any program yet, so those can't be flagged until they exist. See functions/upsellReferral.js.
Upsell Flags
Consistently near the weekly AI budget — send an upgrade suggestion
Referral Drafts
Auto-drafted after a testimonial is marked received, or trigger manually
Feeds the blog agent — not a separate report to read
Weekly competitor/trend digest's topic ideas get pulled automatically into the next blog draft. Shown here so you can see what it found; nothing to approve.
Weekly Digest
Competitor moves + lacrosse coaching/faceoff trends
Stopgap until QuickBooks — doesn't touch your live spreadsheet
Can't write directly into your OneDrive file from here (would need a separate Microsoft OAuth setup). Instead: Sync pulls settled Authorize.net charges and stages them as journal-entry rows matching your exact column structure; Download gives you a CSV of just the new rows to paste in. See functions/finance.js.
Sync Status
Loading…
Touch Queue
Marketing/nurture touches held back by the once-per-week-per-coach budget (Phase 1, Round 2) — nothing here is dropped silently
Integrations
Status only — key values never render here, even to you (Phase 9)
Usage Alerts
Any agent whose daily call volume spiked past 3x its trailing average (Phase 9)
All Programs
Every program at once — usage & billing, users, support tickets, and errors. Unlike the cards below, none of this tab is scoped to the selected program.
Role Management
Assign Player (read-only) or Coach (full access) to specific accounts
Trainer Access
Training Hub — grants HUD sessions, drill uploads, and player assignment
Invite Users
Send a sign-up link directly from this panel
Program Settings
Team name, season label, and branding
Season & Roster Control
Archive the current season, or manage the separate CSV roster import list
Export/Clear CSV Roster Import — a separate, older CSV name/position/number list (imported via "Import Roster CSV" below) kept in its own storage. It is not the live scouting roster or scout data — exporting or clearing it has no effect on players, stats, notes, or the season archive above.
Bulk Import / Export
Upload a roster CSV to pre-populate names, or download all scout data
Import Roster CSV
Upload a CSV with columns: name, position, number, year. Existing entries will not be overwritten.
Export All Scout Data
Downloads every scout profile and note for this program as a single CSV for backup or analysis.
Data Backups
View and restore automatic rolling/daily backups for the selected program above
AI Breakdown Accuracy
Log corrections when a coach reviews film and finds the AI got something wrong
Undo History
Revert recent changes made by any user in this program
Audit Log
Track who changed what and when across this program
Cloud Save Storage Fix
Diagnoses and fixes "invalid-argument" save failures on the selected program, caused by its data document growing past Firestore's 1MB limit.
API Credit Usage
Which coaches on the selected program are using the most Claude / Gemini credits, and how that compares to the team's weekly budget.
System Health
Checks the integrations that break quietly — API keys, email delivery, and security settings — so you find out here rather than from a customer.
Storage Usage & Cleanup
How many stored bytes each program is costing you, and a safe purge for the temporary scout videos nothing has ever deleted.
scout-videos/ is a temporary staging area on the way to Gemini that has
no cleanup — so every scouting import ever run is still being paid for. Scanning the
whole bucket can take up to a minute.
Error Monitoring
Recent app errors across every program, searchable by type, user, or message
Super Admins
Control who can access this admin panel across all programs