AI-chat-widget i admin-panelet der svarer på spørgsmål om systemet, slår data op direkte i din tenant og kan udføre udvalgte handlinger. Hver tenant er isoleret — assistenten kan kun læse/skrive på din egen tenant.
Kernebegreber
- Read-tools: Henter data (opslag på medlemmer, hold, omsætning, betalinger m.m.). Aktiv på ALLE tenants.
- Write-tools: Ændrer data. Aktiv på fitteryoga (under videre validering). Kører altid med to-trins bekræftelse — første kald = preview, andet kald = eksekvering efter dit "ja".
- Knowledge base: Alle 55 hjælpe-guides på
/admin/hjaelp/*er komprimeret til en KB assistenten læser ved hver besked. Spørger du om et område systemet ikke dækker, henviser den til support. - Secret-vagt: Stripe-, MobilePay-, Frisbii-, webhook- og widget-nøgler blokeres før de sendes til AI'en eller logges. Indsæt aldrig hemmeligheder i chatten alligevel.
- Conversation-log: Alle samtaler logges i
assistant_chat_logs(session_id, bruger, sti, beskeder, token-forbrug). Bruges til debugging og audit.
Hvad assistenten KAN
Læse-opslag:
- Studie-overblik og indstillinger
- Hold (find, attendance, holdskabeloner, venteliste)
- Medlemmer (find, profil, betalingshistorik, udløbende medlemskaber)
- Bookinger (én booking i detalje, no-shows)
- Omsætning og attendance-statistik
- Instruktører (plan, løn pr. måned)
- Gavekort, rabatkoder, kontakthenvendelser, behandlinger
- Betalingsfejl (failed charges)
Skrive-handlinger (kun fitteryoga, med bekræftelse):
- Aflys hold (cancel_class) — fuld refund af MobilePay/Stripe/klip, valgfri email-broadcast, auto-SMS hvis tenanten har det slået til
- Aflys én booking (cancel_booking) — returnerer klip, rykker venteliste op, valgfri MobilePay/Stripe-refund
- Skift instruktør (substitute_or_swap_instructor) — skift primær eller registrér vikar på et hold
- Rediger hold (update_class_details) — tid, lokale, kapacitet, drop-in-pris, navn, beskrivelse, special-udstyr
- Opret ugentlige hold (create_recurring_class_series) — opret template + auto-generér op til 26 ugers instanser
- Justér klippekort (adjust_member_credits) — tilføj/træk klip med begrundelse, logges i credit-historik
- Tilføj admin-note (add_admin_note) — append-only på medlemsprofil
- Skift status på kontakthenvendelse (update_contact_request_status) — pending/responded/closed
Hvad den IKKE kan
- Sende emails eller SMS direkte til medlemmer (kun som side-effekt af cancel_class hvis du vælger det)
- Oprette eller redigere klasse-skabeloner / pricing-planer
- Ændre priser, abonnementer eller medlemskabs-typer
- Pause eller genoptage medlemskaber (Stripe-integration udskudt — kompleksitet med agreement-styring)
- Refundere arbitrære beløb (kun fuld refund tilknyttet booking-aflysning)
- Tilgå data på andre tenants
- Slette noter, bookinger, medlemmer eller andet — alt er append/cancel, ikke delete
- Køre write-tools på andre tenants end fitteryoga (read er på for alle)
Regler / grænser
- Max 8 tool-kald pr. tur (hard cap)
- Rate limit: 30 tool-kald/minut pr. tenant
- Tool-use kræver admin-login (samme auth som resten af /admin)
- Write-tools kræver eksplicit "ja" — preview er ALDRIG en handling
- Sessions gemmes lokalt i browseren (storage key
holdstyring-assistant-...)
Aktivering
- Read-tools er ON for ALLE tenants på prod.
- Write-tools er ON for fitteryoga på prod. Hvis du vil have write-tools slået til på din tenant, kontakt support — vi udvider gradvist.
- Staging (
STAGING=true): begge slået til for alle tenants.
FAQ
- Kan assistenten se mine kunders kreditkort? — Nej. Kortdata ligger hos Stripe/MobilePay og er aldrig i vores database. Assistenten ser kun referencer (paymentIntentId, agreementId).
- Hvorfor svarer den "jeg kan ikke se det i min viden om systemet"? — KB dækker ikke alle features. Den nægter at gætte. Henvis til support.
- Hvad sker hvis jeg siger "ja" til en write-action? — Assistenten kalder toolet med confirm: true, og handlingen eksekverer i samme transaktion som hvis du havde klikket i UI'en.
- Kan jeg fortryde en write? — Cancel-flows (klasse, booking) kan ikke un-cancel'es; refunds er endelige. Klip-justeringer kan rulles tilbage med modsat-rettet justering. Admin-noter er append-only. Status-skift på kontakthenvendelser kan rulles tilbage manuelt. Ugentlige hold kan slettes individuelt via /admin/classes hvis serien skal trækkes tilbage.
- Hvor langt frem kan jeg oprette ugentlige hold? — Max 26 uger ad gangen (et halvt år). Skal du længere, kør tool'et igen efter første batch.
- Hvad sker når jeg justerer klip? — Klip ændres på det nyeste aktive klippekort (eller et specifikt membershipId hvis du angiver det). Ændringen logges i MembershipCreditLog med din begrundelse — den fane findes på medlemmets profil.
- Hvor logges samtalerne? —
assistant_chat_logs-tabellen. Indeholder bruger, tenant, sti, beskeder og token-forbrug. Bruges til debugging og audit. - Får jeg AI-svar offline? — Nej. Widget kalder Anthropic via
/api/admin/assistant/chatpå hver besked.