Ticket System

The ticket system provides comprehensive support functionality including multiple ticket types, priority levels, working hours, claiming system, automatic alerts, transcripts, and detailed logging.

Overview

The ticket system is a complete support solution, offering:

  • Multiple ticket types

  • Role-based priorities

  • Working hours

  • Claiming & auto-alerts

  • Transcripts, closure messages & reviews

  • Detailed logging


Core Settings

General Setup

TicketSettings:
  Enabled: false
  LogsChannelID: "CHANNEL_ID"
  MaxTickets: 1
  DeletionTime: "3s"
  useSelectMenu: true
  overFlow: ["CATEGORY_ID", "CATEGORY_ID"]
  • Enabled β†’ Master switch

  • LogsChannelID β†’ Channel where all ticket events are logged (open, close, claim)

  • MaxTickets β†’ Limit how many tickets a single user can have at once

  • DeletionTime β†’ Delay before a ticket is fully deleted after closure

  • useSelectMenu β†’ true = dropdown menus, false = buttons

  • overFlow β†’ Backup categories if the main one reaches 50 channels


Delayed Response System

Warns users when many tickets are open.

DelayedResponse:
  Enabled: false
  TicketThreshold: 25
  Embed:
    Title: ""
    Description:
      - "# 🎫 High Support Volume Notice"
      - "⚠️ We are currently experiencing higher than usual ticket volume."
      - "## Current Status"
      - "> πŸ“Š **Active Tickets:** {openTickets}"
      - "> ⏱️ **Est. Response Time:** 24-48 hours"
  • TicketThreshold β†’ When this many open tickets exist, the warning is shown

  • Embed β†’ Fully customizable (placeholders like {openTickets} work)


Close Reasons

CloseReasons:
  Enabled: true
  DefaultReason: "No reason provided"
  Reasons:
    - name: "Issue Resolved"
      emoji: "βœ…"
      value: "resolved"
    - name: "User Request"
      emoji: "πŸ‘‹"
      value: "user_request"
  • Adds preset closure reasons staff can pick

  • AllowCustomReason β†’ lets staff write their own


Priority System

Priority:
  Enabled: true
  DefaultPriority: "Low"

  Levels:
    High:
      Roles: ["ROLE_ID"]
      Tag: ["ROLE_ID"]
      MoveTop: true
  • Levels β†’ Low / Medium / High (add more if needed)

  • Roles β†’ Who gets assigned this priority

  • Tag β†’ Roles to ping when tickets open

  • MoveTop β†’ Moves priority tickets to the top of the category


Working Hours

WorkingHours:
  Enabled: false
  Timezone: Europe/London
  NonWorkingDays: ["Saturday", "Sunday"]
  Schedule:
    Monday: "16:00-22:00"
  allowOpenTickets: true
  • Timezone β†’ Must be IANA format (e.g. America/New_York)

  • Schedule β†’ Define start/end times

  • allowOpenTickets β†’ Allow tickets outside hours? If yes, a warning embed (WorkingEmbed) is shown.


Ticket Panels

Panels are what users see when opening tickets.

TicketPanelSettings:
  Panel1:
    Embed:
      Title: "πŸ“© Support Tickets"
      Description:
        - "Please select a category below for assistance."
  • You can create multiple (Panel1, Panel2...)

  • Each panel controls how ticket buttons/menus look


Ticket Creation Templates

TicketCreation:
  Default:
    Embed:
      Title: "🎫 New Support Ticket"
      Description:
        - "Welcome {user}!"
        - "**Ticket Type:** {ticketType}"
        - "**Claimed By:** {claimer}"
        - "{questions}"
  • Defines the first message inside the ticket

  • Supports placeholders like {user}, {ticketType}, {claimer}, {questions}

  • You can also make ticket-type-specific templates (TicketType1, TicketType2)


Ticket Types

Each type is its own config block.

TicketTypes:
  TicketType1:
    Enabled: true
    Panel: "Panel1"
    Name: "General Support"
    ChannelName: "{ticket-id}-General-{user}-{priority}"
    CategoryID: "CATEGORY_ID"
    SupportRole: ["ROLE_ID"]
    Claiming:
      Enabled: false
    Button:
      Name: "General Support"
      Emoji: "πŸ”"
      Style: "Danger"
      Description: "Open to receive general support"
  • Panel β†’ Which panel it belongs to

  • ChannelName β†’ Use placeholders like {ticket-id}, {user}, {priority}

  • SupportRole β†’ Who can access tickets

  • Claiming β†’ Restrict tickets to one staff member

  • Button β†’ Text, emoji, color, description


Alerts

Alert:
  Enabled: true
  Time: "12h"
  DM:
    Enabled: true
    Embed:
      Title: "⚠️ Ticket Alert"
      Description:
        - "Hello {user}"
        - "> **Time Until Close:** {time}"
      Footer:
        Text: "Drako Development | Ticket System"
        Icon: "https://i.imgur.com/w5XxKpc.png"
      Author:
        Text: "Ticket Alert System"
        Icon: "https://i.imgur.com/w5XxKpc.png"
      Color: "#FF0000"
      Image: ""
      Thumbnail: ""
    Button:
      Label: "Go to Ticket"
      Emoji: "🎫"
  • Reminds users before closure

  • Can send via DM (with fallback log if DM fails)

  • Also posts a warning inside the ticket


Ticket Closure DM

TicketClosureDM:
  Enabled: true
  Transcript: true
  Embed:
    Title: "Ticket Closure Notification"
    Description:
      - "{userTag}, your ticket in {guild} has been closed."
      - " "
      - "**Ticket Summary**"
      - "> **Messages:** {messageCount}"
      - "> **Priority:** {priority}"
      - "> **Handled By:** {claimer}"
      - "> **Close Reason:** {reason}"
      - " "
      - "We value your feedback! Please leave us a review below."
    Footer:
      Text: "Drako Development | Ticket System"
      Icon: "https://i.imgur.com/w5XxKpc.png"
    Author:
      Text: "Drako Support"
      Icon: "https://i.imgur.com/w5XxKpc.png"
    Color: "#1769FF"
    Image: "https://images-ext-1.discordapp.net/external/OllWGq5ta58LX6KoA8yEVTMrI9L4BJ0iE_T0pE4TZvw/https/i.imgur.com/LbjDuZ8.png?format=webp&quality=lossless&width=1618&height=403"
    Thumbnail: "https://i.imgur.com/w5XxKpc.png"
  • Sends users a DM when their ticket closes

  • Includes summary and optional transcript


Reviews

The review system lets users rate their support experience after a ticket is closed. They’ll get a DM with a Leave a Review button, which opens a simple modal where they can rate different aspects of the support they received.

Here’s what the config looks like:

Reviews:
  Enabled: false
  Placeholder: "Rate us!"
  ButtonEmoji: "⭐"
  ButtonStyle: "Secondary" # Primary, Secondary, Success, Danger
  
  # Multiple rating questions that will appear as select dropdowns in the modal
  Questions:
    1:
      ID: "support_quality"
      Label: "Support Quality (1-5)"
      Description: "Rate the quality of support you received"
      Required: true
      Options:
        - Label: "Very Poor"
          Value: "1"
          Emoji: "😞"
        - Label: "Poor"
          Value: "2"
          Emoji: "😐"
        - Label: "Average"
          Value: "3"
          Emoji: "πŸ™‚"
        - Label: "Good"
          Value: "4"
          Emoji: "😊"
        - Label: "Excellent"
          Value: "5"
          Emoji: "😍"
    
    2:
      ID: "response_time"
      Label: "Response Time (1-5)"
      Description: "Rate how quickly we responded to your ticket"
      Required: true
      Options:
        - Label: "Very Slow"
          Value: "1"
          Emoji: "🐌"
        - Label: "Slow"
          Value: "2"
          Emoji: "⏳"
        - Label: "Average"
          Value: "3"
          Emoji: "⏰"
        - Label: "Fast"
          Value: "4"
          Emoji: "⚑"
        - Label: "Very Fast"
          Value: "5"
          Emoji: "πŸš€"
  
  # Optional feedback text input
  FeedbackInput:
    Enabled: true # Should the bot ask the user why for the review they gave?
    Label: "Additional Feedback"
    Placeholder: "Please share any additional thoughts or suggestions..."
    Style: "Paragraph" # Short, Paragraph
    Required: false
    MaxLength: 1000

Button Settings

  • Placeholder β†’ The button text in closure DMs

  • ButtonEmoji β†’ Emoji shown on the button

  • ButtonStyle β†’ Button color (Primary=blue, Secondary=gray, etc.)

Questions

  • You can add up to 4 questions (Discord’s modal limit).

  • Each question has:

    • ID β†’ Unique name (used in logs/database)

    • Label β†’ The question text

    • Description β†’ Helper text shown under the label

    • Options β†’ The ratings (with label, value, emoji)

Feedback Input

  • Optional text box where users can write suggestions or comments.

  • Choose Short (single line) or Paragraph (multi-line).

How it Works

  1. User closes a ticket β†’ receives a DM with the Leave a Review button.

  2. Clicking opens a modal with rating questions (and optional feedback).

  3. Ratings + comments are saved.

  4. Review data is added to ticket logs, so you can track quality and performance.


Common Issues

  • Tickets not created β†’ Check Enabled: true, valid CategoryID, and MaxTickets.

  • Support roles can’t see tickets β†’ Bot role must be above support roles in hierarchy.

  • Working hours not working β†’ Check timezone and 24h format.

Last updated