Tracks visits, logins, form views, and submissions for logged-in members. Requires the latest Client Directory Apps Script (see bottom of Manage).
Open Manage to load stats
Recent activity
When
Name
Discord ID
Action
Detail
No activity yet
Members — last 7 days
Name
Discord ID
Last activity
Visits
Logins
Form views
Submits
Last action
No members yet
Site visits — 14 days
Form tab views — 7 days
Form submissions — 7 days
Invoices — generate, reminders & payments
Separate Cook ACO Invoice Google Sheet. PAS Fee is always the line total. Matching uses the first word of Profile Name (case-insensitive). Two steps:Link clients writes Discord User ID first; Send invoices only runs for rows that already have an ID (no receipt until linked).
Commands — use these buttons
1. Link clients — match Profile Name → Discord User ID (directory + guild). Failures → Needs Discord Link 2. Send invoices — allocate receipt #, DM clients, mark Invoice Sent (linked rows only) 3. Retry DM Failed — resend failed DMs only (split into parts if long; does not send new receipts) 4. Link + Send — both phases in one run 5. Send reminders — every 2 days for unpaid invoices (empty Transaction Number) 6. Check payments — reads DM replies + Cash App email (~8s). Midnight cron retries pending payments
Cash App IMAP
Each Check payments run polls Gmail repeatedly for up to ~8 seconds. If the Cash App email has not arrived yet, it stays pending — click the button again anytime, or let the daily midnight (Pacific) cron retry. Invalid transaction numbers and amount mismatches are written to Notes immediately.
The bot sends invoice and reminder DMs and reads payment replies. Discord Developer Portal → your app → Bot → copy token → Vercel env DISCORD_BOT_TOKEN. Enable Server Members Intent. Invite bot with Send Messages + Read Message History. General Information → Public Key → DISCORD_PUBLIC_KEY. Interactions Endpoint URL: https://www.cookaco.com/api/discord/interactions (required for Discord verification — invoice actions run from the buttons above, not slash commands).
Deploy on the Cook ACO Invoice spreadsheet only
Setup: Script property SHEET_API_SECRET must match Vercel. Deploy Web app → Me → Anyone. Use Seed example rows once for Cooklo test data. Update api/invoice-config.json and redeploy.
Invoice Sheet Apps Script URL⚠ Not configured
Sheet URLs — one Google Sheet per form (admin only)
Clients never see these URLs. After saving, update api/forms-config.json in the repo and redeploy to Vercel.
Add new form
Google Apps Script
Standard script — Pokémon, Sam's, Walmart, Amazon, Costco
Target only — Submissions + IMAP tabs
⚠ Important: Use doGet (not doPost). Target uses the Target script below (creates Submissions and IMAP tabs). All other forms use the standard script. Deploy as Web app → Me → Anyone.
Client Directory — Discord identity sync
Runs automatically on every successful Discord login. Stores Discord User ID for future invoice bot use. Create a Google Sheet, deploy the script below, then paste the /exec URL at the bottom.
Deploy on the Client Directory spreadsheet only
Setup: Script property SHEET_API_SECRET must match Vercel. Deploy Web app → Me → Anyone. Update api/client-directory.json and redeploy.