Aller au contenu

Système de tickets

Octavius propose 2 modes de tickets, complémentaires :

  1. Tickets Discord (panel à bouton) — un clic, un salon privé créé
  2. Tickets Dashboard (via formulaire web) — pour les utilisateurs qui préfèrent le navigateur

1. Tickets Discord (panel)

Setup admin

/setup_tickets [channel]

Poste un panneau interactif dans le salon courant (ou un salon cible). Les utilisateurs cliquent sur "Ouvrir un ticket", sélectionnent une catégorie (Question / Bug / Support Technique / Autre), saisissent la raison dans une modal, et un salon #ticket-<user_id> est créé avec :

  • L'auteur du ticket
  • Les rôles staff/admin/fondateur configurés
  • Octavius

Fermer un ticket

Bouton 🔒 Fermer le ticket dans chaque salon ticket. Effet :

  1. Capture des messages du salon (jusqu'à 500)
  2. Génération d'un transcript HTML auto-contenu
  3. Post dans le salon TICKET_ARCHIVE_CHANNEL_ID configuré (Bronze+)
  4. DM au propriétaire du ticket avec le HTML en pièce jointe
  5. Suppression du salon (5s de délai)

Configurer le salon d'archive (Bronze+)

/ticketconfig channel salon:#tickets-archive
/ticketconfig show     # voir la config actuelle
/ticketconfig reset    # retirer la config

2. Tickets Dashboard

Sur le dashboard web, section Messagerie support :

  • Vue dev : tous les tickets de tous les serveurs (filtrable)
  • Vue client : seulement tes tickets sur le serveur actif
  • Threading complet avec marqueur lu/non-lu
  • Catégories : bug, idee, question, autre
  • Sévérités : faible, normal, critique
  • Statuts : open, replied, resolved, closed

À la clôture, même flow transcript HTML : envoi DM owner + post archive.

Transcripts HTML

Le format HTML auto-contenu inclut :

  • En-tête avec sujet, catégorie, sévérité, statut, dates
  • Alternance visuelle client / staff (couleurs distinctes)
  • Avatar large via display URL Discord
  • Footer signé Octavius avec timestamp génération
  • CSS embedded, aucune dépendance externe (s'ouvre offline)
  • Compatible impression PDF depuis le navigateur

Stockage local : transcripts/{guild_id}/{ticket_id}.html.

Différenciant unique

Aucun autre bot Discord ne génère de transcripts HTML auto à la clôture d'un ticket. C'est une feature exclusive Octavius, dispo dès le plan Bronze.

Endpoints API (dashboard / intégrations)

Méthode Endpoint Permission
GET /messages/tickets Owner ou dev
GET /messages/tickets/{id} Owner ou dev
POST /messages/tickets/{id}/reply Owner ou dev
PATCH /messages/tickets/{id} Dev only
GET /messages/tickets/{id}/transcript Owner ou dev
POST /support/ticket User authentifié

Tenant isolation stricte : un user de guild A ne peut jamais lire un ticket de guild B, même avec un ticket_id valide deviné.