Ticketing

Private support channels or threads that members open from a panel you designed, optionally after filling in a form, with claiming, staff tools, transcripts and ratings, and its numbers on System Analytics.

On this page

A panel is a message with buttons or a dropdown. A member picks a ticket type, optionally answers a few questions, and Arclo opens a private channel (or a private thread) with them and your support team in it.

Ticketing

Private support tickets with panels, claiming, transcripts and staff tools.

Enabled
PanelsHistoryCommands

Your ticket panels

1 / 2
Quick SetupNew panel

Support

Active4 open
support-tickets·Buttons·3 ticket types·Embed·Updated 10/20/2026
🙋General help🚨Report a member🤝Partnership
LoggingOne logger for the whole system. Every panel above posts through it.

Off. Nothing is logged.

Building a panel

  1. Switch Ticketing on

    Essentials → Ticketing. The page has three tabs: Panels, History and Commands. Panels also holds the system's logger.

  2. Use Quick Setup, or build it by hand

    Quick Setup is four short steps: Ticket style (channels or private threads), Team (your support roles, the panel's name, where tickets land and whether to keep transcripts), Panel message (the message and its buttons) and Publish (the channel to post it in). It can create a Tickets category, the #support-tickets channel and a private #ticket-transcripts for you, then publishes the panel. If any part fails, everything it made is taken back. The steps below are the full builder, which also opens any panel Quick Setup made.

  3. Create a panel

    A server can run up to two panels. Most need one; a second makes sense when another part of the server needs different staff, different categories or different opening hours.

  4. Set the channel and the team

    On Setup: the channel the panel message lives in, whether tickets are channels or threads, the Support team roles (full access to every ticket from this panel) and the Blacklisted roles that may not open tickets at all.

  5. Add ticket types

    One per button or dropdown option, up to ten per panel. General help, Report a member, Partnership. Each can override the panel's categories, naming pattern and Tickets per member, and ask its own form. A type's support roles either join the panel's support team (Extra roles) or replace it (Separate roles), so a Billing type can go to billing staff only. A button can also ask the member to pick a category after pressing it.

  6. Design the panel message

    The message editor, with an interactive simulation of what happens when somebody clicks.

  7. Publish

    Publish creates the panel and posts it. Arclo creates a read-only #support-tickets channel if you did not pick one. Save draft keeps your work without posting anything. On a live panel there is only Publish: it saves your edits and updates the live panel in place, moving it if you picked another channel.

#support-tickets
ArcloBOTToday at 12:00 PM

Support Tickets

Need help from our team? Open a ticket and our support staff will get back to you as soon as possible. Your ticket is private: only you and the support team can see it.
🙋General help🚨Report a member🤝Partnership
A panel with three ticket types, each routed to different staff.

The panel builder

A panel opens on ten tabs.

TabWhat lives there
SetupThe panel channel, channels or threads, the support team and blacklisted roles, the panel message and its ticket types, the introduction message, naming and the ticket counter
Messages & ButtonsEvery message and button reply a ticket sends, from the close confirmation to a refused press
ClaimingWhether staff can claim, and what a claim changes: the name, the category, permissions and roles
Behavior & LimitsClosing rules, auto-close, DMs and ratings, the limits and the cooldown, required roles, opener roles and the private staff thread
AvailabilitySupport hours, their four states and the notices
EscalationMoving a ticket to another panel, and what moves with it
FormsThe questions asked before a ticket opens, and how the answers look in the ticket
PermissionsWhat the support team, the opener and @everyone may do in an open and a closed ticket, plus additional roles
TranscriptsWhen transcripts are made, where they go, and who may read them
AutomationsRules that run on a ticket's events

Channels or threads

Setup → How tickets are created decides what a ticket physically is. A channel per ticket is the classic setup: real permission overwrites, categories, and the Move Category staff action. A private thread per ticket puts every ticket inside one channel instead. Threads do not count against the 500-channel server limit, and the whole queue stays in one place.

  • A thread has no permission overwrites. Who can read a ticket is who is in it. Arclo adds the opener and, with Mention the support roles in every new thread (on by default), mentions your support roles, which is what pulls staff in.
  • Members need View Channel and Send Messages in Threads in the channel the threads open in; the channel itself can stay read-only. Arclo needs View Channel, Create Private Threads, Send Messages in Threads and Manage Threads there.
  • A quiet thread archives itself after a week by default (Auto-archive after). Closing archives the thread (on by default) and can lock it as well (off by default). The closed-state Ticket Owner view permission is what decides whether the opener keeps their seat.
  • Categories, the private staff thread and Move Category do not apply. A thread already lives in its parent channel.

Channel tickets without Administrator

Give Arclo View Channel, Manage Channels, Manage Permissions, Send Messages, Embed Links and Read Message History on the ticket category, and on the claimed and closed categories if you use them. Arclo then creates each ticket inside the category and applies its permissions a moment later, so keep the category staff-only. Add Pin Messages there to have the introduction pinned, and Mention Everyone if your support roles cannot otherwise be pinged. Without a category, or once a category holds Discord's limit of 50 channels, channel tickets need Administrator.

What happens when a ticket opens

  1. Arclo checks, in order: that the panel is on, that the member is not blacklisted and holds any required roles (Administrators skip both), that support hours allow a new ticket, and that the per-member limit, the panel's total and the creation cooldown all allow another. Limit bypass roles skip the last three.
  2. If the type has a form, the member answers up to five questions in a pop-up, and every check runs again when they submit.
  3. A channel (or a private thread, whichever the panel opens) is created and named from your pattern; {ticket_number} is padded to the Counter digits you set (4 by default). A channel also gets the description set under Setup → Channel naming, which can mention the opener with {user}, or none at all.
  4. Permissions are applied: the opener, your support team, and the Additional roles from the Permissions tab. A thread gets members instead of overwrites.
  5. The introduction message is posted and pinned (Auto-pin the Main Ticket Message, on by default), the form answers are posted in the Form Answers Message (designed on the Forms tab, in either design: under Each answer, style the question and the answer lines with any Discord formatting, and choose a field per answer or all of them in the text, where {form_answers} is written), a support-hours notice is added when one applies, and an optional private staff thread is opened. Ticket owner roles can add or remove the opener's roles on open and on close.
  6. The member gets a private confirmation with a link to their ticket, and a DM too if DM the member when their ticket is created is on (it is off by default).

Staff tools

The introduction message carries Close Ticket, Claim and Staff Options. Staff Options opens a private menu for the support team: Rename, Transcript, Remind Owner, Add Member, Remove Member, Escalate (when escalation is on) and Move Category (channel tickets only). Most of them are /ticket commands too.

Claim
One staff member takes the ticket. On the Claiming tab a claim can also rename the ticket, move it to a claimed category and leave the rest of the team read-only, all off by default, and claim and unclaim can each add and remove roles on the claimer.
Add / remove members
Pull somebody else in, or take somebody out. In a channel ticket a removed member is denied explicitly, so a role grant cannot let them back in. /ticket add and /ticket remove take roles as well. The opener cannot be removed.
Rename
Free text from the menu. /ticket rename with no name resets it to the pattern.
Move category
Without closing anything. Channel tickets only. A thread lives in its parent channel.
Escalate
Move the ticket to another panel: a different team, different permissions and, if you ask for it, that panel's introduction message. Off by default (Enable escalation). Target panels limits where it can go; left empty, any other panel.
Close request
/ticket closerequest asks the opener to confirm the ticket can be closed, with Close ticket and Cancel buttons. The opener can accept even when they may not close tickets themselves.
Reopen
A closed ticket's Reopen button, or /ticket open, puts it back in service.
Delete
Remove the ticket for good, open or closed, with /ticket delete or a closed ticket's Delete button. Both ask first. The channel goes five seconds later, after a transcript is saved if your transcript settings ask for one on delete.
Transcript
Generate the archive on demand, even with automatic transcripts switched off.
Remind Owner
DM the opener that their ticket is waiting on them.

Closing, transcripts and ratings

  • Close puts the ticket into a closed state with the moderator's message. With Two-Step Ticket (closed state) off, closing deletes the ticket instead. Delete removes the channel five seconds after archiving the transcript.
  • Every reply a ticket button gives is editable too, from the Close Confirmation (and its two buttons) to a refused press, a Staff Options action, or a reason a ticket could not open. Related replies share one row in Messages & Buttons; switch between them with its numbered pills. {clicker} tags whoever pressed the button, since {user} is always the ticket's owner.
  • Transcripts are stored HTML, viewable in the browser. Opener access and Support access (both on) decide who may read one, and the server's managers always can. Readers sign in with Discord.
  • Enable transcripts (off by default) makes them automatically: posted to your transcript channel, DMed to the opener if you like, when a ticket closes or is deleted, and saved for History. The private staff thread is included only with Include thread messages in transcripts.
  • With a transcript channel set, the files members posted in the ticket are re-posted there (up to 5 MB each, 25 MB and 100 files per ticket, never programs or archives), so the transcript still shows them after the ticket's channel is deleted. Without one, the transcript links to the ticket's own files, which go with the channel.
  • Ask for a 1–5 rating after closing (off by default) DMs the member. How members rate: Web page (the default) sends one Rate your experience button that opens a page on arclo.gg with the stars and a box for written feedback, beside the ticket's close details. Star buttons puts the five stars in the DM, with an optional comment after. Ratings and comments appear in History and on System Analytics.

Transcripts need the message content intent

It is enabled on Arclo, but a channel Arclo could not read produces an empty transcript. Check Read Message History on ticket categories.

Automations

Up to five rules per panel, on the Automations tab. Each runs once per ticket, after a delay of up to a week, when a ticket is created, closed or claimed, when the opener leaves the server, when a matching message is posted (or none is, within the delay), or when the ticket goes quiet. Actions send a message in the ticket, DM the opener, close or delete the ticket, or add or remove the opener's roles.

  • Matching is plain text, ignoring case, rather than a pattern, and can count messages from anyone, only the opener, or only the support team.
  • Message not found rules run over the delay after the ticket opens. A matching message cancels the rule rather than triggering it.
  • Two everyday jobs have switches of their own on Behavior & Limits: Auto-close inactive tickets (48 hours when you switch it on) and If the ticket owner leaves the server (Close the ticket by default, or Do nothing, or Delete the ticket).

Behavior and limits

Open tickets per member
How many tickets one person may have open at once. 1 by default; empty means no limit. A ticket type can set its own.
Maximum total open tickets
A ceiling on open tickets across the whole panel. Empty means no limit.
Creation cooldown
How long a member waits after opening a ticket here before the next one, up to a week. The Cooldown Message says when they may try again.
Required roles
Only members holding these roles may open a ticket here, Any of them or All of them. Blacklisted roles win over required ones, and Administrators are never asked.
Limit bypass roles
Exempt from both limits and the cooldown.
Closed channels kept
How many closed ticket channels may sit in the closed state; past it the oldest is deleted. Empty keeps them all.
Ticket history kept
Closed and deleted ticket records kept for History and System Analytics: 500 per panel by default, adjustable from 50 to 5,000. The oldest are removed past it.
Saved transcripts kept
100 per panel by default, adjustable from 10 to 1,000. The oldest transcripts are removed past it; the ticket record stays.
Two-Step Close
Requires a confirmation before a ticket closes.
Two-Step Ticket (closed state)
On by default: a closed ticket stays, closed, until somebody reopens or deletes it. Off, closing deletes it.
Close reasons
Require a close reason when the Close button is pressed (the box doubles as the confirmation), and a Default close reason for closes that carry none. A reason appears in the log line, the History tab, and any closed message that uses {close_reason}; /ticket close takes one as an option.
Opener can close
Whether the member may close their own ticket.
Active / Paused
The switch on the panel's card in the list, once the panel is published. Publishing an edit leaves it as it is. A paused panel keeps its message posted and answers “paused” to every press, and stays out of /ticket new. A draft that was never published takes no tickets at all, /ticket new included.

Availability

Its own tab: Support hours, off until you switch it on, in a time zone you choose, and what a ticket gets when the team is away. Every moment of the week has a state: Open, Reduced support, Emergency only or Closed.

Basic mode
One row per weekday with a switch and up to four time ranges, each carrying the state it sets: “09:00–17:00 open, 12:00–13:00 reduced support”. Where two ranges overlap, the later one wins. A range that ends before it starts runs past midnight.
Advanced mode
The status painter: pick a state, then click or drag it across a grid of hours. Both modes are kept; the switch decides which one the bot reads.
Closed hours
Allow with a warning opens the ticket and posts the Closed Hours Notice inside it; Deny creation refuses with a private message instead. Only closed hours can refuse. Reduced and emergency-only hours always open the ticket and post their own notice.
Notices
The Closed Hours Notice, Reduced Support Notice and Emergency Only Notice, and the refusal Closed Hours: Ticket Refused, are designed with the same editor as every other ticket message. {support_opens_at} and {support_closes_at} render as live relative times, {support_status} names the current state, and {support_hours} prints the week's hours.
Support hours bypass roles
Members holding one open tickets at any time and never see a notice. The support team always bypasses.
Disable staff pings
The support roles named in the ticket's opening message are shown without notifying anyone. A private thread still mentions them, because that is what lets them in.

History and analytics

History, the tab beside Panels, is a searchable archive of every ticket with filters, ratings and links to the transcripts. The numbers (volume, claim, reply and close times against the period's average, ratings and what members wrote, the most active staff) are on System Analytics under Tickets, and an old link to the Analytics tab takes you there.

Commands

  • /ticket add [user] [role]
    Ticket staff

    Gives a user or role access to the current ticket channel.

  • /ticket remove [user] [role]
    Ticket staff

    Removes a user's or role's access to the ticket channel.

  • /ticket open
    Ticket staff

    Reopens a ticket that is currently closed.

  • /ticket close
    Ticket staff

    Closes a ticket that is currently open.

  • /ticket delete
    Ticket staffCannot be undone

    Deletes the ticket for good, open or closed, after a confirmation. A transcript is saved first when the panel's transcript settings ask for one.

  • /ticket rename [name]
    Ticket staff

    Renames the ticket channel, or resets it to the default name.

  • /ticket claim
    Ticket staff

    Claims or unclaims the ticket, when claiming is enabled.

  • /ticket closerequest
    Ticket staff

    Asks the ticket owner to confirm closing the ticket.

  • /ticket transcript
    Ticket staff

    Generates a transcript of the current ticket.

  • /ticket escalate [to]
    Ticket staff

    Escalates this ticket to another support team.

  • /ticket info
    Ticket staff

    Shows who opened this ticket, when, and who is handling it.

  • /ticket new
    Everyone

    Opens a ticket from anywhere. A private list of the panels you can open on.

Note

/ticket new opens a ticket from anywhere, for anybody the panel would let in. Every other ticket command works only inside a ticket, and by default only for your support team and Administrators. Each one can be restricted further, given a cooldown, made private or switched off on the Commands tab or from Command Info.

Still stuck? Ask in the support server: somebody there has almost certainly configured this before.