Ticket management
Submitt's normal Ticket setup is intentionally short: name the Ticket, choose the Discord button channel, choose where private tickets should be created, select staff roles, add an optional welcome message, then publish. Questions are optional. Everything else—combined launchers, support hours, thread mode, transcript routing, limits, blacklists, SLA and automation—stays under Advanced Settings.
Adding, editing, or deleting ticket intake questions updates the builder immediately without reloading the page. Publishing from an editor saves the current settings first so Discord receives the latest configuration.
How the ticket system is structured
One complete ticket configuration such as General Support, Property Inquiry, Player Report or Billing. It owns routing, staff access, support hours, limits, transcripts and ticket behavior.
One optional public Discord embed that groups 2–25 existing Ticket Panels behind buttons or a dropdown menu. Removing a Ticket Panel from a Multi-Panel never deletes the Ticket Panel.
A Discord modal question completed before the private ticket channel is created.
The stored support case containing applicant answers, channel details, staff actions, notes, transcript and timeline.
Create a Ticket
Open Dashboard → Tickets and use Create Ticket. The quick creator only asks for the settings needed to get a working support Ticket online.
sales-ticket-{username}, support-{number}, or {panel}-{number4}. Supported variables are {number}, {number4}, {username}, {nickname}, {panel}, {type}, {userid}, and {date}.After creation, Submitt opens a single Ticket editor. The normal editor contains the Ticket name, button label, custom ticket channel naming template, description, welcome message, Discord channels, staff roles and optional questions. In the normal editor, the Ticket name is also the public Discord launcher title. The description is shown on that launcher, while the welcome message is shown inside newly opened private tickets. The editor uses one Save All Changes action for the normal setup and every edited advanced section. Saving happens in place without a browser reload. Adding, editing, or deleting intake questions updates the question list immediately. Other structural changes save pending edits first and refresh server data in place while preserving unsaved fields. Publishing also saves pending changes first.
Deleting a Ticket
You can delete a Ticket configuration even when it already has ticket history. Deleting removes the launcher from normal configuration, prevents new tickets from opening from it, and removes it from Combined Panels. Existing ticket records stay intact, including transcripts, messages already captured in transcripts, notes, ratings, closure details, events, SLA history and dashboard history. Existing open ticket cases keep their historical configuration relationship so staff records are not destroyed.
Submitt always shows a confirmation dialog before a Ticket or Ticket Multi-Panel is deleted. The delete request is only submitted after you explicitly confirm it.
Open a Ticket and choose Copy to Server to reuse it on another licensed Discord server you can administer. Submitt copies the Ticket name, public copy, questions, colors, support-hours schedule, limits and other reusable behavior, then creates the destination Ticket as a disabled draft. Discord channel IDs, categories, staff roles, role overrides, blacklists, legacy attached intake templates, published message IDs and ticket history are not copied. Remap the destination server before enabling it.
Use Duplicate when you want another Ticket with the same channels, categories, staff roles, questions, blacklists, SLA/automation settings and other configuration in the current server. The duplicate starts disabled and unpublished and does not inherit ticket history, transcripts or the published Discord message.
Ticket Panel launcher and intake
Every Ticket Panel has its own opening control. Open Configure to change the button/select-menu label, emoji, style, welcome message, optional staff-team override and up to five Discord modal intake questions. Existing older Submitt configurations that contained several opening buttons remain supported for backward compatibility.
Use intake questions for information staff would otherwise ask immediately after opening the case: reference number, reason for contact, evidence link, platform, or a short explanation. Keep the form focused so members can complete it quickly.
Publish a Ticket Panel directly
Use Publish on the Ticket Panel list or builder to post that panel's launcher into its configured Discord channel. Publishing again updates the existing Discord message when possible. This works well when different Ticket Panels belong in separate public channels. Moving an individually published Ticket Panel to another channel removes the old launcher so members do not see two active copies.
Button and select-menu launchers
Every Ticket Panel can use either a normal Discord button or a compact select menu when published individually. Multi-Panels can also use buttons or a dropdown, so a server can use separate launch channels, one central grouped menu, or both at the same time.
Select-menu labels, descriptions and emoji come from the Ticket Panel configuration. Changing launcher presentation does not change the panel's category, staff team, intake questions, limits or ticket history.
Embed and button colors
Ticket Panel launcher embeds, Multi-Panel embeds, private Ticket embeds and out-of-hours notices support an exact color using the dashboard color wheel, Hex value, RGB inputs and quick presets.
Discord interactive buttons themselves only expose four native background styles. Submitt still provides a color wheel and RGB picker for a consistent editor experience, then automatically maps the selected color to Discord's nearest native button style: Primary blue, Secondary grey, Success green or Danger red.
Support hours
Each Ticket Panel can optionally restrict new openings by day, time and IANA timezone. Configure individual weekdays, copy Monday across the work week, apply standard business hours, or return the Ticket to 24/7 availability.
Outside configured hours, Submitt can either block ticket creation or allow the ticket with a custom warning. The closed/warning title, message and embed color are configurable. The bot checks the schedule when the member starts the flow and again when the Ticket is actually created so a stale modal cannot bypass closing time.
Use Dashboard → Forms when you only need to collect answers. Ticket intake stays inside the Ticket editor as simple Ticket questions.
Advanced routing safeguards
Ticket Panels can also set an opening cooldown and optional overflow category. Custom channel/thread naming is available directly in normal Ticket setup so owners can use department-specific formats such as sales-ticket-{username} or support-{number}. Discord-safe normalization converts unsupported characters to hyphens and limits the final channel/thread name to Discord's 100-character limit. Overflow routing automatically uses the backup category when the primary category reaches Discord's category capacity.
Create a Multi-Panel
If several related Ticket Panels would clutter the same Discord channel, select Create Multi-Panel. Choose 2–25 existing Ticket Panels, the public channel, title, description, and either a button or dropdown layout. The Multi-Panel stores presentation and assignments only; every Ticket Panel keeps its own category, staff roles, intake questions, support hours, limits, welcome message, transcripts, automation and SLA behavior.
You can remove a Ticket Panel from a Multi-Panel, include the same Ticket Panel in another Multi-Panel, publish it individually, or delete the Multi-Panel without deleting the Ticket Panel or its ticket history.
Older Ticket Panels that contain several opening options continue to work when published on their own, but they cannot be placed inside a modern Multi-Panel because doing so would make one Ticket Panel represent several different ticket choices. Split those legacy options into separate Ticket Panels first.
What happens when a member opens a ticket
Staff controls inside a ticket
Authorized staff can claim or unclaim the ticket so ownership is visible, change priority, set Active / Waiting for User / Waiting for Staff, add/remove participants, rename the channel/thread, transfer the case to another compatible department, add internal notes, apply tags, send saved replies, request closure/close the case and reopen it when necessary. Internal notes are intended for staff context and should not be treated as a substitute for Discord moderation logs.
Staff can also use /adduser user:<Discord ID or username> and /removeuser user:<Discord ID or username> directly inside a ticket. Submitt resolves exact usernames, updates channel or private-thread access, and records the change in ticket history and logs.
Waiting for User / Waiting for Staff
Open tickets have a separate workflow state in addition to their Open/Closed lifecycle. Staff can mark a ticket Waiting for User, Waiting for Staff or return it to Active from Discord or the dashboard. In Channel Mode, Waiting for User can optionally move the ticket into a dedicated awaiting-response category; returning to Active or Waiting for Staff restores the ticket type's normal category.
Full ticket control from the dashboard
The ticket detail page can operate the live Discord ticket without requiring staff to switch back to Discord. Authorized dashboard users can send replies, claim/unclaim, change priority, change workflow status, transfer departments, add/remove participants, close/request close and reopen tickets. Dashboard commands are written to an audited action queue and executed by the connected Submitt bot within a few seconds. Pending, completed and failed actions remain visible in the ticket record.
Ticket Inactivity Warnings module
Inactivity warnings are now a server-wide, Discord-owner-controlled module and are OFF by default. The server owner can choose how many hours of inactivity trigger the first reminder, how often reminders repeat, whether warnings are posted in the ticket, whether participants are mentioned, whether participants receive DMs, and whether inactive tickets should be automatically closed and removed from Discord.
Use Dashboard → Tickets → Ticket Inactivity Warnings to configure the module. Setting Repeat Every to 0 sends one reminder per inactivity cycle. Any new non-bot message resets the inactivity cycle. If automatic cleanup is enabled, Submitt stores the transcript and ticket record before removing the Discord channel/thread. If the bot was offline past a cleanup threshold, Submitt sends a warning first and gives participants a recovery window instead of immediately deleting the ticket.
Department teams and ticket transfers
Each ticket type can have its own staff-role team. This lets one public panel route Player Reports to moderators, Development Support to developers and Management Contact to leadership. Staff can transfer an open ticket to another compatible ticket type without creating a new case; Submitt preserves the ticket number, history and transcript record, clears the old claim and updates Discord access for the destination team.
User and role blacklists
Ticket blacklists can block a Discord user or an entire role from opening tickets. Entries may be permanent or expire automatically after a configured number of hours, and an optional reason can be stored for staff context.
Channel Mode and Thread Mode
Channel Mode creates the traditional private text channel with permission overwrites. Thread Mode creates a private Discord thread beneath a configured text channel, which can reduce channel clutter on high-volume servers. Thread tickets keep the same Submitt controls, transcripts, staff teams and lifecycle as channel tickets.
Enable the Discord Developer Portal Server Members Intent for the Submitt bot. Private threads grant access to individual members rather than roles, so Submitt uses this intent to resolve the configured staff team and invite those members into each private thread.
Close requests
When close requests are enabled, the normal staff Close action becomes Request Close. Submitt posts an Accept Close / Keep Open prompt for the ticket creator. Accepting closes the existing ticket normally; declining leaves it open and records the response in ticket history.
Priorities
Submitt supports Low, Normal, High and Urgent priority states. Priority can be changed manually or by an automation. Use priority to represent operational urgency, not the importance of the person submitting the ticket.
Saved replies and tags
Saved replies reduce repetitive typing for common questions while still letting staff personalize the conversation. Tags provide lightweight categorization such as Billing, Bug, Staff Report or Awaiting Evidence. Configure both under Dashboard → Workflows.
Internal staff notes
Notes let staff record context that should remain associated with the case. Use them for escalation summaries, verification status or handoff information. Notes appear in the dashboard ticket history and event timeline.
Closing, ratings, automatic cleanup and visual transcripts
When a ticket is closed, Submitt first captures and stores the final visual HTML transcript, then posts a single clean closure/transcript embed with a View Transcript button in the configured transcript channel. If the transcript and ticket-log destination are the same Discord channel, Submitt does not post a second duplicate Ticket Closed embed. Transcript DMs also use the same secure viewer button instead of attaching raw HTML source. The transcript itself keeps the professional record format: ticket summary, server/channel/opened/closed metadata, date dividers, exact UTC timestamps, author names, and the chronological Discord conversation with rich context.
If satisfaction ratings are enabled, the closed Ticket stays visible long enough for the creator to submit the 1–5 rating and optional feedback. Immediately after the rating is submitted, Submitt automatically deletes the closed Discord ticket channel/thread while retaining the database record, transcript, rating, audit events and dashboard history. If ratings are disabled or a rating prompt cannot be delivered, Submitt removes the closed Discord channel after transcript delivery instead.
Submitt never intentionally deletes a closed Discord ticket while its transcript is missing. If transcript generation or Discord deletion fails temporarily, the bot keeps the channel, retries the transcript/cleanup process, and only removes the channel after a stored transcript exists. This prevents a transient Discord or network failure from destroying the only copy of a conversation.
Images hosted by Discord are snapshotted directly into the transcript when they fit within the safe transcript asset budget, which helps preserve them after the Discord channel is deleted. Larger media and files remain represented inline with their original attachment links when available. The dashboard provides separate View Transcript and Download Transcript actions.
Complete Discord message transcripts depend on the bot having Message Content access and permission to read message history in the ticket channel. Deleted messages that Discord no longer exposes cannot be reconstructed later, so Submitt captures what is present in the channel at transcript-generation time.
Satisfaction surveys
After closure, eligible tickets can collect a 1–5 satisfaction rating and optional feedback. Use the aggregate score in Analytics to identify patterns, but review the underlying ticket type and workload before drawing conclusions about individual staff performance.
SLAs and automatic escalation
Tickets can have first-response and resolution targets. Submitt records the first qualifying staff response, tracks resolution time and can warn or escalate when targets approach or breach. See Workflows & analytics for configuration guidance.
Recommended Ticket Panel and Multi-Panel design
Create separate Ticket Panels whenever routing or behavior is different. For example, five property-related Ticket Panels can each keep different intake questions or staff routing, while one Property Support Multi-Panel presents all five choices in a single Discord embed. Ticket Panels stay reusable and independent whether they are published alone, grouped into a Multi-Panel, or both.