Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ export default defineConfig({
items: [
{ text: 'Home', link: '/' },
{ text: 'Information', link: '/information' },
{ text: 'FAQ', link: '/faq' }
{ text: 'FAQ', link: '/faq' },
{ text: 'Bot Profile', link: '/dashboard/bot-profile' },
{ text: 'Custom Bot', link: '/dashboard/custom-bot' },
{ text: 'My Account', link: '/dashboard/my-account' }
]
},
{
Expand All @@ -49,6 +52,16 @@ export default defineConfig({
{ text: 'Pin Leaderboard', link: '/dashboard/pin-leaderboard' },
{ text: 'Pin Statistics', link: '/dashboard/pin-statistics' },
{ text: 'Giveaways', link: '/dashboard/giveaways' },
{
text: 'Tickets',
collapsed: false,
items: [
{ text: 'Overview', link: '/dashboard/tickets/index' },
{ text: 'Panel', link: '/dashboard/tickets/panels' },
{ text: 'Templates', link: '/dashboard/tickets/templates' },
{ text: 'History', link: '/dashboard/tickets/history' },
]
},
{
text: 'Join/Leave Messages',
collapsed: false,
Expand All @@ -59,9 +72,6 @@ export default defineConfig({
{ text: 'Welcome Banner', link: '/dashboard/welcome-banner' }
]
},
{ text: 'Bot Profile', link: '/dashboard/bot-profile' },
{ text: 'Custom Bot', link: '/dashboard/custom-bot' },
{ text: 'My Account', link: '/dashboard/my-account' }
]
},
{
Expand All @@ -72,7 +82,8 @@ export default defineConfig({
{ text: 'Management', link: '/commands/management' },
{ text: 'Giveaway', link: '/commands/giveaway' },
{ text: 'Verification', link: '/commands/verification' },
{ text: 'Premium', link: '/commands/premium' }
{ text: 'Premium', link: '/commands/premium' },
{ text: 'Tickets', link: '/commands/tickets' }
]
},
{
Expand Down
Binary file added docs/assets/tickets/automation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/claiming.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/escalation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/forms.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/history.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/logging.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/message.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/panel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/template-binding.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/template-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/tickets/transcripts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions docs/commands/tickets.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Tickets Commands

The explanation for all ticket commands available for Invite Tracker.

::: info
Ticket commands only work in ticket channels created by the new tickets plugin.
:::

| Command | Description |
| --- | --- |
| `/ticket-close` | Closes the current ticket channel. |
| `/ticket-rename <name>` | Renames the current ticket channel. |
| `/ticket-add-user <user>` | Adds a user to the current ticket channel. |
| `/ticket-remove-user <user>` | Removes a user's explicit ticket permissions from the current ticket channel. |
| `/ticket-add-role <role>` | Adds a role to the current ticket channel. |
| `/ticket-remove-role <role>` | Removes a role's explicit ticket permissions from the current ticket channel. |
| `/ticket-claim` | Claims the current ticket channel. |
| `/ticket-unclaim` | Unclaims the current ticket channel. |
| `/ticket-escalate <target> [reason]` | Escalates the current ticket to an allowed target panel. The target can be the target panel name or ID. |
| `/ticket-automation <start\|stop>` | Starts or stops automations for the current ticket channel. |

::: info
The **Two Step Close** template setting only applies to the close button. `/ticket-close` closes the ticket immediately.
:::

::: warning
Support members can manage tickets when they have one of the template's support roles. Administrators can always manage tickets.
:::

::: warning
Claim, unclaim, escalation, and automation commands require those features to be enabled in the ticket's template.
:::
45 changes: 45 additions & 0 deletions docs/dashboard/tickets/history.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Ticket History

The **History** page shows tickets opened in your server. Use it to find open tickets, review closed tickets, and open saved transcripts.

![Ticket history](/assets/tickets/history.png)

## Searching Tickets

You can search by ticket number, channel, member, reason, or Discord ID.

You can also filter by:

- Status
- Template
- Panel
- Transcript availability
- Opened date
- Closed date
- Transcript saved date
- Opener ID
- Closer ID

Dates can be entered as `YYYY-MM-DD` or `DD/MM/YYYY`.

## History Table

The history table shows:

- Ticket ID and channel
- Opener
- Closer
- Template and panel
- Opened and closed dates
- Duration
- Transcript links when a transcript exists

## Transcripts

If a ticket has a saved transcript, the History page shows a transcript link. Opening a transcript requires Discord login, and access depends on the template's transcript access settings.

See [Ticket Templates](/dashboard/tickets/templates#transcripts) for transcript setup.

::: warning
Deleting a ticket channel manually marks the ticket as closed, but it does not run the normal close flow. Use the close button or `/ticket-close` when you want close roles, close DMs, close logs, and transcripts to run.
:::
47 changes: 47 additions & 0 deletions docs/dashboard/tickets/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Tickets

The tickets plugin lets you create support panels that members can use to open private ticket channels. Tickets are configured from the dashboard with **Templates**, **Panels**, and **History**.

## Before You Start

Invite Tracker needs permission to create, edit, and delete ticket channels. If you enable role changes, pinned messages, embedded messages, or transcripts, make sure the bot also has permission to manage those roles, pin messages, embed links, and read message history.

::: warning
If Invite Tracker cannot create or delete channels, update channel permissions, or send messages in the configured channels, tickets may fail to open, close, claim, escalate, or save transcripts.

Please ensure that the bot has the correct [permissions](/faq#what-are-the-required-permissions-for-invite-tracker).
:::

## How Tickets Work

A ticket setup has two main parts:

1. **Templates** define what happens when a ticket opens. This includes the ticket category, channel name, support roles, messages, forms, transcripts, claiming, escalation, logs, and automations.
2. **Panels** are the messages members click in Discord. A panel can show ticket buttons or one select menu, and each panel option is connected to a template.

After members start opening tickets, the **History** page gives you a searchable list of open and closed tickets.

![Tickets overview](/assets/tickets/panel.png)

## Setup Order

To set up tickets, use the dashboard pages in this order:

1. Create at least one [ticket template](/dashboard/tickets/templates).
2. Create a [ticket panel](/dashboard/tickets/panels) and bind templates to it.
3. Save the panel, then click **Send Panel** to post it in Discord.
4. Use [Ticket History](/dashboard/tickets/history) to review open and closed tickets.

## What Members See

Members open a ticket by clicking a panel button or choosing an option from a panel select menu. If the selected template has a form, Invite Tracker opens a Discord modal first. After the form is submitted, Invite Tracker creates a private ticket channel for the member and support roles.

## Ticket Commands

Ticket commands work inside open ticket channels. They are mostly used by support members with the template's support roles, while administrators can always manage tickets. Ticket owners can also close their own ticket when **Opener Can Close** is enabled.

For the full command list, see [Tickets Commands](/commands/tickets).

::: warning
Deleting a ticket channel manually marks the ticket as closed, but it does not run the normal close flow. Use the close button or `/ticket-close` when you want close roles, close DMs, close logs, and transcripts to run.
:::
65 changes: 65 additions & 0 deletions docs/dashboard/tickets/panels.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Ticket Panels

Ticket panels are the Discord messages members use to open tickets. Create panels from your server's dashboard by opening **Tickets** -> **Panels**.

Before creating a panel, create at least one [ticket template](/dashboard/tickets/templates).

![Ticket panel](/assets/tickets/panel.png)

## Creating a Panel

Click **Create Panel** to create a new panel. A panel must be saved before it can be sent to Discord.

## Panel Management

The **Panel Management** section controls where the panel message is sent and how members choose a ticket type.

- **Panel Name** is the internal dashboard name.
- **Panel Channel** is where **Send Panel** posts the panel message.
- **Component Type** can be **Buttons** or **Select**.
- **Ticket Count** is the current counter used by ticket naming.
- **Select Placeholder** is the placeholder text shown when using a select menu.

Click **Save** before sending a panel. After the panel is saved, click **Send Panel** to post it in Discord. If you change the panel later, click **Edit Sent Panel** to update the existing Discord message.

## Panel Limits

Panel limits control how many open tickets can exist from the panel.

- **Open Limit Per User** limits how many open tickets one member can have from this panel.
- **Open Limit All Users** limits how many open tickets the whole server can have from this panel.
- **Limit Bypass Roles** allows selected roles to ignore panel and template ticket limits.

Set a panel limit to `0` to disable that limit.

## Template Bindings

Template bindings decide which ticket options appear on the panel.

Each binding connects one template to one panel option. The binding label is what members see on the button or select menu option. You can also configure a description, emoji, and button style.

![Ticket panel bindings](/assets/tickets/template-binding.png)

::: warning
A panel must have at least one template binding, and each template can only be bound once per panel.
:::

## Panel Message

The **Panel Message** section controls the message Invite Tracker sends for the panel. You can use plain text or an embed.

Supported panel variables include `{panel.name}`, `{schedule.timezone}`, `{bot.avatar}`, and `{specialchars}`.

## Schedule

Panel schedules let you control when regular members can open tickets from a panel.

When scheduling is enabled, choose a timezone and add opening-hour entries. Each entry has a day, start time, and end time. If the start time is later than the end time, the schedule continues past midnight into the next day.

Use **Schedule Bypass Roles** for staff or trusted roles that should still be able to open tickets outside the schedule.

::: info
If scheduling is enabled and no schedule entries are configured, the panel is treated as closed.

If a schedule entry has the same start and end time, that day is treated as open for the full day.
:::
Loading