SUBMITTBY PARADISEUTILITIES
DOCUMENTATION

Ticket management

Submitt tickets are built from reusable Discord panels. A member chooses a ticket type, completes any required intake questions, and Submitt creates either a private support channel or private thread with the correct department access and workflow controls.

How the ticket system is structured

Ticket panel

The public Discord message members interact with. One panel can contain multiple ticket types.

Ticket type

A specific support route such as General Support, Player Report, Management or Billing.

Intake question

A Discord modal question completed before the private ticket channel is created.

Ticket record

The stored support case containing applicant answers, channel details, staff actions, notes, transcript and timeline.

Create a ticket panel

Open Dashboard → Tickets, choose the correct active server and select Create panel. The panel-level settings define the public message, staff access and default behavior shared by tickets created from that panel.

Internal panel nameA dashboard-only name used by your staff to identify the configuration.
Public embed titleThe title members see on the Discord panel.
Public descriptionInstructions explaining what members should select and what information they may need.
Panel channelThe Discord text channel where Submitt publishes the interactive panel.
Delivery modeChoose private channels or private threads for tickets created by this panel.
Thread parent channelRequired for Thread Mode. Submitt creates each ticket as a private thread under this text channel.
Default ticket categoryThe Discord category where new private ticket channels are created unless a ticket type overrides it.
Log channelOptional operational channel for ticket lifecycle logs.
Transcript channelOptional Discord destination for transcript notifications; transcripts are also stored for dashboard access.
DM transcript to ticket creatorEnabled by default. When a ticket closes, Submitt sends the generated HTML transcript to the opener in Discord DMs. If Discord blocks the DM, ticket closure still succeeds and the delivery failure is recorded in ticket history.
Max open per userPrevents one member from opening excessive simultaneous tickets from the same workflow.
Inactivity deletionDefault 48 hours. When no new messages are sent for the configured period, Submitt preserves the transcript and ticket record, closes the case, then deletes only the Discord channel/thread.
Inactivity warning leadDefault 12 hours. The creator, manually added participants and claimed staff member are pinged in the ticket and DM'd before the scheduled deletion. Any new message cancels the pending deletion timer.
Waiting for User categoryOptional category for Channel Mode. Tickets marked Waiting for User can be moved here automatically and return to their normal category when their workflow status changes.
Staff rolesDefault Discord roles allowed to work tickets. Individual ticket types can override this with their own department/team roles.
Close requestsOptionally require the ticket creator to approve a staff close request before the case is closed.
Require closure reasonForces staff to record why the ticket was closed, improving audit history.

Add ticket types and intake questions

After the panel exists, open Configure. Add the individual options members should be able to choose. A panel can publish up to 25 ticket-type buttons. Each ticket type can collect up to five modal questions before creating the ticket. You can also assign a dedicated staff team to a ticket type; when left blank, the type inherits the panel staff roles.

Use intake questions for information staff would otherwise ask immediately after opening the ticket: user being reported, order/reference number, reason for contact, evidence link, platform, or short explanation. Keep questions concise so members can complete the form without friction.

Publishing and updating the Discord panel

Once the panel and ticket types are ready, publish it to Discord from the configuration page. When you change an already-published panel, use the update/publish control again so the existing Discord message reflects the latest configuration. You normally do not need to delete and recreate the message manually.

What happens when a member opens a ticket

01Member selects a ticket typeSubmitt checks licensing, limits and the selected panel configuration.
02Intake appearsIf questions are configured, Discord opens the modal on the member's screen.
03Private ticket is createdSubmitt creates the configured private channel or private thread and grants access to the opener and responsible staff team.
04Staff process the caseStaff can claim, prioritize, set Active / Waiting for User / Waiting for Staff, tag, add members, use saved replies and record internal notes.
05Ticket closesClosure reason, timeline, transcript and optional satisfaction survey are retained.

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.

Inactivity warnings and Discord cleanup

By default, a ticket with no new messages for 48 hours is scheduled for Discord deletion, with a warning 12 hours before deletion. Both values are configured per ticket panel. The warning pings participants inside the ticket and sends each involved user a DM. A new message resets the inactivity timer and cancels the pending deletion. Before cleanup, Submitt generates and stores the transcript, closes the ticket record and performs configured transcript/log delivery; only the Discord channel/thread is deleted, so the historical case remains available from the dashboard.

If the bot was offline during the normal warning window, Submitt does not immediately delete the ticket when it returns. It sends the warning first and guarantees the full configured warning lead time before cleanup.

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

Panel 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.

Thread Mode requirement

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, reopening and transcripts

When a ticket is closed, Submitt stores the closure details and generates an HTML transcript when the ticket channel can be read. The transcript remains available from the dashboard ticket record, can be copied to a configured Discord transcript channel, and—when the panel setting is enabled—is DM'd to the ticket creator as an HTML file. DM delivery success, failure, disabled status or transcript unavailability is recorded in the ticket event timeline. Closed tickets may be reopened if staff need to continue the same case. Transcript retention is controlled from Operations and can be different from overall ticket-record retention.

Transcript requirement

Complete Discord message transcripts depend on the bot having the required Message Content capability/intent and permission to read the ticket channel. If the bot cannot read message content, the stored operational record can still exist but transcript content may be incomplete.

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

Ticket panels 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 panel design

Keep the public panel simple and route complexity into ticket types. A good main support panel might offer General Support, Player Report, Staff Report and Management Contact rather than creating four separate public messages. Use separate panels only when the audience, staff team or Discord location is genuinely different.