Skip to content

Latest commit

 

History

History
647 lines (380 loc) · 17.4 KB

File metadata and controls

647 lines (380 loc) · 17.4 KB

Tickets

Support ticket system with multi-panel functionality

[p]add (Hybrid Command)

Add a user to your ticket

  • Usage: [p]add <user>
  • Slash Usage: /add <user>
  • Checks: guild_only

[p]renameticket (Hybrid Command)

Rename your ticket channel

  • Usage: [p]renameticket <new_name>
  • Slash Usage: /renameticket <new_name>
  • Checks: guild_only

[p]close (Hybrid Command)

Close your ticket

Examples
[p]close - closes ticket with no reason attached
[p]close thanks for helping! - closes with reason "thanks for helping!"
[p]close 1h - closes in 1 hour with no reason attached
[p]close 1m thanks for helping! - closes in 1 minute with reason "thanks for helping!"

  • Usage: [p]close [reason]
  • Slash Usage: /close [reason]
  • Checks: guild_only

[p]ticketstats

View ticket analytics and statistics.

  • Usage: [p]ticketstats
  • Restricted to: ADMIN
  • Aliases: tstats
  • Checks: guild_only

[p]ticketstats reset

Reset statistics data.

Targets:

  • staff <user> - Reset a specific staff member's stats
  • user <user> - Reset a specific user's ticket stats
  • server - Reset all server-wide stats
  • responsetime - Reset the response time data shown on ticket panels
  • all - Reset ALL statistics (staff, user, server, and response times)

Examples:

  • [p]ticketstats reset staff @User

  • [p]ticketstats reset server

  • [p]ticketstats reset responsetime

  • [p]ticketstats reset all

  • Usage: [p]ticketstats reset <target> [user=None]

[p]ticketstats user

View statistics for a user who has opened tickets.

Arguments:

  • <user> - The user to view stats for
  • [timespan] - Time period to filter stats (e.g., 7d, 24h, 30m)

Examples:

  • [p]ticketstats user @User

  • [p]ticketstats user @User 30d

  • Usage: [p]ticketstats user <user> [timespan=None]

[p]ticketstats busytimes

View when tickets are opened most frequently.

Shows hourly and daily distribution of ticket opens.

Arguments:

  • [timespan] - Time period to analyze (e.g., 7d, 30d)

  • Usage: [p]ticketstats busytimes [timespan=None]

  • Aliases: peak and busy

[p]ticketstats retention

Set how many days of detailed event data to retain.

Older events are pruned but cumulative counters (lifetime stats) are preserved.

Arguments:

  • [days] - Days to retain (0 = unlimited). Shows current if not specified.

Examples:

  • [p]ticketstats retention - View current setting

  • [p]ticketstats retention 90 - Keep 90 days of events

  • [p]ticketstats retention 0 - Keep all events forever

  • Usage: [p]ticketstats retention [days=None]

  • Aliases: dataretention

[p]ticketstats staff

View detailed statistics for a support staff member.

Arguments:

  • [member] - The staff member to view stats for (defaults to you)
  • [timespan] - Time period to filter stats (e.g., 7d, 24h, 30m, 2w, 1mo)

Examples:

  • [p]ticketstats staff - Your all-time stats

  • [p]ticketstats staff @User - User's all-time stats

  • [p]ticketstats staff @User 7d - User's stats for last 7 days

  • Usage: [p]ticketstats staff [member=None] [timespan=None]

[p]ticketstats staffboard

View staff leaderboard for a specific metric.

Metrics:

  • response - Fastest average response time
  • closed - Most tickets closed
  • claimed - Most tickets claimed
  • messages - Most messages sent
  • resolution - Fastest average resolution time

Arguments:

  • <metric> - The metric to rank by
  • [timespan] - Time period to filter (e.g., 7d, 24h, 2w)

Examples:

  • [p]ticketstats staffboard response

  • [p]ticketstats staffboard closed 7d

  • Usage: [p]ticketstats staffboard [metric=response] [timespan=None]

  • Aliases: leaderboard and lb

[p]ticketstats responsetime

View the average staff response time for tickets.

This shows the average time it takes for staff to send their first
response in a ticket, based on the last 100 tickets.

  • Usage: [p]ticketstats responsetime
  • Aliases: avgresponse

[p]ticketstats server

View server-wide ticket statistics.

Arguments:

  • [timespan] - Time period to filter stats (e.g., 7d, 24h, 30d)

Examples:

  • [p]ticketstats server

  • [p]ticketstats server 7d

  • Usage: [p]ticketstats server [timespan=None]

  • Aliases: global and overview

[p]ticketstats panel

View statistics for ticket panels.

Arguments:

  • [panel_name] - Specific panel to view (shows all if not specified)
  • [timespan] - Time period to filter (e.g., 7d, 30d)

Examples:

  • [p]ticketstats panel - All panels overview

  • [p]ticketstats panel support 7d - Support panel last 7 days

  • Usage: [p]ticketstats panel [panel_name=None] [timespan=None]

  • Aliases: panels

[p]ticketstats frequent

View users who open the most tickets.

Arguments:

  • [limit] - Number of users to show (default: 10, max: 25)
  • [timespan] - Time period to filter (e.g., 7d, 30d)

Examples:

  • [p]ticketstats frequent

  • [p]ticketstats frequent 20 30d

  • Usage: [p]ticketstats frequent [limit=10] [timespan=None]

  • Aliases: frequentusers and topusers

[p]tickets

Base support ticket settings

  • Usage: [p]tickets
  • Restricted to: ADMIN
  • Aliases: tset
  • Checks: guild_only

[p]tickets blockoutside

Toggle blocking ticket creation outside working hours

When enabled, users cannot create tickets outside of the configured working hours.
When disabled (default), users can still create tickets but will see a notice about delayed responses.

  • Usage: [p]tickets blockoutside <panel_name>

[p]tickets showresponsetime

(Toggle) Show average response time to users when they open a ticket

  • Usage: [p]tickets showresponsetime

[p]tickets suspend

Suspend the ticket system
If a suspension message is set, any user that tries to open a ticket will receive this message

  • Usage: [p]tickets suspend [message]

[p]tickets category

Set the category ID for a ticket panel

  • Usage: [p]tickets category <panel_name> <category>

[p]tickets row

Set the row of a panel's button (0 - 4)

  • Usage: [p]tickets row <panel_name> <row>

[p]tickets selfrename

(Toggle) If users can rename their own tickets

  • Usage: [p]tickets selfrename

[p]tickets analyticsblacklist

Toggle a panel's exclusion from analytics/telemetry tracking.

Panels on the analytics blacklist will not have any ticket events
(opens, closes, claims, messages, response times) recorded.

Arguments:

  • <panel_name> - The panel name to toggle

Examples:

  • [p]tickets analyticsblacklist apply - Exclude "apply" panel from analytics

  • [p]tickets analyticsblacklist apply - Run again to re-include it

  • Usage: [p]tickets analyticsblacklist <panel_name>

[p]tickets addpanel

Add a support ticket panel

  • Usage: [p]tickets addpanel <panel_name>

[p]tickets viewmessages

View/Delete a ticket message for a support ticket panel

  • Usage: [p]tickets viewmessages <panel_name>

[p]tickets priority

Set the priority order of a panel's button

  • Usage: [p]tickets priority <panel_name> <priority>

[p]tickets toggle

Toggle a panel on/off

Disabled panels will still show the button but it will be disabled

  • Usage: [p]tickets toggle <panel_name>

[p]tickets selfclose

(Toggle) If users can close their own tickets

  • Usage: [p]tickets selfclose

[p]tickets cleanup

Cleanup tickets that no longer exist

  • Usage: [p]tickets cleanup

[p]tickets transcript

(Toggle) Ticket transcripts

Closed tickets will have their transcripts uploaded to the log channel

  • Usage: [p]tickets transcript

[p]tickets buttoncolor

Set the button color for a support ticket panel

  • Usage: [p]tickets buttoncolor <panel_name> <button_color>

[p]tickets outsidehoursmsg

Set a custom message to display when a ticket is created outside working hours

Leave message empty to reset to default.
The default message will inform users that response times may be delayed.

Example
[p]tickets outsidehoursmsg support Our team is currently offline. We'll respond during business hours!

  • Usage: [p]tickets outsidehoursmsg <panel_name> [message]

[p]tickets buttonemoji

Set the button emoji for a support ticket panel

  • Usage: [p]tickets buttonemoji <panel_name> <emoji>

[p]tickets addmessage

Add a message embed to be sent when a ticket is opened

You can include any of these in the embed to be replaced by their value when the message is sent
{username} - Person's Discord username
{mention} - This will mention the user
{id} - This is the ID of the user that created the ticket

The bot will walk you through a few steps to set up the embed including:

  • Title (optional)

  • Description (required)

  • Footer (optional)

  • Custom color (optional) - hex color code like #FF0000

  • Image (optional) - URL to an image

  • Usage: [p]tickets addmessage <panel_name>

[p]tickets viewhours

View the configured working hours for a panel

  • Usage: [p]tickets viewhours <panel_name>

[p]tickets embed

Create an embed for ticket panel buttons to be added to

  • Usage: [p]tickets embed <color> <channel> <title> <description>

[p]tickets addmodal

Add a modal field a ticket panel

Ticket panels can have up to 5 fields per modal for the user to fill out before opening a ticket.
If modal fields are added and have required fields,
the user will have to fill them out before they can open a ticket.

There is no toggle for modals, if a panel has them it will use them, if they don't then it just opens the ticket
When the ticket is opened, it sends the modal field responses in an embed below the ticket message

Note
field_name is just the name of the field stored in config,
it won't be shown in the modal and should not have spaces in it

Specify an existing field name to delete a modal field (non-case-sensitive)

  • Usage: [p]tickets addmodal <panel_name> <field_name>

[p]tickets workinghours

Set working hours for a specific day on a panel

Times should be in 24-hour format (HH:MM), e.g., 09:00 or 17:30
Days: monday, tuesday, wednesday, thursday, friday, saturday, sunday

Examples
[p]tickets workinghours support monday 09:00 17:00
[p]tickets workinghours support friday 10:00 18:00

To remove working hours for a day, use [p]tickets workinghours <panel> <day> off

  • Usage: [p]tickets workinghours <panel_name> <day> <start_time> <end_time>

[p]tickets maxtickets

Set the max tickets a user can have open at one time of any kind

  • Usage: [p]tickets maxtickets <amount>

[p]tickets overviewmention

Toggle whether channels are mentioned in the active ticket overview

  • Usage: [p]tickets overviewmention

[p]tickets setuphelp

Ticket Setup Guide

  • Usage: [p]tickets setuphelp

[p]tickets openrole

Add/Remove roles required to open a ticket for a specific panel

Specify the same role to remove it

  • Usage: [p]tickets openrole <panel_name> <role>

[p]tickets buttontext

Set the button text for a support ticket panel

  • Usage: [p]tickets buttontext <panel_name> <button_text>

[p]tickets timezone

Set the timezone for a panel's working hours

Use IANA timezone names (e.g., America/New_York, Europe/London, Asia/Tokyo)
Default is UTC if not set.

Examples
[p]tickets timezone support America/New_York
[p]tickets timezone support Europe/London
[p]tickets timezone support UTC

  • Usage: [p]tickets timezone <panel_name> <timezone_str>

[p]tickets noresponse

Auto-close ticket if opener doesn't say anything after X hours of opening

Set to 0 to disable this

If using thread tickets, this translates to the thread's "Hide after inactivity" setting.
Your options are:

  • 1 hour

  • 24 hours (1 day)

  • 72 hours (3 days)

  • 168 hours (1 week)
    Tickets will default to the closest value you select.

  • Usage: [p]tickets noresponse <hours>

[p]tickets channel

Set the channel ID where a ticket panel is located

  • Usage: [p]tickets channel <panel_name> <channel>

[p]tickets ticketname

Set the default ticket channel name for a panel

You can include the following in the name
{num} - Ticket number
{user} - user's name
{displayname} - user's display name
{id} - user's ID
{shortdate} - mm-dd
{longdate} - mm-dd-yyyy
{time} - hh-mm AM/PM according to bot host system time

You can set this to {default} to use default "Ticket-Username

  • Usage: [p]tickets ticketname <panel_name> <ticket_name>

[p]tickets viewmodal

View/Delete a ticket message for a support ticket panel

  • Usage: [p]tickets viewmodal <panel_name>

[p]tickets dm

(Toggle) The bot sending DM's for ticket alerts

  • Usage: [p]tickets dm

[p]tickets logchannel

Set the logging channel for each panel's tickets

  • Usage: [p]tickets logchannel <panel_name> <channel>

[p]tickets panels

View/Delete currently configured support ticket panels

  • Usage: [p]tickets panels

[p]tickets supportrole

Add/Remove ticket support roles (one at a time)

Optional: include true for mention to have that role mentioned when a ticket is opened

To remove a role, simply run this command with it again to remove it

  • Usage: [p]tickets supportrole <role> [mention=False]

[p]tickets autoadd

(Toggle) Auto-add support and panel roles to thread tickets

Adding a user to a thread pings them, so this is off by default

  • Usage: [p]tickets autoadd

[p]tickets view

View support ticket settings

  • Usage: [p]tickets view

[p]tickets panelrole

Add/Remove roles for a specific panel

To remove a role, simply run this command with it again to remove it

Optional: include true for mention to have that role mentioned when a ticket is opened

These roles are a specialized subset of the main support roles.
Use this role type if you want to isolate specific groups to a certain panel.

  • Usage: [p]tickets panelrole <panel_name> <role> [mention=False]

[p]tickets overview

Set a channel for the live overview message

The overview message shows all active tickets across all configured panels for a server.

  • Usage: [p]tickets overview [channel]

[p]tickets usethreads

Toggle whether a certain panel uses threads or channels

  • Usage: [p]tickets usethreads <panel_name>

[p]tickets maxclaims

Set how many staff members can claim/join a ticket before the join button is disabled (If using threads)

  • Usage: [p]tickets maxclaims <panel_name> <amount>

[p]tickets selfmanage

(Toggle) If users can manage their own tickets

Users will be able to add/remove others to their support ticket

  • Usage: [p]tickets selfmanage

[p]tickets blacklist

Add/Remove users or roles from the blacklist

Users and roles in the blacklist will not be able to create a ticket

  • Usage: [p]tickets blacklist <user_or_role>

[p]tickets threadclose

(Toggle) Thread tickets being closed & archived instead of deleted

  • Usage: [p]tickets threadclose

[p]tickets altchannel

Set an alternate channel that tickets will be opened under for a panel

If the panel uses threads, this needs to be a normal text channel.
If the panel uses channels, this needs to be a category.

If the panel is a channel type and a channel is used, the bot will use the category associated with the channel.

To remove the alt channel, specify the existing one

  • Usage: [p]tickets altchannel <panel_name> <channel>

[p]tickets getlink

Get a direct download link for a ticket transcript

The HTML transcript can be downloaded and opened in any web browser.

  • Usage: [p]tickets getlink <message>

[p]tickets updatemessage

Update a message with another message (Target gets updated using the source)

  • Usage: [p]tickets updatemessage <source> <target>

[p]tickets panelmessage

Set the message ID of a ticket panel
Run this command in the same channel as the ticket panel message

  • Usage: [p]tickets panelmessage <panel_name> <message>

[p]tickets closemodal

Throw a modal when the close button is clicked to enter a reason

  • Usage: [p]tickets closemodal <panel_name>

[p]tickets interactivetranscript

(Toggle) Interactive transcripts

Transcripts will be an interactive html file to visualize the conversation from your browser.

  • Usage: [p]tickets interactivetranscript
  • Aliases: intertrans, itrans, and itranscript

[p]tickets modaltitle

Set a title for a ticket panel's modal

  • Usage: [p]tickets modaltitle <panel_name> [title]

[p]openfor (Hybrid Command)

Open a ticket for another user

  • Usage: [p]openfor <user> <panel_name>
  • Slash Usage: /openfor <user> <panel_name>
  • Restricted to: MOD