Support requests / FAQ management¶
Purpose¶
Evospin does not have an in-app support-ticketing screen. Customer support runs on Zendesk (out-of-band). The closest in-admin surface is the FAQ Management screen, where ops curates the public-site help-center articles. This doc covers FAQ Management plus a stub for the missing ticketing surface.
Audience¶
Customer support (FAQ curator), engineering (FAQ deploys go through this screen, not a CMS).
Path in admin-fe¶
| Screen | URL | Page |
|---|---|---|
| FAQ Management | /faq-management |
ebit-admin-fe/src/app/(dashboard)/faq-management/page.tsx |
| Support tickets | (none) | {{NOT IMPLEMENTED}} — see Cross-links for Zendesk integration |
Backing API endpoints¶
| Endpoint | Source |
|---|---|
GET /faq (player-side; admin reads same) |
apps/api/src/faq/faq.controller.ts |
POST /admin/faq (create) |
apps/api/src/faq/admin.faq.controller.ts:17 |
PUT /admin/faq (update) |
apps/api/src/faq/admin.faq.controller.ts:23 |
DELETE /admin/faq (soft-delete) |
apps/api/src/faq/admin.faq.controller.ts:32 |
Frontend wiring: ebit-admin-fe/src/queries/faq/.
Key actions¶
| Action | Required permission | API call | DB tables touched | Audit-logged? |
|---|---|---|---|---|
| List FAQ entries | (public; same as player) | GET /faq |
Faq |
no (not behind admin guard) |
| Create FAQ entry | faq.edit |
POST /admin/faq |
Faq |
yes |
| Update FAQ entry | faq.edit |
PUT /admin/faq |
Faq |
yes |
| Delete FAQ entry | faq.edit |
DELETE /admin/faq |
Faq.deletedAt |
yes |
Filters and views¶
- Locale — single-locale model (admin is English; player site shows German via next-intl messages, separate from FAQ rows).
- Category — payments / kyc / account / games / general.
- Status — published / draft.
- Search — full-text on question + answer.
Common workflows¶
- Add a new FAQ entry after a known issue. CS / engineering writes a "Why is my deposit pending?" entry.
POST /admin/faqwith category=payments. - Update an FAQ on policy change. Compliance changes withdrawal limits. FAQ is updated to match.
PUT /admin/faq. - Retire an outdated FAQ. Soft-delete via
DELETE /admin/faq. Player site stops showing it on next refresh.
Edge cases / gotchas¶
- No localization in DB. FAQ rows are single-language. Player-site
next-intldoes NOT translate FAQ — operator manually maintains separate rows per language if needed (cf.ebit-fe/messages/de.json). - No staging/preview. Save = live.
- No "what does the player see right now" preview in admin-fe.
- No support-ticket integration. Zendesk is independent; admin-fe does not surface tickets, ticket counts, or SLAs. Operations runs Zendesk in a separate browser tab.
- No template editor for ops emails. Customer-comms templates ride
handover/customer-comms/as docs, not as DB rows.
Support ticketing — {{NOT IMPLEMENTED}}¶
Dropbet's reference docs include a "Support tickets" admin screen. Evospin does NOT have one.
Workaround. Customer support runs Zendesk; tickets carry the player's email. CS:
- Receives ticket in Zendesk.
- Searches player by email in users-management.md.
- Investigates / acts via the user profile drawer.
- Replies in Zendesk; resolution is recorded in Zendesk, not in Evospin.
If the customer engagement is significant (chargeback, fraud), CS leaves a note via POST /admin/user-notes (see user-profile.md → Notes tab). The note becomes visible to other operators viewing the same player.
Cross-links¶
- User notes (the closest in-app analog of a ticket-thread): user-profile.md → Notes tab
- Customer-comms templates (operator-side scripts):
handover/customer-comms/ - Permission key:
libs/auth/src/permissions/const.ts:60-63(faq.edit) - Audit: admin-logs.md
Sequence — adding a new FAQ entry¶
sequenceDiagram
actor cs as CS Lead
participant admin-fe
participant api
participant pg as Postgres
cs->>admin-fe: open /faq-management, click Create
cs->>admin-fe: fill { category=payments, question, answer }
admin-fe->>api: POST /admin/faq { ... }
api->>api: PermissionGuard('faq.edit')
api->>pg: INSERT Faq
api->>pg: INSERT AdminActionLog
api-->>admin-fe: FaqDto
admin-fe-->>cs: row added
Note over admin-fe: player site /help reflects on next fetch