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
Coach Outreach
Recruiting-style program-by-program email — head coach to, rest of staff cc'd. Sends via Resend, respects the weekly touch budget.
Send History
Every Coach Outreach email actually sent — school, recipients, subject, and when
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
Trials & Onboarding
Every trial's stage progress — who is moving, who has stopped, and what they haven't done yet
Lead Follow-Ups
Proposal / demo requests — personalized follow-up drafted within the hour
Subscription Agreements
Fills the placeholder fields in the Subscription Agreement and emails it to a coach — nothing sends until you click Send. Template is still under legal review; swap functions/templates/subscription-agreement.docx once it's final.
Sent Agreements
Log of every contract emailed from this panel
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
Approval-first — never contacts a customer or changes an account
Reads existing tenant status, roles, login, and usage evidence and produces a Program Health Report per program. Recommendations only — see functions/customerSuccess.js and the design record's approval-first rule.
Coach's Manual
The same interactive manual coaches open from the Support Center
Program Health Reports
Sorted worst health first
Approval-first — never publishes documentation
Tracks the canonical documentation registry (functions/docRegistry.js) against the live Support Center and prepares Documentation Approval Packets for a flagged product change. Nothing here edits support.html automatically — see functions/documentationManagement.js.
Documentation Health Dashboard
Coverage, gaps, and current version
Documentation Approval Packets
Pending founder decision
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
Upgrade signals, strongest first
Locked-feature clicks and mid-workflow limit blocks (direct expressed intent) outrank scout/player headcount, film storage, and weekly AI spend. Headcount and storage need a cap set on the program — maxScouts, maxPlayers, storageLimitGb on tenants/{id} — and storage also needs a Storage Report run in System & Ops. Seasons of program history is deliberately not a signal. See functions/upsellReferral.js and functions/planLimits.js.
Plan-limit pressure
Who is hitting a wall, how often, and on what — last 30 days
Upsell Flags
Pressing against a plan limit — send an upgrade suggestion
Best customers to ask
Ranked by real usage — deficiencies resolved, plans completed, session streaks, and coach report volume
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
What is actually happening across every program
Sessions, breakdowns, deficiencies and plans, aggregated over all tenants. Claude and Gemini calls are reported separately on purpose: the Claude path was dead for six months while video breakdowns kept working, and one merged number would have hidden it.
Platform Analytics
Cross-tenant product activity
User Activity
Who signed in, and when — every program, most recent first
Every agent FalconEye runs, and whether it is working
Health is computed fresh each time you open this tab — never stored — so an agent that has quietly stopped cannot keep reporting that it is fine. Anything needing attention explains why, what it affects, and what to do about it.
Agent Registry
Contracts, health, and lifecycle for every production agent
The coaching knowledge base — what exists, what's missing, and whether it's getting smarter
Every coaching answer Ask FalconEye gives comes from entries reviewed here — never the open internet. The map shows what should exist; the review queue is where drafts earn approval; runs generate new drafts in cost-capped batches; the pattern table shows whether the generator's own approaches are improving.
Knowledge Base
Map · review queue · generation runs · pattern track record
Coaching answer source
What Ask FalconEye serves coaching answers from. Switching (either direction) requires a Duo push.
Auto-approval taper
Off by default. When on, entries whose confidence clears the threshold AND whose concept has broad situational coverage skip manual review.
Every sales and demo call, and what came of it
Calls come straight from Google Calendar; the breakdown you log against one is keyed to that calendar event, so nothing has to be matched up by hand afterwards. A call whose start time has passed without a breakdown gets a nudge at the top until it's logged.
Calls
Log an outcome, notes, a next action, and any documents from the call
Sales & Demo Call FlowReference — open before a call
SALES & DEMO CALL FLOW
FalconEye — Faceoff Intelligence System · Sales & Demo Call Guide
Format: 30 minutes, video + screen share
Goal: strong pre-call setup, paced demo, pricing with time left to close
This is a flow, not a script. Read it once before each call, glance at it during if you need to.
I. Step Zero — Pre-Call Prep
A. The moment the call gets scheduled
Send a short follow-up asking for two things: a link to recent film of the prospect's next opponent, and their season schedule (or a link to it). Frame it as “so I can have something real ready to show you” — not homework. If they send it, the whole demo becomes about their actual opponent and their actual schedule instead of a canned example. The Call Prep agent drafts this automatically — look for the “Prep drafted” tag on the call above.
B. If they don't send anything (expect this often)
- Have a fallback opponent clip ready — clean footage, a few minutes long
- Have a fallback schedule ready to import — a real public school schedule works fine
- Don't make a thing of it on the call — run the fallback with the same energy
C. Day-of / hour-before checklist
- Log into the demo tenant ahead of time
- Confirm which sport mode you're demoing in (faceoff vs. draw)
- Have the opponent film (real or fallback) ready to upload
- Have the schedule (real or fallback) ready to import
- Have a PDF of yourself ready for the Self-Scout demo
- Have a Training Hub tab already open, just not active
- Know the program's level (college ladder vs. team ladder)
- Screen share tested, notifications off
II. The Call — 30 Minutes, Video + Screen Share
A. Open (0:00–3:00)
Rapport first, no pitch yet. Ask what their current opponent prep actually looks like — how long it takes, who does it, what's frustrating about it. Casually get a sense of how many hours a week this takes right now. Don't do the math yet — just let the number sit. You'll come back to it at the close.
B. Scout Report tour (3:00–6:00)
Pull up an opponent profile. Walk the Scout Report tab — tendencies, notes, the shape of a finished scouting profile. This is the “here's the destination” moment before showing how fast you get there.
C. Kick off the live breakdown (6:00–6:30)
Upload their real opponent's film (or the fallback) and start the analysis live. Say plainly what's happening — FalconEye is actually watching the film right now, rep by rep.
D. While it processes (6:30–14:00ish)
Schedule import: pull up their real schedule and import it live — fast, and its own small “oh that's slick” moment. It bridges naturally into Game Plan territory once loaded.
Global Search: one quick pass — hit the search bar, pull up a player or term, close it. Keep talking lacrosse and their program during this stretch; it's relationship-building time, not a second pitch segment.
E. Breakdown lands — the payoff
Open the Analysis tab and walk through what it actually generated. Then Game Plan, showing how the breakdown turns into a plan against that opponent. Now — with a real, fresh breakdown in front of you — open Compare or Rankings. This only lands this hard because you waited.
F. Self-Scout — turn it on yourself (20:00–23:00)
Import your own PDF as the self-scout subject, generate the analysis, let it surface a real weakness or two. Click Send to Training Hub on one, then switch to the Training Hub tab you already had open and show that same item sitting there as a live, open deficiency. Found it, sent it, it's actionable — about 90 seconds.
G. Live Tracker (bonus, only if time)
Show it briefly if you're ahead of schedule. Cut it before you cut pricing time.
H. Support mention
Right before pricing, mention support as a trust builder, not a feature tour — how fast you respond if anything comes up.
I. Close — hours saved into pricing (26:00–30:00)
Close the loop from minute two. Let them say the hours-per-week number back to you if you can. Summarize what they actually saw — you've been demoing the top tier the whole call without naming it. Now name it. State the number plainly, no apology in your voice. Mention lighter tiers only as the trimmed-down version of what they just watched. Close with next steps and timeline.
III. Pricing Cheat Sheet (For Your Eyes Only)
Not something to share verbatim — for your own reference during the call.
A. College Ladder (NAIA / D3 / D2 / D1)
| Tier | Price | What it includes |
|---|---|---|
| Scout | $1,750/yr | Self-scout, PDF export, public rankings only |
| Contender | $3,500/yr | Adds wing/circle play, live tracker, compare, search, trainer integration |
| Champion | $6,000/yr | Everything, including practice plans, recruits, full ranking suite |
B. Team Ladder (High School / Youth Club / MCLA / WCLA)
Lower price points on the same three-tier structure — pull exact numbers from admin before quoting.
C. Discounts & Add-Ons
Handled in the contract tool afterward — nothing here needs deciding live unless pushed.
Content Queue
Blog posts & newsletters — review before approving; sending/publishing is manual today (no CMS/mass-mail integration yet)
Training Hub Waitlist
Welcome + progress-update drafts — approve to send
Stages rows daily at 5am — you paste them in
Sync pulls settled Authorize.net charges every morning and queues them as balanced journal rows. It can't write them into your workbook directly: the Microsoft Graph Excel API doesn't support personal OneDrive, and that's where the file lives. So rows accumulate here until you download the CSV, paste them into the General Journal, and hit Mark as pasted. Anything still waiting shows up in the 6am Daily Brief. Leave column D (Account Name) alone when pasting — it's a VLOOKUP. See functions/finance.js; functions/financeWorkbook.js documents what direct-write would need.
OneDrive workbook
Loading…
Sync Status
Loading…
AI Token Spend
Estimated Claude + Gemini cost, same figures as the System & Ops usage card
AI Credit Reserve
What to set aside for AI credits already sold, priced at the tier in effect when the sale happened
Touch Queue
Marketing/nurture touches held back by the once-per-week-per-coach budget — nothing here is dropped silently
Integrations
Status only — key values never render here, even to you
Usage Alerts
Call-volume spikes past 3x an agent's trailing average, plus cost tripwires — unpriced models and video estimates outside the expected band
All Programs
Every program at once — usage & billing, users, settings, invites, support tickets, errors, AI corrections, and the audit log. 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
Training Activity
Recent practice plans and player deficiencies for the program selected above (Trainer 2.0)
Per-Player Storage Upgrade
Moves comments, film notes and match history into their own storage for the selected program. Required for player commenting, and the fix for "invalid-argument" save failures.
Running it moves those items into their own per-item storage. It is safe, one-way, and deletes nothing — everything is reorganized, not removed, and existing comments, notes and game history keep showing exactly as before. On a program that's already upgraded this runs a quick write/read persistence test instead.
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.
🎩 Jarvis — Usage & Audit
The admin assistant's own meter: month spend vs cap, what was asked, which data domains each answer touched, and flags queued for tomorrow's Daily Brief.
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.
API Usage & Cost
Estimated Claude + Gemini token spend across every program — yesterday, this week, this month.
functions/usage-logger.js) — not a live bill from Anthropic/Google.
Error Monitoring
Recent app errors across every program, searchable by type, user, or message
Bug Reports
Filed from the in-app "Report Bug" button. An email goes out the moment one arrives — this is the running list.
Super Admins
Control who can access this admin panel across all programs