FalconEye FalconEye Admin

Sign in with your admin account to manage programs.

FalconEye Admin
Program Management
← FalconEye

Loading…

Active users

Loading…

Reactivation

Loading…

Upsell / Referral

Loading…

Market watch

Loading…

Finance sync

Loading…

Trials expiring soon

No trial data yet — wired up in Phase 2/5.

Posts awaiting approval

No marketing drafts yet — wired up in Phase 3.

Unread support tickets

Loading…

New proposal / demo requests

No lead data yet — wired up in Phase 2/5.

Churn flags

Loading…

Upcoming calls

Calendar not connected yet — wired up in Phase 7.

Recent sales recap

Payment processor recap not connected yet — wired up in Phase 7.

Touch queue

Loading…

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

Generate Drafts

Describe what to promote — a feature ship, a rankings update, a blog post

Loading…
Gmail Inbox

Gmail Inbox

Mail sent directly to chris@falconeyefaceoff.com (read-only)

Loading…
Drafted Replies

Drafted Replies

Auto-classified & drafted from FAQ content — approve to send, or escalate manually

Loading…
Lead Follow-Ups

Lead Follow-Ups

Proposal / demo requests — personalized follow-up drafted within the hour

Loading…

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

Flagged Programs

Going quiet — unusual for this point in the season

Loading…

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

Reactivation Drafts

Lapsed/expired programs — preseason nudge awaiting approval

Loading…

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

Upsell Flags

Consistently near the weekly AI budget — send an upgrade suggestion

Loading…
Referral Drafts

Referral Drafts

Auto-drafted after a testimonial is marked received, or trigger manually

Loading…

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

Weekly Digest

Competitor moves + lacrosse coaching/faceoff trends

Loading…

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

Sync Status

Loading…

No sync run yet.
Touch Queue

Touch Queue

Marketing/nurture touches held back by the once-per-week-per-coach budget (Phase 1, Round 2) — nothing here is dropped silently

Loading…
Integrations

Integrations

Status only — key values never render here, even to you (Phase 9)

Loading…
Usage Alerts

Usage Alerts

Any agent whose daily call volume spiked past 3x its trailing average (Phase 9)

Loading…
All Programs

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.

team

Role Management

Assign Player (read-only) or Coach (full access) to specific accounts

Accounts listed as Player get read-only access — they can view scout data but cannot edit profiles, import scouts, or export PDFs. Accounts listed as Coach have full access. Anyone not listed here defaults to Coach. Setting someone as Admin is different from Player/Coach — it designates this program's single Team Admin (a narrower, program-scoped login to this same admin panel: Role Management, Trainer Access, Invite Users, and read-only usage only — see Program Settings for details). It takes effect immediately when added, not on "Save Changes" below, and there can only be one at a time — adding a new one replaces the current one.
Configured Accounts
Loading…
training

Trainer Access

Training Hub — grants HUD sessions, drill uploads, and player assignment

Trainer is additive — a Coach can also be a Trainer (e.g. your head coach running HUD sessions). Checking this box does not change their Player/Coach role above. Accounts can also self-register from the Training Hub; they'll show here as Pending until approved.
Loading…
messages

Invite Users

Send a sign-up link directly from this panel

Enter an email address and choose a role. FalconEye will pre-set their role and email them a working sign-in link — no password needed. Clicking the link signs them straight into the app.
Pending Invitations
Loading…
gear_1

Program Settings

Team name, season label, and branding

Team Admin
Optionally designate ONE person as this program's Team Admin. They can sign into this same admin panel with a stripped-down view — Role Management, Trainer Access, Invite Users, and a read-only view of AI usage and plan tier — scoped to this program only, with no visibility into any other program's data. Leave blank for no Team Admin.
schedule

Season & Roster Control

Archive the current season, or manage the separate CSV roster import list

Start New Season — archives every opponent-scout and self-scout player's current data to a read-only archive, then resets everyone to a blank season. This is the real scouting data used throughout the app.
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.
statistics

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.

save

Data Backups

View and restore automatic rolling/daily backups for the selected program above

target

AI Breakdown Accuracy

Log corrections when a coach reviews film and finds the AI got something wrong

Log a Correction
Category Breakdown
Suggest a Prompt Fix
Recent Corrections
back_arrow

Undo History

Revert recent changes made by any user in this program

Each entry below represents a saved state snapshot taken before a change was committed. Click to_watch Preview to see exactly what a snapshot would change before restoring it, or Undo to restore it directly. Only the last 10 snapshots are kept per program.
Loading…
reports

Audit Log

Track who changed what and when across this program

No activity recorded yet.
tools

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.

Checks the selected program's data document against Firestore's 1024KB per-document limit. If it's already been migrated, this runs a quick write/read persistence test instead. If it hasn't, this moves all comments, film notes, and match log entries out of the main document into their own storage — safe and one-way, nothing is deleted, only reorganized.
statistics

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.

Cost is an estimate (token counts × published per-model pricing), not a billed invoice. A weekly ranking is also emailed automatically every Monday to the report email above, once a budget is set. Usage starts accumulating from the moment this feature is deployed — earlier calls aren't retroactively counted.
System Health

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.

Nothing here spends money: key presence is checked, not validity, so running this is free and safe at any time. Anything that genuinely can't be verified from the server is reported as "unknown" rather than guessed at.
save

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.

Cloud Storage bills every month on everything retained, and 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

Error Monitoring

Recent app errors across every program, searchable by type, user, or message

0Total errors
0Affected users
0Last 24h
Most Common Errors
padlock

Super Admins

Control who can access this admin panel across all programs

warning Super admins have full access to every program's roles, settings, and data. Anyone added here can do everything you can do, including adding or removing other super admins. You () can never remove yourself.
Current Super Admins
Loading…
FalconEye breakdowns are generated automatically from film and may contain errors. Verify key stats before relying on them for game-planning decisions.