TI

Discord bots · Discord bot

TicketBot

Private support tickets for your server, with a button panel, admin roles, and transcripts.

LiveDiscord

Members press one button, pick a category, and get a private channel that only they and your admin roles can see. Admins can pull people in, close the ticket as resolved or unresolved, and a transcript lands in a log channel before the channel disappears. Everything is configured per server, so the bot can live in many communities at once.

Setup

  1. Invite the bot. It needs to manage channels and roles so it can create ticket channels and the blacklist role.
  2. As an administrator, run /ticketbot setup, giving it the admin role that should handle tickets and the channel where the “Create a Ticket” panel should appear.
  3. Optionally, add more admin roles with /ticketbot addadminrole, choose who gets pinged with /ticketbot setnotifyroles, and shape the category list with /ticketbot addcategory. The defaults are Suggestion, Complaint, Report a User, and General Question.

That’s it. The panel survives restarts, and /ticketbot help lists everything.

Good to know

Tickets live under a category named “Tickets”, and the log channel is called ticket-logs. Everyday members never type a command: the panel button and the category menu are the whole interface for them.

Commands

Anyone can use the first group. The second is for the people who run the server.

For everyone

  • /ticket create

    Get a link to the ticket panel.

    e.g./ticket create

  • /ticketbot help

    List every command.

    e.g./ticketbot help

For admins

  • /ticket closeadmin

    Close the current ticket as resolved or unresolved. The transcript goes to the log channel and the channel is removed.

    e.g./ticket close

  • /ticket adduseradmin

    Give one or more people access to the current ticket.

    e.g./ticket adduser users:@alex @sam

  • /ticket removeuseradmin

    Take people out of the current ticket.

    e.g./ticket removeuser users:@alex

  • /ticket blacklistadmin

    Stop one or more users from opening tickets.

    e.g./ticket blacklist users:@spammer

  • /ticket unblacklistadmin

    Let blacklisted users open tickets again.

    e.g./ticket unblacklist users:@spammer

  • /ticketbot setupadmin

    Create the Tickets category, the log channel, the blacklist role, and post the panel in a channel of your choice. Safe to run again; it refreshes the panel.

    e.g./ticketbot setup admin_role:@Support ticket_channel:#get-help

  • /ticketbot addcategoryadmin

    Add a ticket category with an optional emoji. Up to 25.

    e.g./ticketbot addcategory name:Billing emoji:💳

  • /ticketbot removecategoryadmin

    Remove a category. The last one cannot be removed.

    e.g./ticketbot removecategory name:Complaint

  • /ticketbot listcategoriesadmin

    Show the server's categories.

    e.g./ticketbot listcategories

  • /ticketbot addadminroleadmin

    Add roles that can handle tickets. Owner or Administrators.

    e.g./ticketbot addadminrole roles:@Support @Mods

  • /ticketbot removeadminroleadmin

    Remove ticket admin roles. Owner or Administrators.

    e.g./ticketbot removeadminrole roles:@Mods

  • /ticketbot setnotifyrolesadmin

    Choose which admin roles get pinged when a ticket opens. Owner or Administrators.

    e.g./ticketbot setnotifyroles roles:@Support

  • /ticketbot listadminrolesadmin

    Show the ticket admin roles.

  • /ticketbot listnotifyrolesadmin

    Show which roles get pinged.

What it needs

Requiredwithout these the bot cannot do its job

  • View ChannelsSees the panel channel and the ticket channels it creates.
  • Send MessagesPosts the panel, ticket welcomes, and closing notes.
  • Embed LinksThe panel and ticket messages are embeds.
  • Read Message HistoryReads the ticket back for the transcript and finds the panel after a restart.
  • Attach FilesPosts the transcript as a file in the log channel.
  • Manage ChannelsCreates the Tickets category, the log channel, and one channel per ticket, and deletes closed tickets.
  • Manage RolesCreates the blacklist role and sets who can see each ticket.

Optionaleach one switches on an extra part

  • Mention EveryonePings notify roles that are not mentionable. Without it, mentionable roles still get pinged.

Reads: Message Content intent, builds the transcript from the ticket's messages when it closes. These are Discord's privileged intents, already switched on for this bot.