📊 Dashboard
Total Students
—
All records
Active
—
Currently training
✅
Owing Fees
—
Unpaid (Days Overdue > 0)
💳
Belt Tests
—
Registered
🏅
Churn Risk
—
High risk students
⚠️
Test Ready
—
Belt Test Eligible
🥋
Birthdays Today
—
🎂 Birthday Stage = Today
🎂
Low Attendance
—
Flagged students
📊
⚠️ Payment Alerts
—Loading...
🏅 Upcoming Belt Tests
Loading...
🎂 Birthdays (Today / Tomorrow / This Week)
Loading...
📊 Low Attendance Flagged
Loading...
🔴 High Churn Risk Students
🔮 Churn Risk (Auto) ≥70Loading...
📈 Analytics
Belt Distribution
Loading...
Active Status
Loading...
Full Student List
| Student | Belt | Status | Testing | Churn | Attendance % |
|---|---|---|---|---|---|
Loading... | |||||
📢 Broadcast
Queuing writes a row to the 📢 Broadcasts table. The n8n poller (runs every 5 min) resolves numbers, cross-checks Opt_Out_List, sends via Wassenger, and writes back delivery status — this dashboard does not send WhatsApp messages directly.
0 students
Loading...
🕔 Recent Broadcasts
Loading...
💳 Belt Test Payments
💵 Log Offline Payment
Cash/bank payment received? Log it here — it fires the Self-Healing Payment Pipeline in n8n (
/webhook/wtm-payment), which marks the student paid, creates the Payment Record, and sends the WhatsApp receipt through the full §4 compliance chain. Requires that workflow imported & active, and n8n URL set in Settings.⚠️ Belt Testing Registration (
tblQTnhGpayUZ5mKv) field IDs aren't listed in the System Reference doc — this tab reads by field name, not ID. Verify against live Airtable schema before relying on it for compliance-critical sends; ask an admin to extend the reference doc with this table's field IDs.Not Paid
—
Partial / Plan
—
Paid in Full
—
Total Registered
—
| Student | Testing For | Test Date | Payment | Reg Status | Actions | |
|---|---|---|---|---|---|---|
Loading... | ||||||
Student Directory
| Name | Current Belt | Next Belt | Status | Testing | Churn | Consent | Actions |
|---|---|---|---|---|---|---|---|
Loading... | |||||||
✅ Attendance
| Student | Belt | Present |
|---|---|---|
Click Load Students above | ||
🏅 Certificates
Preview
CERTIFICATE
OF BELT PROMOTION
This certifies that
Student Name
has successfully achieved
WHITE BELT
Master Ken Clarke · World Taekwondo Mandeville
🏆 Official Belt Certificate (PDF)
Loading from Airtable (WTM Certificate Templates)…
⚠️ There is no reliable automatic English→Korean name transliteration — that field is optional and only appears on the certificate if you type it in yourself.
⌨️ AI Console
Routes through n8n → Claude AI with student contextCommands: /profile /belt /history /payment /report /cert /stats · Use Ctrl+Enter to run
WTM Command Center console ready.
Commands route to n8n → Claude AI with live Airtable data.
🥋 Belt Exam Submission
Writes to Belt History (
tbldIhhJqJCUx5zlQ) and links the Student field — required for the record to count toward that student's promotion history. Pick the student from the autocomplete suggestions; free-typed names that don't match a loaded record will block submission.Not yet linked — select a student from the dropdown
Fields marked "unverified" aren't in the System Reference's documented Belt History schema (Student / Belt Achieved / Testing Date / Pass-Fail only). They'll be submitted, but if your base doesn't have them the save will automatically retry with only the documented fields.
📝 Exam Registration
Registers a student for a belt grading test in the Belt Testing Registration table (
tblQTnhGpayUZ5mKv). The grading fee is set automatically from the belt being tested for. Pick the student from the autocomplete so the record can be linked; if the linked-student field rejects the write, the record is still created with a typed name and flagged for you to link in Airtable.Not yet linked — select a student from the dropdown
Grading Fee
$3,000.00
White Belt → Blue Stripe tier
Amount Paid$0.00
Balance Due$3,000.00
Student—
Testing ForYellow Stripe
Date—
Fee$3,000.00
StatusNot Paid
Failsafe: if the fee/amount fields don't exist in your base, the registration still saves with the core fields (student, belt, date, payment status) and warns you which extras were dropped.
📋 Existing Registrations
| Student | Belt | Date | Fee | Payment | Reg Status |
|---|---|---|---|---|---|
Loading... | |||||
🥊 Grading Exam
Rank Knowledge Quiz · logs to Airtable on completionSelect a student to auto-match their exam to their Next Belt, or choose a section manually. On completion the score is written to Belt History (verified) and, if you've set a Quiz Results table in Settings, to that log as well. If Airtable can't be reached, the result is kept locally and can be re-synced or downloaded — no result is ever lost.
Not linked — result won't attach to a student record
Exam Mode
🚫 Opt-Out Registry
n8n checks this list (
tblnDXrCd0vYfcJk8) before every Wassenger send. Read-only here — numbers are added/removed in Airtable directly. Use this to understand why a broadcast's recipient count is lower than the audience you selected.| Phone Number | Status | Opted Out Date |
|---|---|---|
Loading... | ||
🔍 Schema Audit
Running audit...
⚙️ Settings
World Taekwondo Mandeville
Master Ken Clarke · +1 876 784 1808 · Mandeville, Jamaica
wtmdashboardcenter.pages.dev · Base: appwTO62uIjVGaOlq
⚠️ Values below are obfuscated in
localStorage with a passphrase baked into this page's source — that protects against casual snooping, not against anyone who can view this page's source. It is not equivalent to server-side secret storage. Per the system's own design, real credentials belong in n8n's environment variables, not in a browser. Use a read-only Airtable PAT here if possible, and treat this device as trusted.