---
url: https://docs.sunlicense.com/guide/support-tickets.md
---
# Support tickets

**Tools › Support tickets** is one inbox for your buyers' questions, from your [customer portal](/guide/customer-portal) and from [Discord](/guide/discord). It replaces a ticket bot, and each ticket already knows who the buyer is: their license, its status and their other tickets sit beside the conversation.

::: tip Experimental
Support tickets are experimental and off until you turn them on: open **Tools › Support tickets** and press **Turn on** (needs `tickets.write`). Turn them off again in ⋯ › **Ticket settings**; your tickets stay in the dashboard. They work together with [Docs](/guide/help-center), which is a separate tool you turn on by itself.
:::

**Anyone can open a ticket** by default, including people who haven't bought yet: a customer signed in to your portal, or anyone in your Discord server. Tickets from people SunLicense can't match to a purchase say **not verified**, and the person can verify their purchase from the ticket. To take tickets from buyers only, set ⋯ › **Ticket settings** › **Who can open tickets** to **Buyers only** (see [Who can open a ticket in Discord](#who-can-open-a-ticket-in-discord)). Each customer can have 5 open tickets at a time; someone we don't know as a buyer can have 2.

## Where customers open tickets

* **Customer portal**: **Support** in the portal's menu, and **Get help** in each license's ⋯ menu. Needs the [customer portal](/guide/customer-portal) (Lite and Standard).
* **Discord**: deploy the [ticket panel](#the-ticket-panel) from the dashboard (or run `/sunlicense tickets staff_role:@Support` in the channel for it). People press **Open a ticket** (or a category's button), or type `/ticket`. Each ticket gets its **own private channel** (`#ticket-0012`), like a ticket bot's, seen by the person, the team role and the bot. See [Discord tickets](#discord-tickets).
* **Your team**: **New ticket** on Tools › Support tickets, or on a customer's **Tickets** tab. The customer gets your first message by email.

Switch either place off under Tools › Support tickets › ⋯ › **Ticket settings**.

## The ticket panel

Open Tools › Support tickets › ⋯ › **Categories & Discord panel**:

1. **Categories** (optional): add an emoji, a name and one line for each, such as 🐞 *Bug report* or 💳 *Billing*. Each is a button on the panel and gets its own private Discord category; pick a **team role** for a category if a different team answers it. With no categories, the panel has one **Open a ticket** button.
2. **The panel**: its title, text, button label and colour, and whether it carries the **generated banner** (your logo, the title and the categories). Leave a field empty for ours. **Save panel**, and the banner preview updates.
3. **Deploy to Discord**: pick the server, a channel (or **A new #support channel**), the **Ticket category** every ticket channel opens in (one of your server's categories, or **A new private Tickets category**) and the **team role** that sees every ticket, then **Deploy panel**. Ticket channels never open outside a category: if you delete it in Discord, the next ticket makes a new private one. The channel becomes read-only: everyone sees the panel and presses its buttons, nobody chats under it. Deploying again updates the same message, so change the text or categories any time and deploy again.

Deploying needs the **Manage organization** permission, and the bot needs **Manage Channels**, **Manage Roles** and **Manage Webhooks** in your server (bots invited before 12 November 2026: add **Manage Webhooks** to its role).

## Discord tickets

A Discord ticket is the same ticket as on the website, not a copy:

* What the buyer or your team writes in the ticket's channel shows up in the dashboard, and what you write in the dashboard (or the buyer writes in the portal) is posted in the channel. Answer from wherever you are.
* Replies from the website appear in the channel as messages under the writer's name: your team member's name with your server's icon, the AI's as "*your name* AI". (Without **Manage Webhooks** they show as the bot's cards.)
* **Files go both ways**: screenshots and logs posted in the channel are saved on the ticket (pictures and text files up to 4 MB), and files added on the website are posted in the channel.
* Your team in Discord is whoever holds the role you named, or a member who [linked their SunLicense account](/guide/discord) and may answer tickets.
* **Close ticket** in the channel (the buyer or the team) closes it everywhere. The channel locks: the buyer can read it and rate the help, but not write. The team's **Reopen** unlocks it, and **Delete channel** removes it (the ticket stays in the dashboard).
* A ticket opened on the website by a buyer who has claimed that license in your server gets a channel too, starting with the conversation so far, so they can carry on in Discord.

### Who can open a ticket in Discord

With **Who can open tickets** on **Everyone** (the default), anyone gets the ticket form. People we can't match to a purchase get a **not verified** ticket with a **Verify my purchase** button, which runs the steps below; once they verify, the ticket shows their license.

With **Buyers only**, or to verify: most buyers come from a store, join your server and want help right away, without their key at hand. When someone clicks **Open a ticket**:

1. **They're known already** if they [claimed a license](/guide/discord), if their Discord is on their customer page, or if they linked Discord on their **BuiltByBit** profile. The ticket form opens straight away.
2. **Otherwise they press Find my purchase** and type one of: their purchase email, their BuiltByBit name or profile link, or their license key. SunLicense sends a one-time code where only the real buyer can read it: their purchase email, or a private conversation from your BuiltByBit account (this needs your BuiltByBit integration's API token). They type the code in Discord, and their Discord account is linked to the customer, so they're never asked again.
3. **BuiltByBit buyers without an email** can then add one, confirmed with a code the same way, so they get license emails and can sign in to your portal.

The answer never says whether an email or name belongs to a customer, and codes work once, for 15 minutes, for that Discord account only.

### The license in the ticket

The ticket's first message has a **My license** button for the buyer. It shows them, and only them, their license: the key (masked), its status and how many machines use it, with **Show my key** and **Free a machine slot** (when your server allows [self-service resets](/guide/discord), once a day). The license isn't shown on the ticket's first message itself. On the ticket page in the dashboard you see the same machines and can free one with **Free**.

The bot needs **Manage Channels** (re-invite it from Integrations › Discord, or add the permission to its role). Ticket channels open in the panel's category, or in a new private **Tickets** category when the panel's channel has none.

## Answering

Open a ticket to see the conversation, as chat: the customer on the left, your team and the AI on the right, with their pictures (Discord members' own avatars). Beside it:

* **Assigned to**, **Priority** and **Category**.
* The **customer**, with links to their page and to the ticket's license (the key is masked; reveal it there).
* Their **other tickets**.

In the composer:

* **Reply** sends to the customer: by email for portal tickets (the [customer email](/guide/customer-emails) "Support ticket replies"), and in the ticket's Discord channel when it has one. The ticket then waits on the customer.
* **Note** is for your team only; customers never see notes.
* **Saved replies** inserts text you write often. Manage them under ⋯ › **Saved replies**.
* **Suggest** asks the AI for a reply from your [Docs](/guide/help-center) (when Docs is on). See [AI answers](/guide/ai-answers).
* Attach screenshots or logs, up to 900 KB each.

## Statuses

| Status | Meaning |
|---|---|
| Open | Your team's turn: the customer wrote last |
| Waiting on customer | You replied. After the auto-close days (7 by default, set in Ticket settings) it closes by itself |
| Closed | Done. A reply from either side opens it again |

When a ticket closes, the customer can rate the help from 1 to 5. The inbox shows the median first reply time and the average rating for the last 30 days.

## Categories

Add categories such as *Bug* or *Billing* under ⋯ › **Categories & Discord panel**. Customers pick one when they open a ticket (in Discord, by pressing its button on the panel), its Discord tickets open in its own Discord category, and you can change a ticket's category in its details. Renaming a category renames it on its tickets.

## Automations and notifications

* [Automations](/guide/automations) can start on **Ticket opened** or **Ticket closed**, and can **Reply on the ticket** or **Close the ticket**.
* Discord's staff notifications include **New support tickets** (switch it in `/sunlicense notifications`).

## Who can do what

| Permission | Allows |
|---|---|
| `tickets.read` | The inbox, tickets and AI answers (Owner, Admin, Support, Developer, Viewer) |
| `tickets.write` | Replying, notes, assigning, closing and Ticket settings (Owner, Admin, Support) |
