Tickets
A private support channel per member, opened from a button, answered by whoever is actually on duty.
What it does
You post one panel in a public channel. A member clicks its button and Cyndrix opens a private channel that only they and your support roles can see. Every message is saved as a transcript you can read back in the dashboard long after the channel is gone.
It replaces "DM a mod and hope they're awake": every request lands in one place, any available staff member can pick it up, and nothing is lost in someone's inbox.
After close, the opener is asked for an optional 1โ5 star rating. They can tap Skip โ Cyndrix will not ask again, and a skip is not counted against your average.
On-duty pings
Pinging @Support at 4am wakes everyone who happens to have the role. Set Staff ping to On-duty staff and each support role gets a partner duty role instead โ @Tech pairs with @on duty Tech, @CS with @on duty CS โ so a new ticket mentions only the people actually around.
A ticket option listing two support roles pings both duty roles. Two options sharing a support role share its duty role, so this grows on its own as you add teams.
It follows Discord status by itself. Online, idle or do-not-disturb puts a staff member on duty; going offline or invisible takes them off, usually within a minute. Nobody has to remember to clock in.
For "online but not taking tickets", publish the duty board to a staff channel from Dashboard โ Tickets โ Duty. It shows a live head count per team, flags any team with nobody on it, and gives staff an Available / Not taking tickets switch. Prefer clocking on by hand? Turn off Follow Discord status and the board becomes one button per team.
Nobody on duty is never silence. That ticket falls back to pinging the whole support role, and the welcome message says why.
Running your own bot on Nexus? Automatic on-duty needs the Presence Intent switched on for your application โ Discord Developer Portal โ your app โ Bot โ Presence Intent. Your bot picks the change up on its own within about ten minutes; there is nothing to restart. Until then everything else works and staff clock on from the board by hand.
Closing a ticket
Closing no longer destroys the channel. Staff pick one of two:
- Close (remove user) โ the normal path. The opener keeps access for a few minutes so they can actually answer the rating, then loses access. The channel is renamed
closed-โฆ, moved to an archive category, and staff get a message with Delete channel and Reopen buttons. Reopen puts the member straight back in. - Close & delete โ the old behaviour, for spam and duplicates. The channel goes in a few seconds and no rating is asked, because nobody could answer one in time.
Members closing their own ticket always take the first path, and so does /supportclose unless you pass delete:true.
Archived channels are deleted automatically after 7 days โ change or disable that in Setup. Worth knowing before you set it to never: Discord caps a server at 500 channels, and at that ceiling no new ticket can be opened at all. The transcript is kept in the dashboard either way, so the channel is only a convenience.
Setup
- Dashboard โ Tickets โ enable.
- Open the Panels sub-tab and click your panel. Pick its channel (somewhere everyone can see, like #support).
- Click ๏ผ Add option for each kind of ticket: label, emoji, the category its channels go in, and the support roles who see it. Only those roles โ plus the member who opened it โ can see a ticket.
- Edit the panel's title, message and colour right on the preview, then Save & Publish.
- Set max open tickets per user so one person can't spawn twenty channels.
- Under Close & archive, choose how long the opener keeps access after a close and how long archived channels are kept.
- For on-duty pings: the Duty tab โ Create missing duty roles โ pick a staff channel โ Publish Duty Board.
Move a panel to another channel in the dashboard and Cyndrix removes the old message for you when you publish โ don't copy panels by hand.
Several panels
One panel can hold up to 25 options, but different places often need different buttons. With several panels, each one has its own channel, message, colour and options โ for example Support (General help, Bug report) in #support and Appeals (Ban appeal) in #appeals.
- Panels sub-tab โ ๏ผ New panel, or open a panel and press Duplicate to start from a copy.
- Save & Publish inside a panel publishes just that one; Publish all on the list does every panel.
- One panel per channel. Deleting a panel removes its message from Discord โ tickets already open from it keep working.
- Open tickets show which panel they came from.
- Free has 1 panel with up to 3 options, Premium 2 panels with 10 options each, Ultimate (and Nexus) 3 panels with 25 options each โ 3 is the maximum.
Good habits
- Put the category somewhere staff-only. The channels are permission-locked, but a private category keeps the sidebar tidy for everyone else.
- Say what you need in the panel description. "Include your username, the server, and what you already tried" saves an entire round trip.
- Close, don't delete by hand. Closing keeps the transcript and the channel; deleting it yourself in Discord throws the conversation away. Staff can run
/supportcloseor/ticket(rename, priority, notes, snippets, block) inside the ticket. - Ratings are optional. Members can Skip. Duplicate / Won't-fix closes skip the prompt by default.
- Keep Cyndrix's role above the duty roles. It creates them at the bottom of the role list so it can hand them out โ move its own role down and it can't.
- Leave archive retention on. "Never" is the setting that quietly fills a server's 500-channel budget.
What members see
๐ No one is on duty for CS right now, so the whole team was pinged.
Commands 4
Generated from the bot's source โ this list is always what is actually deployed.
Add a member to this ticket channel
userrequiredThe member to add to this ticketRemove a member from this ticket channel
userrequiredThe member to remove from this ticketClose this ticket
statusoptionalResolved or unresolved (defaults to unresolved)reasonoptionalOptional close reasondeleteoptionalDelete the channel instead of archiving it (skips the rating prompt)Ticket staff tools
/ticket renamesubcommandRename this ticket channel/ticket prioritysubcommandSet this ticket's priority/ticket notesubcommandAdd an internal staff note/ticket snippetsubcommandPost a canned reply/ticket blocksubcommandBlock a member from opening tickets/ticket unblocksubcommandAllow a member to open tickets again