Everything that has not gone out yet
Every send scheduled from anywhere in this hub shows up here until it goes out. Cancelling puts it back exactly where it was before it was scheduled — nothing is lost, and it can be re-scheduled or sent right away instead.
Touch Queue
Marketing/nurture touches held back by the once-per-week-per-coach budget. Nothing here is dropped silently
Generate Drafts
Describe what to promote: a feature ship, a rankings update, a blog post
New carousel post
Write the caption, add the slides in order, and pick the time it should go out
Coach Outreach
Recruiting-style program-by-program email: head coach to, rest of staff cc'd. Sends from your Gmail (Resend is the fallback) and respects the weekly touch limit.
Email someone who isn't in the database
Follow-Ups
Coaches who got the first email, have not replied, and have been quiet long enough. Send or schedule the follow-up right here (it goes from your Gmail, in the same thread as the first email), or copy it into Gmail yourself; either way the list notices when it went out.{{coachName}}, {{school}} and {{fogoOrDraw}} for each row (FOGO for men's programs, draw specialist for women's, "faceoff/draw specialist" when the program type is not known). Your signature and booking link are added after this text, the same block the first email ends with. Edits save when you click out of the box.Outreach Funnel
Sent → opened → replied → call booked → closed won, per program. Follow-ups and reply flags happen here.
Leaderboard: who answers, and how fast
Log a LinkedIn touch
Connection requests and messages, straight into the same Contacts log as every other touchpoint. School stays filled in so you can log a staff back to back.
LinkedIn outreach
Coaches to connect with, their profiles and drafted notes. Edit and approve a draft, press Copy, paste it on LinkedIn and send it yourself, then press "I sent it". Every send is logged to Contacts.
Add coaches
Settings
{first} {last} {coach} (Coach Smith) {school} {position} {personal}. The agent starts every draft from these and writes the {personal} line from the coach's profile; "Fill from template" on a row uses them with that line left out.Backfill from your LinkedIn data export
- On LinkedIn: Me > Settings & Privacy > Data privacy > Get a copy of your data. Pick Connections, Invitations and Messages (or the whole archive) and request it. LinkedIn emails a link, usually within the hour.
- Unzip it and choose the files below. Only coaches are kept: anyone on the coaches list by name, or with a coaching title. Everyone else is ignored.
- Check the preview, untick anyone who isn't a coach, and save. Running the same export again writes nothing twice.
Contact log
One row per touchpoint with a school, of any kind: paying programs and outreach prospects alike.
Support
Messages from the Support page: drafted replies to approve first, then every message
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
Onboarding
Every program and trainer from first contact, through payment, to fully set up. Open a card for its next step.
Trial check-ins
The Trials & Onboarding agent's daily scan: stall threshold, and the check-in emails it drafted that are waiting on you
Founding Pilots
Every pilot program: six weeks free and a check-in every week. A Founding Pilot also signs at list price locked in before the pilot ends.
Program Health (Customer Success)
Every paying program after onboarding, worst health first. Read-only: the agent never contacts a customer or changes an account (functions/customerSuccess.js)
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
Flags only. A human decides, and every decision is recorded
The automated compliance-monitoring process DPA §5 describes. There is no age field (Subscription Agreement §6.7 forbids one), so the scan reads each player's free-text Year / Class: a graduation year is turned into years-until-graduation against the current school year, and plain text falls back to grade words, youth brackets and literal ages. Free text produces false positives, so nothing here suspends or deletes on its own. Suspending a program or removing a record is approved through the agent boundary with your name on it, then runs through the same Duo push as the Programs card. See functions/under13Compliance.js and functions/under13Detect.js.
Runs monthly (1st of the month, 05:00 ET, confirmed). Under-13 only: 8th graders and high-school classes are not scanned. The concern is recruits, high-school rosters and trainers' clients whose Year / Class reads as 7th grade or younger. Every Daily Brief carries the last scan's result.
Flagged Records
High confidence first: 6th grade or younger by the arithmetic or an explicit under-13 indicator; 7th grade is borderline
Decisions & Cleared Flags
The compliance record: dismissed false positives, completed remediations, records that stopped matching
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 and film storage (the weekly AI budget is retired, so it is no longer a signal). Headcount and storage need a cap set on the program: maxScouts, maxPlayers, storageLimitGb on tenants/{id}. 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
Testimonial asks awaiting review
Asks the Engagement Success agent (or you) drafted. Edit one, then send or schedule it from here, or open it in your own email and mark it sent, or dismiss it.
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
Topic ideas for the blog
Each Monday's digest feeds that morning's blog draft automatically. Want a post now? Use Draft blog post, or Draft this post beside one idea. Every draft waits in the Content Queue for your approval.
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
Marketing Site
www.falconeyefaceoff.com traffic, from Vercel Web Analytics
PostHog
App and marketing-site page views and events
User Activity
Who signed in, and when. Every program, most recent first
Bug Reports
Filed from the in-app "Report Bug" button. An email goes out the moment one arrives. This is the running list.
Error Monitoring (this program)
Recent app errors for the program picked above, searchable by type, user, or message. Every program at once is the card below.
All programs: app errors
Every logged app error, across every program.
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
🎩 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.
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 demo, after the app was cleaned up
Start a demo from Jarvis (the Demo button). When it ends, you pick what to clear from the FalconEye program; everything the demo did, cleared or kept, lands here with the Granola notes for the call and a recap that combines the two.
Guest logins
Give a coach or player their own login to a private copy of a FalconEye program for a set time. They see the program's name and everything works; what you hide is taken out of the copy. Your own demos never touch it. Review or roll back what they do at any time, then export it to their program.
New guest login
Demo Archive
One entry per demo. Open one for the recap, the Granola notes, what was shown and what was cleared.
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: 45 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 writes this for you. On the call above, “Prep drafted · not sent yet” means press Send Prep Ask; “Prep requested” means it already went out; “Prep ready · N files” means they replied with film or a schedule.
B. If they don't send anything (expect this often)
- Have a fallback opponent clip ready: clean footage, about 10 minutes long. Not a full game; see II.C for why
- Have one full-game breakdown already finished in the demo program, as a backup if the live run is slow
- Have a fallback schedule ready to import; a real public school schedule works fine (a link, PDF, photo or .ics file all work)
- Don't make a thing of it on the call; run the fallback with the same energy
C. Start demo mode (10 minutes before)
Which program: sign into the coach app as falconeyemlax (men's, faceoffs), falconeyewlax (women's, draws), falconeyeboxlax (box lacrosse; runs on the field faceoff model until the box model ships) or falconeyeclub (travel club, the only one with Player Showcase on). Not the “demo” program: it has no tier set and Ask FalconEye is off there.
Start it from the coach app: open Jarvis, press Demo, pick the program, link today's call, type the prospect's name, choose whether to show the pill, then Start demo. Starting from the coach app opens the set-up pop-up: their name, short name, colors and logo; “Put the chosen team's scouted players on the roster”; hide real players and scouted teams; and, if you are importing their schedule live, tick “Open the schedule importer as soon as the demo starts”. Save the setup to reuse it. The banner then reads “Demoing as <Team> · your real data is hidden, not changed”.
What it protects: invites, notifications and trainer emails are held back, and role or settings changes don't save. It fails open (if the check errors, the email goes out) and founder agents and recruit-link alerts are not held, so still don't invite real people mid-demo.
D. Day-of / hour-before checklist
- Signed into the right program (C above), demo mode started, the prospect's look set
- Sport mode matches the prospect (faceoff vs. draw)
- Opponent clip of about 10 minutes (real or fallback) ready to upload; a finished full-game breakdown on file as backup
- Schedule (real or fallback) ready to import
- A PDF of yourself ready for the Self-Scout demo
- The Training Hub open in a second browser tab (header “Training” link), just not active
- Live Tracker: Win probability bar turned ON (tracker gear, Calculator). It is off by default
- Know the program's ladder: college, team (HS / youth / MCLA / WCLA), travel club or trainer, and whether a Founding Program or Pilot offer is on the table
- Screen share tested, notifications off
II. The Call: 45 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. The destination: team page and Scout Report (3:00–6:00)
Coach Home is what a coach lands on at sign-in (Today, Next up with its prep checklist); give it ten seconds. Then click the opponent's team name in the Scouts sidebar to open the team page: the next-game countdown, “Ready for <Team>” with a one-tap Fix for each gap, how they win the faceoff (Draw Style on a women's program) and the team brief. Then open one of their players and walk the Scout Report tab: tendencies, counters & exploits, “How to beat him”. This is the “here's the destination” moment before showing how fast you get there.
C. Kick off the live breakdown (6:00–7:30)
Import Scout (top bar), Individual Player or Whole Team, then Video File or Video Link. Use the 10-minute clip: it runs in about 3–7 minutes. A full game takes 10–30 minutes and would land during pricing. Say plainly what's happening: FalconEye is actually watching the film right now, rep by rep. It runs on the server with a live countdown, so you can close the progress window and keep going.
D. While it processes (7:30–14:00ish)
Schedule import: Coach Home, Add your season: paste their schedule link or text, or drop a PDF, photo or .ics, press Read it, then Add the games. Every game is shown before anything saves: fast, and its own small “oh that's slick” moment. (Or use the importer the demo setup opened for you.) It bridges naturally into Game Plan territory once loaded.
Search and Ask FalconEye: one quick pass with Search (Ctrl/Cmd+K) for a player or term. Then ask Ask FalconEye a “where do I…” question and let its “Want me to take you to …?” card open the page beside the chat. Keep talking lacrosse and their program during this stretch; it's relationship-building time, not a second pitch segment.
E. Breakdown lands: the payoff (14:00–20:00)
The review takes about a minute; keep it brisk. Identify players shows the film on the card and asks one question (“Who is #N on these reps?”) with one-tap answers; then the flagged reps (“Counter?” is asked on the rep); then Apply all. Say it straight: the coach confirms anything FalconEye isn't sure about. Then open the player's Analysis and Game Plan tabs, showing how the breakdown turns into a plan against that opponent. Now, with a real, fresh breakdown in front of you, open Compare (header button): Upcoming Matchup or Season Rankings. Don't use the header “Rankings” link; it opens the public rankings page in a new tab. This only lands this hard because you waited.
F. Self-Scout: turn it on yourself (20:00–23:00)
On your own player, Import Scout, then PDF File. The Overview shows the self-scout sheet (“What the film shows” / “How opponents will try to beat you”) and a real weakness or two under What's Not. Click → Send to Training Hub on one, switch to the Training Hub tab you already had open, Players: your card now shows an open deficiency; open it, Plan, Deficiencies. Found it, sent it, it's actionable, all in about 90 seconds. (The full write-up is Improve, Analysis, Generate, if you have time.)
G. Live Tracker (bonus, only if time)
Header Live. Show Hold to talk (say the rep, it's logged), the Full layout coaches use on an iPad on the sideline, the Tonight panel for halftime and the win probability bar. Cut it before you cut pricing time.
H. Recruiting / Showcase (bonus, high schools and travel clubs only)
On falconeyeclub, open your player's Showcase tab: what college coaches see, the share link and QR code, the PDF. Only show it to a program that would buy it (Team ladder add-on, included for travel clubs).
I. Support mention
Right before pricing, mention support as a trust builder, not a feature tour: how fast you respond if anything comes up. Ask FalconEye answers how-to questions inside the app, and the Support page has Ask Anything.
J. Close: hours saved into pricing (38:00–45: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. If they hesitate on committing, the next step is a Founding Program or Pilot (six weeks free, then pay), never a trial. Close with next steps and timeline.
K. After the call
Jarvis, Demo (or tap the DEMO pill), End demo & review. Tick what to clear, then Clear selected (or Keep everything). Clearing a breakdown gives its credit back. The recap, what was shown and the Granola notes land in the Demo Archive.
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)
B. Team Ladder (High School / Youth Club / MCLA / WCLA)
C. Travel Club Ladder (per club, every team shares one pool)
D. Independent Trainers
E. Pilots & Founding Offers (the answer to “can we try it first?”)
- Founding Program (school): six weeks free, then list price locked for three years
- Pilot (school or trainer): six weeks free, then the normal price, no lock
- Founding Trainer: Pro plan, free indefinitely
- A pilot replaces the 14-day trial; never offer both. Set it up from the contract tool or the Founding Pilots tab
F. Discounts & Add-Ons
Recruiting add-on, high schools (Team ladder): $200 a year. Every player gets a recruiting profile college coaches can open, with a share link, QR code, PDF and PowerPoint. Included for travel clubs.
The 3-year deal column above is the multi-year price. Everything else is handled in the contract tool afterward. Nothing here needs deciding live unless pushed.
Content Queue
Every blog post and newsletter goes through here: the Monday agents, Market Watch, and anything you draft from a digest. Approve it, copy it onto the blog, then mark it published
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…
Receipts from Gmail
Vendor bills read out of your inbox and staged as expense rows. Read-only access; a receipt is only booked when the vendor is a known rule and the total is unambiguous.
AI Credit Reserve
What to set aside for AI credits already sold, priced at the tier in effect when the sale happened
Yearly AI Budget Sweep
What each program didn't spend of its included AI pool, freed at its renewal date
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.
Invoices
Every invoice sent to a program: payment links, status, and the paid history.
Trainer Payouts
The funding pool, reported reviews and recent payouts. Each trainer's gates and Pay out are on their page in Trainers
Trainer Tax
Sales tax rates, trainer revenue by state and the 1099-NEC report
Trainer Economy Settings
Plans, rates and starter pools (still being validated; change here, no redeploy)
Integrations
Status only. Key values never render here, even to you
Database backups
Read live from Google Cloud: the backup schedules, recovery settings, and every backup it holds right now.
Usage Alerts
Call-volume spikes past 3x an agent's trailing average, plus cost tripwires for unpriced models and video estimates outside the expected band
Travel Clubs
Summer and showcase clubs. One club = one bill on the Travel ladder and one breakdown pool; each age-group team is its own program inside it. Directors coach every team and run the club page.
Showcase
Recruiting profiles that players and coaches send to college coaches, from travel clubs and high schools with the recruiting add-on.
Trainers
Every trainer as an individual: sign-in, agreement, plan, payouts, and the programs they work with. Independent of any program.
All Programs
Every program at once: plan, billing status, AI use against its season pool, and seats. The other all-programs views now sit in the section they belong to.
Role Management
Assign Player (read-only) or Coach (full access) to specific accounts
All programs: users
Every coach, player, trainer and Team Admin across every program. Edit a program's roles in Role Management above.
Trainer Access
The trainers this program works with: grants HUD sessions, drill uploads, and player assignment. Each is managed as an individual in the Trainers section.
Invite Users
Send a sign-up link directly from this panel
All programs: invitations
Every pending invitation across every program.
Password Resets
Email a reset link to coaches, players and trainers, for the program selected above or for everyone
Program Settings
Team name and logo
Season & Roster Control
Archive the current season, or manage the separate CSV roster import list
Export/Clear CSV Roster Importis a separate, older CSV name/position/number list kept in its own storage. Nothing adds to it any more (the import was retired); export it, then clear it. 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.
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
All programs: AI corrections
Every correction a coach made to the AI, across every program.
Audit Log
Track who changed what and when across this program
All programs: audit log
Every program's audit rows plus the global log (security, super admins, the Ask FalconEye switch).
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. The weekly dollar budget is retired: program AI spend is season-long (see the season pool in Program Features).
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, game film included
scout-videos/
is the coach app's game film (uploads, Hudl imports and their analysis copies), which
clips and match logs play from, so it is not purged from here. Scanning the whole
bucket can take up to a minute.
Coach's Manual
The same interactive manual coaches open from the Support Center
Super Admins
Control who can access this admin panel across all programs
Social
Instagram, LinkedIn and X posts, from Buffer