Open and follow support tickets
Configure a Discord support entry point and track requests through assignment and closure.
A ticket combines a private Discord channel for the conversation with a StaffNest record for assignment, priority, status and internal notes.
Configure tickets is required for configuration. Handling tickets requires ticket management and any category-specific access. Discord roles control the private channel separately from panel roles; assignment alone does not grant channel access.
Configure the entry point
Section titled “Configure the entry point”- Open Tickets and its configuration.
- Enable new tickets, choose the opening-button channel, Discord ticket category and support roles.
- Optionally choose an archive category and opening mentions.
- Configure request categories. Each may inherit the shared team or have its own Discord support team and permitted panel roles.
- Customize the Discord messages and form, then inspect the previews.
- Save and run the offered permissions diagnostic.
- Prepare publication, check the target channel and confirm publication to Discord.
Saving and previewing do not publish a message. Publication creates or updates the opening panel. Test once in an appropriate test category and check a support member’s access.
With no panel roles selected for a category, people with ticket-management rights can access it. With selected roles, those roles and the owner can access it; selecting a role does not itself grant ticket-management rights.
Customize messages
Section titled “Customize messages”The opening, created and closure previews show the relevant texts, colors, images and button. Image URLs must use HTTPS; the button can use a Unicode emoji. Use only variables listed for each field, such as {server}, {number}, {subject}, {requester}, {category} or {closeReason} where supported.
The subject and description stay required. Role mentions are configured separately; typing a mention into custom text does not automatically ping that role.
Choose the ticket language
Section titled “Choose the ticket language”In Settings → General → Bot language, choose a language and save. Shared ticket messages, buttons and default texts follow this setting. Private forms and confirmations follow your personal language preference, or your Discord language if no preference has been saved. Your custom texts, category names and members’ messages stay as written; translate your custom texts if needed.
After changing the language, republish the opening panel from Tickets → Configure to update its Discord message and button. An existing ticket’s tracking message updates the next time it is claimed or its status changes, or immediately with Refresh Discord message in its record. Changing the language does not translate the full conversation history.
Open and handle a request
Section titled “Open and handle a request”The requester clicks the Discord button, chooses a category and submits a subject and description. StaffNest creates the channel and record. Each requester can have one active ticket at a time on that server.
In the panel, filter and open the ticket, claim or assign it, choose normal/high/urgent priority, and save status changes. Waiting status can distinguish waiting for the requester from waiting for the team.
Reply to the requester inside the Discord channel. Internal notes are for authorized panel users and are not sent to the requester. Use them for checks already made, relevant context and the next action. The record’s history tracks assignments and status changes, not the full Discord conversation.
In Internal notes, use Load earlier notes to find older notes. The button remains available while more history can be loaded.
Close or reopen
Section titled “Close or reopen”Close with a reason and save. The reason is visible in Discord and preserved in the history. The channel becomes read-only and may move to the configured archive category; it is not automatically deleted. Closed records remain in archives.
Reopening restores the original category and access where possible. Another active ticket from the same requester can prevent it. If Discord synchronization needs checking, correct the reported issue and retry from the same record. A saved record does not guarantee the channel change succeeded.
New category and access settings apply to new tickets. Existing tickets preserve the rules saved at opening.
Suspend or review support
Section titled “Suspend or review support”Disable acceptance of new tickets and save to stop new requests while keeping existing ones. Statistics offer 7-, 30- and 90-day periods. First-assignment time measures the first responsible person being assigned, not the first written Discord response. Reopened tickets are not counted as currently closed tickets.
First written response and latest exchange
Section titled “First written response and latest exchange”The detail shows the first support response observed on Discord and the latest requester/support messages. These dates help identify who is waiting for a reply; they do not automatically change the ticket status. This tracking does not store message contents.
The first-response median is separate from assignment time: assigning a person is not a written response. Only tickets observed since opening contribute to this median. Older tickets may show a first response observed since tracking began, without reconstructing their past conversations. Messages missed while the bot was offline are not backfilled.
If something blocks you
Section titled “If something blocks you”For missing records, clear filters and check category permissions. For a visible record but inaccessible Discord channel, check the person’s Discord roles. Reload after concurrent changes. Demo channels are fictional; publication and Discord diagnostics are disabled there.
If confirmation for a note was not received, its text stays in the record and is temporarily locked for editing. Use Check saved note to resume the same save without creating a duplicate, even if the note already appears after refreshing.
An urgent-ticket automation can help flag eligible requests left unassigned.