Setting up a panel
A panel is the message members click, plus every setting that applies to the tickets it opens. Create one, fill it in, save, and FlaviBot posts the message for you.
On the dashboard, open Tickets, then Ticketing, then Add. A panel needs a name (up to 50 characters, unique on your server). The name is not just a label: it is the title of the panel message members see, and it appears on the ticket itself.

Each panel keeps its own counts and its own average rating. The Analytics tab above breaks the same numbers down further.
Saving a panel is also what publishes it. Every save posts the panel message in the channel you picked, or edits the existing one in place. If that message was deleted in the meantime, a fresh one is posted. Until you pick a channel, nothing is posted anywhere, so a half-configured panel is invisible to your members.
Channel settings
Ticket Panel Channel is where the panel message goes. Members click the
Create a ticket button on it, or pick a panel in its dropdown. If the channel you picked no longer exists,
or is of a type the bot cannot post in, the bot creates a text channel named
open-a-ticket and posts there instead, so the panel is never lost. Pointing
the panel at a forum channel works too: the panel is posted as a new thread.
Logs Channel is optional. When set, the bot posts a line there each time a ticket opens and a card each time one closes, and it is where transcripts and low ratings can be sent. Log ticket openings (under Transcript Settings) turns off the line on opening, the close card stays.
Tickets Category is where new ticket channels open. Leave it empty and the
bot creates a private category named after the panel (Tickets · Support) on
the first ticket and keeps using it; you can rename or move it like any
category. Pick your own instead and the bot needs Manage Channels and
Manage Roles in it. Once a category is set it can be changed, not emptied.
A Discord category holds at most 50 channels. When it is full lists the
categories to fill next, in order, up to 10: your own, with your permissions.
When every one of them is full too, the bot makes another one named after the
first (Support 2, Support 3…) with the same permissions as it, opens new
tickets there and keeps it for the next ones; it never deletes those
categories. If Discord refuses to copy a permission the bot does not have
itself, the bot still makes the category, private, and support roles get their
access ticket by ticket as always.
A label can send its tickets to a category of its own: see Labels.
Support Roles is the important one. Up to 10 roles per panel. Holders of those roles can see every ticket the panel opens, claim them, escalate them, close them, and use the ticket commands.
Viewer Roles (up to 10) can read every ticket the panel opens and its history, and nothing else: they cannot write in it, react, claim, close or use the staff buttons. Useful for a manager or a trainee who should follow the tickets. A role in both lists is a support role.
Answer as the server has staff answer without being named to the member: see Answering as the server.
Leave Support Roles empty and staff becomes anyone with Manage Server, Manage Channels or Administrator, for closing, reopening, deleting and escalating. Claiming stops being restricted at all when no support role is set, so set them. Ticket channels are also created without any staff access when the list is empty, which is rarely what you want.
Open Ticket Role
Role while a ticket is open is optional. The bot gives it to the member who opens a ticket on this panel and takes it back when the ticket closes, is deleted, or loses its channel. Reopening the ticket gives it back.
It exists for large servers. Discord only lists a role's members in their own section of the member list while that role has few enough of them online; past that, everyone with a crowded role, or with no role at all, blends into Online. A role held only by the members who have a ticket open stays small, so its section shows your team who is waiting, at a glance.
Use a role created for this. A member who already had the role before opening the ticket keeps it when the ticket closes. A member with tickets open on two panels that give the same role keeps it until the last of them closes. The role must sit below the bot's highest role, and below your own, and it can never be a support role of any panel: everyone who opens a ticket would become staff.
The two messages
They are easy to mix up.
Panel Message is the public advert. By default it is a card titled with the panel name, with the text you write under Message (up to 1500 characters) and a single Create a ticket button.
The title is the panel's name, so name the panel something your members will understand. The card's accent is your server's embed colour.
To design it yourself, switch Message to Template and pick or write a message in the Embed builder: the bot posts that message and puts the button (or the dropdown) under it.
Dropdown of panels replaces the button with a dropdown. Add a row per panel members may open from here (up to 25), each with the name shown, an optional emoji and short description, and the panel it opens. A member picks one and the ticket opens on that panel, with that panel's own settings: its category, support roles, form and limits. This is how one message serves several kinds of tickets (support, a staff report, an appeal), each with its own staff. Dropdown placeholder is the hint shown before a pick.
Under the panel, a small Powered by FlaviBot line with the bot's logo. Premium servers can remove it with Hide the FlaviBot branding.
Ticket Message is what greets the member inside their new ticket. It has two parts, both up to 1500 characters:
- Message content, posted above the card. Write
{author}in it and it becomes a real mention that pings the member. That is the only placeholder this field understands. - Embed Description, the body of the card that carries the staff buttons.
Ticket channel names
Ticket Channel Name decides what the created channel is called. The
default is {status}-{username}. Available placeholders:
| Placeholder | Becomes |
|---|---|
{status} | The status emoji, always the one for a freshly opened ticket |
{username} | The member's name |
{userid} | The member's id |
{number} | The ticket number for this panel, padded to four digits |
{panel} | The panel name |
When a member may hold several tickets of the panel (Tickets per member
above 1), put {number} in the name: with the default format, their
tickets all share one name.
Spaces become dashes and everything is lowercased, because Discord requires it. The name is set once, when the ticket is created, and is never changed afterwards. That is deliberate: Discord only allows two renames per channel every ten minutes, and a ticket that gets claimed, escalated and closed in a row would blow through that. A claimed ticket therefore still shows the emoji of a fresh one, so read the state from the dashboard, not from the channel name.
What happens when the member clicks
Who opens the tickets comes first. With Members, the default, each member opens their own ticket. With Staff, for a member, only the panel's staff can use it (its support roles, or members with Manage Server, Manage Channels or Administrator when it has none): a click shows them a member picker, and the ticket opens for the member they pick, with everything below applied as if that member had clicked. Anyone else who clicks is told that only the team opens tickets there. Post such a panel in a staff channel.
Staff can also open a ticket for one member on any panel: right-click the member, Apps, Create Ticket (it needs Manage Server), or from the Tickets page of the dashboard.
Create Behavior offers three answers:
- Create directly: the channel is created immediately.
- Ephemeral confirmation: a private message asks them to confirm first. Useful to slow down accidental clicks.
- Ask for reason: a form opens and the member has to describe their issue, between 10 and 1000 characters. The reason is quoted in the welcome message and shown on the ticket's dashboard page, so staff know what it is about before reading anything.
The last two also expose Show label selection, which adds a dropdown so the member picks what their ticket is about. With Ask for reason the choice is required; with Ephemeral confirmation it is optional. A member can pick up to five, or exactly one with Allow several labels turned off: the way to go when each label is a kind of ticket (a staff report, an appeal).
Labels
Labels are the categories of your ticket system. Each one has a name (up to 50 characters), a colour and an optional emoji, and you can define up to 10 per panel.
They do three jobs:
- They let the member say what they need before staff read a word.
- They are shown in the welcome message of the ticket.
- They filter the ticket list on the dashboard, and they break down the analytics by label.
A label can also have a Category. A ticket opened with that label picked goes to that category instead of the panel's; when it is full, or gone, the panel's categories take over. With several labels picked, the first one with a category decides. Only the labels picked when the ticket opens count: adding a label later from the dashboard does not move the ticket.
Labels belong to a panel, so a "Billing" label on your support panel is a different object from a "Billing" label on your applications panel. Staff can add and remove them on an open ticket from the dashboard, and the ticket channel gets a short notice each time.
Business hours
Business Hours restricts opening, not answering. Turn it on and mark the open hours on the weekly grid, hour by hour. Click a day name to toggle the whole day, or use the presets (office hours, weekdays, 24/7).
Hours are read in your server timezone, which is set in the main server configuration, not here. Outside those hours the button still exists, but clicking it returns the Closed message you wrote (up to 1500 characters) and no ticket is created. Tickets already open are untouched.
Charging for a ticket
Opening cost takes coins from your server economy every time a member opens a ticket on this panel. Leave it empty or at 0 to keep it free. It only does anything when the Economy feature is enabled.
Three things are worth knowing before you use it:
- A member who already has as many tickets open on the panel as it allows is never charged for the attempt: the refusal happens before the payment.
- If the channel cannot be created, the coins are given back automatically.
- Refunding on close is a switch in the Economy settings, not here.
First-response target
First-response target is the time you would like a first reply to take, in minutes. It changes nothing at runtime: no reminder is sent and nothing is enforced. Its only job is to give the Statistics tab a bar to measure against, so you can see the share of tickets answered within it.
Once the panel is saved, read on: what happens when someone opens a ticket.
