ABKC Admin Walkthrough - Office Manager Edition (V1)

0 of 0 complete

ABKC Admin Walkthrough — Office Manager Edition (V1)

Audience: the ABKC Office Manager — the person who owns the paperwork, runs the computers, trains every office worker, and is the answer-of-last-resort for anyone who calls the ABKC. Written train-the-trainer style: every module teaches you the clicks, then tells you what to teach your staff, then gives you the phone script.
Secondary audience: ABKC ownership + Dane Cooper (system owner) + the standing deliverable panel (engineering, security, legal, QA, payments/PCI, privacy/COPPA, accessibility/WCAG 2.2, SRE).
Version: V1 · 2026-06-09 · companion to the ABKC payment walkthrough package (INDEX.md in this folder).
Canonical source: this Markdown; HTML (interactive) / PDF / DOCX are derived — regenerate per §10.
Time: ~45 min to read · ~90 min to execute all modules once · 2-week staff-training plan in §6.


§0 — Scope: what you run, what you escalate

This walkthrough covers the ABKC admin area (/admin) for daily office operations: the registration queue, approvals and ABKC-number assignment, the "I paid but got no certificate" triage, co-owner signature chasing, shop orders, member lookup, and the audit trail. It is the training backbone for your staff — everyone who answers an ABKC phone or email works the workflows in this document, and they answer to you.

Where the admin area lives today: https://abkc-website.vercel.app/admin. After ABKC ownership authorizes the DNS cutover, the same screens will be at www.abkcdogs.com/admin — bookmarks change, nothing else does.

Out of scope (V1): dog-ownership transfers (the /admin/transfers screen exists but is NOT READY — do not train or promise it), content publishing (magazine/articles/homepage — reference appendix only), and anything in the §8 escalation column (those go to Dane).

Status legend you will live in

Badge Meaning Whose move
submitted (blue) Paid + complete; waiting on office Yours
under_review (amber) An office member opened it Yours
revision_requested (amber) Sent back to the applicant with a note Applicant's
approved (green) ABKC number assigned; packet emailed Done
returned (gray) Sent back with a return reason Applicant's
rejected (gray) Refused with notes Done (appealable)

§1 — Pattern + Triple Verification Protocol

This document follows the estate Tutorial Template v2 (17 sections, exactly 4 diagrams, interactive HTML build, honest reservations, sign-off). Claims were verified 2026-06-09:

Level Verification Receipt
L1 Empirical Code-level mapping of the live repo (katterskillsawmill/ABKC-website) 26 admin routes enumerated; approval RPC func_assign_abkc_number; fulfillment paths (Stripe webhook + PayPal webhook + scheduled backstop); roles admin/office/rep gating middleware
L2 WebSearch (June 2026) Vendor states current Supabase RLS · Resend docs · Stripe dashboard · PayPal dashboard
L3 Source docs The single-owner payment walkthrough V1 (this folder) The $62.00 single-dog example (base $55 + $7 processing) + the member-side flow your callers experience

🧭 Interactive HTML: open ABKC-ADMIN-OFFICE-MANAGER-WALKTHROUGH-V1-2026-06-09.html in Chrome/Edge. Checkboxes persist per-browser; the 📝 notes panel auto-saves (use it for your training notes per staff member); the progress bar tracks your module completion.


§2 — Prerequisites + accounts + roles

Training rule of thumb: staff get the office role only after they've passed your M2+M3 sit-along (the §17 trainer log records this).


§3 — Diagram 1/4: the system from the office's seat

graph TB subgraph PUBLIC["What members see"] REG["register/dog form
uploads + signature + payment"] ACCT["account dashboard
application status"] SIGN["account/pending-signatures
co-owner signing"] end subgraph PAY["Payment rails"] PP["PayPal"] ST["Stripe"] end subgraph ADMIN["What YOUR TEAM sees (/admin)"] Q["registrations queue
status badges + validation dots"] DET["registration detail
docs + fees + actions"] ORD["orders (shop)"] USR["users + roles"] LOG["audit log + error log"] end subgraph BACK["What the system does alone"] WH["payment webhooks
Stripe + PayPal"] CRON["scheduled backstop
auto-approve check"] FUL["fulfillment
certificate + pedigree + receipt PDFs"] EMAIL["Resend email delivery"] end REG --> PP & ST PP & ST --> WH WH --> Q CRON --> Q Q --> DET DET -->|"Approve + ABKC number"| FUL FUL --> EMAIL EMAIL --> ACCT DET -->|"Revision / Return"| EMAIL SIGN --> DET DET -.audit trail.-> LOG

§4 — Diagram 2/4: the approval, click by click

sequenceDiagram participant O as Office staffer participant Q as /admin/registrations participant D as Detail page participant S as System (RPC + database) participant A as Applicant O->>Q: open queue, filter status = submitted Q-->>O: rows with badges + validation dots O->>D: click the dog's row D-->>O: owner + dog + documents + fee breakdown + validation flags O->>O: check documents (pedigree pages, photos) + flags O->>D: type ABKC number, click Approve D->>S: assign number (atomic, audit-logged) S-->>A: email with certificate + pedigree + receipt PDFs S-->>D: status = approved (green) Note over O,A: Revision/Return instead? The note you type IS the email the applicant reads - write it politely.

§5 — Diagram 3/4: the phone-call decision tree

flowchart TD A[Caller question] --> B{Which kind?} B -- "Where is my certificate?" --> C{Find their application in the queue} C -- "status approved" --> C1[Resend packet guidance:
check spam, search Resend address,
confirm email on file] C -- "status submitted or under_review" --> C2[In the queue - give honest ETA
and work it next] C -- "paid but NOT in queue" --> C3[ESCALATE to Dane:
payment row mismatch] B -- "My co-owner never got the email" --> D1[Detail page - co-owner section
Resend invite - confirm address
co-owner needs an ABKC login] B -- "I made a mistake on my form" --> E1[Request Revision with a kind note
applicant edits + resubmits - back in your queue] B -- "Do you mail paper certificates?" --> F1[Digital-only today: PDFs by email,
print at home - paper program is an
ownership decision, not promised] B -- "Payment dispute / refund / chargeback" --> G1[ESCALATE to Dane - never
promise refunds on the phone] B -- "Website is broken / error screen" --> H1[Screenshot + URL + time
note in error-log check - ESCALATE]

§6 — Diagram 4/4: the two-week staff-training plan

gantt title Train-the-trainer rollout (you run it; Dane on call) dateFormat YYYY-MM-DD axisFormat %m-%d section Week 1 You run M1-M8 solo (this doc) :w11, 2026-06-10, 2d Staffer 1 sit-along M2+M3 :w12, after w11, 2d Staffer 1 solo queue + you review :w13, after w12, 1d section Week 2 Staffer 1 phone scripts M4-M5 :w21, after w13, 2d Staffer 2 sit-along M2+M3 :w22, after w13, 2d Office role granted to passed staff :w23, after w21, 1d Sign-off log complete (§17) :w24, after w23, 1d

§7 — Modules M1–M3: sign-in, the queue, and decisions (the core)

M1 — Sign in, know your role, respect the audit trail (~10 min)

Your clicks
- [ ] Go to https://abkc-website.vercel.app/login → sign in → then open https://abkc-website.vercel.app/admin.
- [ ] Confirm the dashboard loads (no "Access Denied"). Bookmark it as ABKC ADMIN.
- [ ] Open /admin/audit-log once, just to see it: every approve/reject/role change is recorded with who + when + what changed. You never need to reconstruct "who did this" from memory.

Teach your staff: one account per person, never share logins — the audit trail is per-person and it protects them ("I didn't do that" is checkable). Lock screens when stepping away (members' personal data is on screen — names, addresses, emails).

Phone script: none — this module is hygiene.

Admin dashboard after office-role sign-in
(capture during execution)

M2 — Master the registration queue (~15 min)

Your clicks
- [ ] Open /admin/registrations. Read the status badges (legend in §0) and the validation dot on each row: green = data checks pass · amber = warnings · red = something failed validation (e.g., a missing dam ABKC number).
- [ ] Filter to submittedthis is the work pile; everything else is either waiting on the applicant or finished.
- [ ] Click a row → the detail page: owner info, dog details (breed, sex, DOB, color, microchip, sire/dam), the four uploaded documents (pedigree front, complete pedigree, two photos), any add-ons (e.g., rush processing), and the fee breakdown (single-dog example: $62.00 = $55 base + $7 processing).
- [ ] Open every uploaded PDF/photo once. You are checking: legible? the right document? matches the form data (dog name, sire/dam)?

Teach your staff: the queue is worked oldest-first within submitted unless a rush add-on says otherwise; the validation dot is a hint, not a verdict — red flags get a human look, not an auto-reject.

Phone script — "Is my dog registered yet?": ask for the owner's email or the dog's name → filter the queue → read the badge honestly: "You're in the queue — submitted on [date], we're working applications from [date] right now." Never promise a specific day; promise the next status email.

Registration queue with status badges and validation dots
(capture during execution)

Detail page with documents and fee breakdown
(capture during execution)

M3 — The five decisions (and what each one emails) (~15 min)

From the detail page you have five buttons. Every one of them writes the audit log; three of them email the applicant.

Action When What the applicant gets
Approve (after typing the ABKC number) Documents check out, data valid The packet email: certificate + pedigree + receipt PDFs attached
Mark Under Review You're working it across a break Nothing (internal)
Request Revision (+ your note) Fixable applicant mistake (typo, wrong photo) An email containing your note, verbatim
Return (+ reason) Can't process as submitted (e.g., illegible pedigree) An email with the reason
Reject (+ notes) Not eligible / fraudulent A refusal email; appeals go to Dane

What the buttons are actually labeled on the page (so you're not hunting for one called "Approve"): approving is two clicks — first "Mark Under Review" (claims it as yours), then "Auto-Assign Number", which assigns the next ABKC number and approves it in one step. To use a specific number instead, type it in the override field next to it. There is no single button literally labeled "Approve" — "Auto-Assign Number" is the approve. ("Mark Under Review", "Request Revision", "Return", "Reject", and "Reopen" are labeled exactly as in the table above.)

Your clicks (do one real approval end-to-end)
- [ ] Pick a clean submitted application → click Mark Under Review → then Auto-Assign Number (it assigns the next ABKC number for you), or type a specific number in the override field. (Dane sets the numbering scheme — record it in the 📝 notes panel.)
- [ ] Watch the badge flip to green approved.
- [ ] Verify the packet email went out: ask the applicant once, or check the email log if you have Resend access. The PDFs are generated and attached automatically — you never make certificates by hand.
- [ ] Try a Request Revision on a flawed application and read your own note back as the applicant will read it before sending.

Teach your staff: the note fields are customer-facing email copy — kind, specific, one ask per note ("Please re-upload the complete pedigree — page 2 was cut off"), never internal shorthand. Reopen exists (approved/rejected → under_review) for genuine mistakes; using it is normal, hiding a mistake is not.

Phone script — "I made a mistake on my application": "No problem — I'll send it back to you for revision right now; you'll get an email with exactly what to fix, you resubmit, and it comes straight back to the front of my screen." (Then actually click Request Revision while they're on the phone.)

Approve with ABKC number assignment
(capture during execution)


§8 — Modules M4–M8: triage, signatures, shop, people, escalation

M4 — "I paid but never got my certificate" (the triage that earns trust) (~10 min)

The system finishes paid registrations through three independent paths — a Stripe webhook, a PayPal webhook, and a scheduled backstop that sweeps for anything the webhooks missed. So "paid but stuck" is rare and almost always one of these four, in order:

Teach your staff: the order matters — check our queue before doubting the member's payment. The phrase that de-escalates: "Your payment is safe — let me find exactly where your application is."

Fulfillment triage: detail page payment panel
(capture during execution)

M5 — Co-owner signatures: status + resend (~8 min)

Registrations with a co-owner can't finish until every listed co-owner signs (they do it at their own account → Pending signatures → draw the signature on screen → submit).

Phone script — "My co-owner never got the email": "I'll resend it right now — have them check spam, and one important thing: they'll need their own free ABKC login to sign; the email walks them through it."

Co-owner signature status and resend
(capture during execution)

M6 — Shop orders, lightly (~5 min)

M7 — People: members, duplicates, roles (~7 min)

M8 — Escalation matrix + the two logs (~5 min)

Office handles (you + staff) Escalates to Dane
Queue work: approve / revise / return / reject Refunds, chargebacks, payment disputes
Certificate-email triage (M4 cases 1–2) Payment-row mismatch (M4 case 3) older than a day
Co-owner resend + guidance Email-address corrections on paid applications
Order lookup Anything on /admin/settings, /admin/migration, /admin/verification
Role verification Role granting; account merges; all transfers (screen NOT READY)
First screenshot of a site error The error itself (/admin/error-log is read-only context for your screenshot)

Reference appendix (exists; not trained in V1): events · judges · clubs · records · link-dogs · articles · magazine · library · faq · newsletter · media · homepage · design-tokens · verification · migration · settings · transfers (NOT READY — do not use)


§9 — Owner-decision blanks (Dane completes these before training day)

These are policy questions the software can't answer — fill them in ink before the first staff session:

# Policy Decision
1 ABKC numbering scheme (format + next block) ________
2 Queue SLA we promise on the phone ("within ___ business days") ________
3 Rush add-on handling (front of queue? same-day?) ________
4 Paper/printed certificate program (offer? price?) — system is digital-only today ________
5 Refund policy phrasing the office may read aloud (decisions stay with Dane) ________
6 Office hours + the escalation channel to Dane (text? call? Telegram?) ________

§10 — Reference card

Admin home ............ https://abkc-website.vercel.app/admin
Queue ................. https://abkc-website.vercel.app/admin/registrations
Users / roles ......... https://abkc-website.vercel.app/admin/users
Orders / products ..... https://abkc-website.vercel.app/admin/orders  /admin/products
Audit log / errors .... https://abkc-website.vercel.app/admin/audit-log  /admin/error-log
Member login .......... https://abkc-website.vercel.app/login
Co-owner signing ...... member account -> Pending signatures
Single-dog example .... $62.00 total ($55 base + $7 processing)
Statuses .............. submitted -> under_review -> approved | revision_requested | returned | rejected
Packet email .......... certificate + pedigree + receipt PDFs, sent automatically on Approve
Roles ................. admin (Dane) | office (you + passed staff) | rep
Golden rules .......... one login per person | notes are customer emails | never take card numbers
After DNS cutover ..... same paths under www.abkcdogs.com (re-bookmark)

Regenerate this document's formats (from this folder):

$env:PYTHONUTF8=1
C:\Users\dcoop\.venv\Scripts\python.exe C:\Users\dcoop\scripts\generate-tutorial-html.py ABKC-ADMIN-OFFICE-MANAGER-WALKTHROUGH-V1-2026-06-09.md ABKC-ADMIN-OFFICE-MANAGER-WALKTHROUGH-V1-2026-06-09 --title "ABKC Admin Walkthrough - Office Manager Edition (V1)" --slug abkc-admin-office-v1

§11 — UI anatomy: the two screens you'll teach most

The queue (/admin/registrations): left-to-right — dog name / applicant / status badge (color legend §0) / validation dot (green-amber-red data check) / submitted date. The filter bar above pins your working set (submitted). Row click opens the detail page.

The detail page (/admin/registrations/[id]): top = applicant + dog identity block · middle = the four documents (open each in a tab) + add-ons + fee breakdown · bottom = the action row (Approve with the ABKC-number field, Under Review, Request Revision, Return, Reject — and Reopen on closed items) · co-owner block with signature statuses + Resend when applicable. The note box under Revision/Return is the email the applicant receives.

Annotated queue screen
(capture during execution)

Annotated detail screen
(capture during execution)


§12 — Verification: how you know a trainee is ready

Check How Pass
Role works Trainee signs in, opens /admin Dashboard loads, no Access Denied
Queue literacy Point at any row Names the badge, the dot, and whose move it is
Document check Hand them a real submitted app Opens all four docs; catches a planted mismatch
Approval One supervised Approve Correct ABKC number; packet email confirmed received
Revision tone One Request Revision Note is kind, specific, single-ask (you'd send it)
M4 triage Role-play "paid, no certificate" Walks cases 1→4 in order; escalates case 3
Co-owner Role-play "no signing email" Resends + explains the login requirement
Escalation Quiz five §8 rows 5/5 correct on office-vs-Dane
Audit respect Ask "whose login do you use?" "Mine, always" without hesitating

§13 — What's next (after your first solo week)

You: run the two-week plan (§6) · fill the §9 policy blanks with Dane · keep a running 📝 notes export per staffer for the §17 log.
Dane: grant office roles as staff pass · the co-owner member walkthrough (companion doc, same folder) covers the member-side signing experience your callers see · transfers admin + printed-certificate program are future system work, not office promises.
System (already automatic): payment webhooks + the scheduled backstop + packet-email fulfillment + audit logging — none of it needs office hands.


The screens you'll use: admin home · registrations · orders · products · users · identity-resolver · audit-log · error-log · member login · signup · the public registration form

Appendix screens: events · judges · clubs · records · link-dogs · articles · magazine · library · faq · newsletter · media · homepage · settings

Vendors + standards: Stripe dashboard · Stripe receipts · PayPal sign-in · PayPal help center · Resend docs · Supabase Row Level Security · Supabase status · ShareX (screen capture) · PCI SSC quick guide · WCAG 2.2 · Vercel docs

(24 product deep-links + 11 vendor/standard anchors = 35 total — machine-counted)


§15 — Glossary (46 terms, office language)

Term Plain meaning
Application One dog-registration request from one member
Queue The /admin/registrations list — your work pile
Status badge The colored word on each row (legend in §0)
submitted Paid + complete; waiting on the office
under_review An office member has it open
revision_requested Sent back to the applicant with your note
returned Sent back whole, with a reason
rejected Refused, with notes; appeals go to Dane
approved Done — number assigned, packet emailed
Validation dot Automatic data check: green pass / amber warn / red fail
Detail page One application's full screen with the action buttons
ABKC number The registry number you type at approval
Numbering scheme Dane's format for ABKC numbers (§9 blank #1)
Packet email The automatic approval email: certificate + pedigree + receipt
Certificate The registration PDF in the packet
Pedigree The lineage PDF (sire/dam ancestry)
Receipt The itemized payment PDF
Fee breakdown Base + processing + add-ons (single-dog example $62.00)
Add-on Paid extra such as rush processing
Rush An add-on asking for faster handling (§9 blank #3)
Sire / Dam Father / mother of the registered dog
Microchip The dog's chip ID on the form
Co-owner A second (or third) listed owner who must sign
Signature request The system invitation a co-owner gets by email
Pending signatures The member-account page where co-owners sign
Signature pad The draw-with-mouse/finger box on that page
Invited / signed / declined / expired The four signature-request states
Resend invite The button that re-emails a co-owner
14-day expiry How long a signature invitation lasts before resend
Webhook The processor's instant "payment happened" message
Backstop sweep The scheduled job that finishes anything a webhook missed
Fulfillment Everything the system does automatically after Approve
Resend (vendor) The email service that delivers system mail
Spam check First ask on "no email": search junk folder for the ABKC sender
Stripe / PayPal The two card/payment processors
Processor receipt The payment proof from Stripe/PayPal (not our packet)
Chargeback A bank-forced refund — always Dane's desk
PCI Card-data safety rules — why we never take card numbers by phone
Role What an account may do: admin / office / rep
office role Your team's admin-area access level
Access Denied The screen meaning "role not set" — only Dane fixes it
Audit log The who-did-what record of every admin action
Error log The technical failure list (read-only; screenshot for Dane)
Identity resolver The duplicate-account merge screen (flag, don't merge, in V1)
DNS cutover The future switch to www.abkcdogs.com (re-bookmark day)
Vercel Where the website runs today (abkc-website.vercel.app)

§16 — Honest reservations

  1. Screenshots are capture-during-execution — the screenshots/admin-*/ images don't exist until your first run; capture them then (they make staff training dramatically faster).
  2. Mermaid diagrams render as code text in the DOCX build (known generator limitation); use the HTML or PDF for training.
  3. Transfers admin is NOT READY — the screen exists but isn't wired; promising transfers on the phone is the one guaranteed way to create an angry caller.
  4. Dual co-owner (sire + dam) sequential signing is unproven in the UI — single co-owner flow is solid; if a litter application shows two co-owner rows, treat as M4-style escalation until Dane validates it.
  5. Physical certificates don't exist — fulfillment is digital-only (a 2026-05 ownership decision); §9 blank #4 is where that changes, not the phone.
  6. Signature invitations expire silently (14 days) — nothing nags you; checking co-owner status on aging applications is an office habit, not a system feature.
  7. office role sees everything — there's no per-staffer narrowing yet; your trainer log + the audit trail are the compensating controls.
  8. Admin screens were verified at code level on 2026-06-09, not by an office click-through — your first M1–M8 run is the live validation; note any mismatch in the 📝 panel and it feeds V2.
  9. URL changes at DNS cutover — every deep link here moves to www.abkcdogs.com; the reference card's last line is the re-bookmark reminder.

§17 — Sign-off + trainer log

Office Manager attestation: I executed M1–M8 on the live admin area, the §9 policy blanks are filled, and the verification checks in §12 are how I pass my staff.

Office Manager: ____ Date: _ Signature: _____

System owner (Dane): ____ Date: ____

Trainer log (one row per staffer)

Staffer M2+M3 sit-along Solo approve (supervised) M4–M5 scripts §12 quiz 5/5 office role granted (Dane)

§A — Amendments Log (append-only)

📝 My notes

Auto-saves to this browser. Survives reloads. Click Export to download as .md.
Saved