Guild Staff Dashboard

Design notes for the staff-facing dashboard — what a staff member sees when a customer checks in or is looked up.

Triggered by: NFC card tap at kiosk, phone lookup, or manual search. Primary use case is attaching the customer to the current Square POS checkout and having context for a real conversation.

Three Layers

Layer 1: The Glance (always visible, updates on check-in)

The “last check-in” card that appears when someone taps their NFC card:

  • Name + nickname — who is this person
  • Tier badge — do they get a discount? what %?
  • Points balance — dollar equivalent prominently (“$4.50 in store credit”)
  • Subscription status — active / past_due / canceled (past_due = gentle nudge)
  • Active buff — if they have a 2x XP window running
  • Square customer link — so staff can tap “attach to sale” in Square POS

This is the “attach customer to checkout” prompt. Staff sees the card, taps the customer in Square, done.

Layer 2: The Conversation (one tap deeper)

Staff wants to have a real interaction, not just ring them up:

  • Recent purchases — “Oh you grabbed the new Mork Borg book last week, how is it?”
  • Visit frequency — regular? lapsed? first time in a while?
  • Lifetime spend — whale detection (not displayed as a number, maybe a subtle indicator)
  • Level + class — conversation starter, RPG flavor
  • Birthday — if it’s their birthday month, staff should know
  • Member since — “You’ve been with us since day one”

Layer 3: The Admin (rarely needed)

  • Full transaction ledger
  • Manual point adjustment
  • Manual check-in
  • Subscription management link (Stripe portal)
  • squareNeedsReview flag — auto-created members that staff should verify
  • Email verification status

Data Available

All of this is already in Payload. No new collections needed. Key sources:

  • Members — identity, tier, points, XP, level, class, birthday, join date, subscription status, Square customer ID
  • Purchases — items, amounts, discounts, frequency, recency
  • CheckIns — visit timestamps, method, cooldown state
  • LoyaltyTransactions — full ledger (earn/redeem/bonus/adjustment)
  • ActiveBuffs — current XP multipliers + countdown

Open Questions

  • Real-time push via WebSocket, or poll on check-in event?
  • Separate staff app, or a mode in the existing portal?
  • Should staff see all members or only their shop’s?
  • Integration with Square POS app (deep link to customer?) — Square doesn’t support injecting a customer into an in-progress sale via API, so this is a manual “attach” step