# Tickets

Replace `[prefix]` with your server's prefix.

{% hint style="success" %}
You can also run these commands as slash commands, as they sometimes work better this way.
{% endhint %}

## Setup the Ticket System

To setup a simple ticket system for your server, you'll just need to run `[prefix]ticket send #channel`. By using this, the bot will send the normal ticket embed with the open button. After that, the bot will only create a category-less ticket channel for the user.

```
// Syntax
[prefix]ticket send [#channel]

// Example
;ticket send #create-ticket
```

<figure><img src="/files/jlaD3HvWEHixMdA43ZRJ" alt=""><figcaption><p>Setup of the ticket panel</p></figcaption></figure>

### Setup a Support Role

If you want, that your staff gets pinged on an opened ticket and so that they can interact with the buttons, you'll need to run the command `[prefix]ticket support @role`&#x20;

```
// Syntax
[prefix]ticket settings support [role]

// Example
;ticket settings support @staff
```

<figure><img src="/files/D7DzfEifCrcE61IKntTZ" alt=""><figcaption><p>Set a support role (topic-less)</p></figcaption></figure>

### Create a Opened Embed

A opened embed is the embed that will be displayed, when a user opens a ticket. If you want to set a custom one, you can do this by running the command below. Also you can use the variables to display the support role mention, so that staff members get notified, when a user opens a ticket.

```
// Syntax
[prefix]ticket settings opened [code]

// Example
;ticket settings opened {content: {support_role.mention}}{embed}{title: hi!}
```

<figure><img src="/files/2tHOSKtfcs9D4doq4384" alt=""><figcaption><p>The opened embed command output</p></figcaption></figure>

<figure><img src="/files/a1wCP8CBKhSB0WK91aBK" alt=""><figcaption><p>The in-ticket embed you've set</p></figcaption></figure>

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Start with writing Embed Code</td><td></td><td></td><td><a href="/pages/y71W8TwxPtQLLFBBrGCJ">/pages/y71W8TwxPtQLLFBBrGCJ</a></td></tr><tr><td>Embed Variables</td><td></td><td></td><td><a href="/pages/ZqhWYlc4cJKe3TSnAuZM">/pages/ZqhWYlc4cJKe3TSnAuZM</a></td></tr></tbody></table>

### Create a Category

Currently, the tickets will be created outside of any category - to change this, we need to set a category first using `[prefix]ticket settings category [category]`

```
// Syntax
[prefix]ticket settings category [category]

// Example
;ticket settings category ticket-category
```

<figure><img src="/files/jsBDJpYVCJ8a4uXwXkK5" alt=""><figcaption><p>Set a category for the tickets to get created (topic-less)</p></figcaption></figure>

<figure><img src="/files/N4jeVILrh6fIpB1rkUTg" alt=""><figcaption><p>Tickets will now get created in the designated category</p></figcaption></figure>

{% hint style="info" %}
If you want to remove the support role or the category, just use `[prefix]ticket settings support/category` without a parameter (channel/role) behind it.
{% endhint %}

### Create a Closed Category

Ticket categorys can get messy really quickly with closed and opened tickets. So lets clean up things with a category, where closed tickets will get moved into by serenity.

```
// Syntax
[prefix]ticket settings closed [category]

// Example
;ticket settings closed closed-tickets
```

<figure><img src="/files/smT8S3ScG0G07TzuE3uO" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Tickets will only get moved into the closed category, if you use the "Close"-Button in-ticket or with the `[prefix]ticket close` command.
{% endhint %}

### Create a Transcript Channel

Serenity offers a way, to transcript closed tickets - Simply use `[prefix]ticket settings logs #channel` to set a channel where the transcript url embeds will get sent.

```
// Syntax
[prefix]ticket settings logs [channel]

// Example
;ticket settings logs #logging
```

<figure><img src="/files/mpeHw8nvrunCgRSp8G7I" alt=""><figcaption></figcaption></figure>

### Setup Auto-Transcripting

Normally transcripts will only get generated, if you use the "Transcript"-Button on the in-ticket embed. But if you want, that serenity generates a transcript, everytime you delete the ticket via `[prefix]ticket delete` or directly via the "Delete"-Button, you can toggle activate this using `[prefix]ticket autotranscript`

<figure><img src="/files/HNEzwzsO9yLH5J7d3hiq" alt=""><figcaption></figcaption></figure>

## Setup Ticket-Topics

Community discord server normally need multiple topics for ticket systems (e.g., Support, Giveaways,...) - and serenity got you covered. You can create different topics, with different support roles and categories. But first things first, lets create a ticket topic.

```
// Syntax
[prefix]ticket topics

// Example
;ticket topics
```

By executing this command, you'll get prompted with this embed.

<figure><img src="/files/2IYAgRk29c9zbTLkvrPd" alt=""><figcaption></figcaption></figure>

Click now on the "add topic"-Button to get your Topic Modal where you can created your first topic. Everything in there is pretty self-explanatory. The emoji input field is for the emoji, that will get displayed in the select menu when a user can choose which ticket topic he wants to open.

<figure><img src="/files/M0UTbFwUW2uYAoaCHQuE" alt=""><figcaption></figcaption></figure>

#### Emoji Markdown

If you don't know how to get the emoji markdown for the input field, you can use a backslash (\\) in your chat field, and then select the emoji from the discord emoji menu to get the emoji markdown, like in the first image below. Also you can get the emoji markdown by using the serenity command `[prefix]emoji info [emoji]`

<figure><img src="/files/ryEgynhcXfkcIUMZfrQB" alt=""><figcaption><p>If you want to use the backslash method</p></figcaption></figure>

<figure><img src="/files/5I1mcPZy7GOaajU8jdFx" alt=""><figcaption><p>Preview for the emoji info command</p></figcaption></figure>

If you've successfully created a topic, users' will get greeted with this prompted to pick, which topic they preferly need.

<figure><img src="/files/YOh6tI8RZMS1ZrLBhakt" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
You can only have **up to 25 topics** in your ticket system, as its a limit from the discord API itself.
{% endhint %}

### Edit a Topic

If you want to change the topic name, description or emoji afterwards, you can do this by running the desired command below.

```
// Syntax
[prefix]ticket topic name [topic] [new_name]
[prefix]ticket topic description [topic] [new_description]
[prefix]ticket topic emoji [topic] [new_emoji]

// Example
;ticket topic name Support Helping
;ticket topic description Support Click this if you need help!
;ticket topic emoji support Support 💀
```

<figure><img src="/files/tOoJ45HbhF3XnzoUDjKT" alt=""><figcaption></figcaption></figure>

### Create a Topic Support Role

You can setup different support roles for the different topics. Just simply run the following command

```
// Syntax
[prefix]ticket topic support [topic] [role]

// Example
;ticket topic emoji support Support @Support-Staff
```

### Create a Topic Category

There's no need for one messy category where all topic tickets are in. Run the command below, to setup a category for different topics, so if someones open a ticket for topic "Support", serenity would create the topic ticket, in the right category.

```
// Syntax
[prefix]ticket topic category [topic] [category]

// Example
;ticket topic emoji category Support Support-Tickets
```

### Create a Topic Opened Embed

Do you want to give users who have opened a ticket for a specific topic different information than for another topic? Execute the command below to create different in-embed tickets for different topics. See also our ticket variables below.

```
// Syntax
[prefix]ticket topic opened [topic] [code]

// Example
;ticket topic emoji category Support {embed}{description: welcome **{user.name}**!}
```

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Start with writing Embed Code</td><td></td><td></td><td><a href="/pages/y71W8TwxPtQLLFBBrGCJ">/pages/y71W8TwxPtQLLFBBrGCJ</a></td></tr><tr><td>Embed Variables</td><td></td><td></td><td><a href="/pages/ZqhWYlc4cJKe3TSnAuZM">/pages/ZqhWYlc4cJKe3TSnAuZM</a></td></tr></tbody></table>

## Manage Topics in Dropdown Menu

Sometimes you don't need this one topic for the moment. But there is a way to disable it from dropdown without the need to deleting it.

{% hint style="success" %}
If you have a topic with **multiple words**, you can **wrap quotation marks around the topic name** or use the slash command variant (e.g.: `ticket status disable "test topic"`).
{% endhint %}

```
// Syntax
[prefix]ticket status disable [topic]

// Example
;ticket status disable Giveaways
```

<figure><img src="/files/9xjSqEQoL0vksZp3qSjI" alt=""><figcaption></figcaption></figure>

### Enabling Ticket Topics

If you then need the topic again, you can re-enable it with the command below and everyone can pick the topic as normal.

```
// Syntax
[prefix]ticket status enable [topic]

// Example
;ticket status enable Giveaways
```

<figure><img src="/files/xJD2uCsbelr50PgRJ29X" alt=""><figcaption></figcaption></figure>

### List all Topics with their Status

You forgot if you deleted the topic or just disabled it a long time ago? No worries, you can check your topics, and their status by running the command `[prefix]ticket status list`&#x20;

<figure><img src="/files/rGpoan2kU0DlQU2GBSyd" alt=""><figcaption></figcaption></figure>

## Remove a Ticket-Topic

To remove a ticket topic, you'll just need to run the ticket topics command again, just as you did when you created a topic.

```
// Syntax
[prefix]ticket topics

// Example
;ticket topics
```

You'll get promoted again with the embed to choose, as you want to delete a topic, you click on "delete topic".

After that, pick the category you want to delete in the dropdown, and delete it.

<figure><img src="/files/Zgxdca6Ig4A3hJaQcjms" alt=""><figcaption></figcaption></figure>

## Blacklisting a User from Tickets

If you have a user which misbehaves, you can blacklist them from creating tickets. Optionally for all ticket topics, or just the provided topic.

<pre><code><strong>// Syntax
</strong>[prefix]ticket blacklist add [member] [topic|all] (reason)

// Example
;ticket blacklist add eivoran Support Ticket-Spam
</code></pre>

### Unblacklisting a User

Simple as adding a blacklist is the removal of one. Simple run the command below and the user can use tickets as normal.

<pre><code><strong>// Syntax
</strong>[prefix]ticket blacklist remove [member] [topic|all] (reason)

// Example
;ticket blacklist remove eivoran Support Ticket-Spam
</code></pre>

### Check blacklists for your ticket system

If you don't know who is blacklisted or you just want to know who was blacklisted for whatever reason, run the command below and get a list of all ticket blacklists in the server.

<pre><code><strong>// Syntax
</strong>[prefix]ticket blacklist list
</code></pre>

## Enabling Ticket Reviews

We've added a way to track the performance of a moderator. Users can now if the system is setup, review a moderator with a 1-5 star rating and a short review what they like about the support and what not.\
\
But first you need to setup a channel, where the sent reviews gets logged:

<pre><code><strong>// Syntax
</strong>[prefix]ticket rating set [channel]

// Example
;ticket rating set #⭐-ticket-reviews
</code></pre>

{% hint style="warning" %}
In order for the review embed to be sent to the user via DM, the moderator **must have claimed the ticket** (`[prefix]ticket claim`), otherwise no review request will be sent to the user.
{% endhint %}

Now if a users reviews a moderator, the review will get in sent in the provided logs channel.

<figure><img src="/files/6UAOSydjhbKp0WRRvZFT" alt=""><figcaption><p>Image of the Embed which gets sent in the logs channel</p></figcaption></figure>

<figure><img src="/files/SRXFoFFSaMeGs2AoRO0v" alt=""><figcaption><p>DM Message for the user if his ticket got closed</p></figcaption></figure>

{% hint style="success" %}
Moderators **can't farm** reviews by opening and closing tickets by themselfs.
{% endhint %}

### Checking your Review Quota

If you want to know how many reviews you got and what the average star rating for you or another moderator is, you can use the command below.

<pre><code><strong>// Syntax
</strong>[prefix]ticket rating info (moderator)

// Example
;ticket rating info eivoran
</code></pre>

<figure><img src="/files/Emu6GlqqEVpgFoPkVM7Z" alt=""><figcaption></figcaption></figure>

## Reset the Ticket System

If you want to fully reset the ticket system, just run the command below.

{% hint style="danger" %}
Be aware, if you reset your ticket system, all the saved data will be irreversible removed!
{% endhint %}

```
// Syntax
[prefix]ticket reset

// Example
;ticket reset
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.serenity.wtf/server-setup/tickets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
