Système de tickets¶
Octavius propose 2 modes de tickets, complémentaires :
- Tickets Discord (panel à bouton) — un clic, un salon privé créé
- 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 :
- Capture des messages du salon (jusqu'à 500)
- Génération d'un transcript HTML auto-contenu
- Post dans le salon
TICKET_ARCHIVE_CHANNEL_IDconfiguré (Bronze+) - DM au propriétaire du ticket avec le HTML en pièce jointe
- 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é.