The Tickets module allows you to setup support tickets with dashboard-deployed panel, private channels, transcripts, and staff actions.
Permissions Check:
- Make sure Dyno has these permissions in your tickets categories:
View ChannelSend MessagesEmbed LinksAttach FilesManage ChannelsManage RolesRead Message HistoryMention @everyone, @here and All RolesLimits to keep in mind:
- Non-Premium servers can have a max of 1 panel. Upgrade to
Premium to get more!
Send one message that will have one button to open a ticket.
Modules tab.Tickets module is enabled.Settings button underneath the Tickets module.Panel Name for your ticket panel and click on New Panel. The Panel Name will be used for the ticket channel names on Discord. For example naming it “Player Appeals”, will result in “player-appeals-1” channel names.Send message button. Skip this step if you plan on using this panel on a Linked Panel menu.Ticket Settings section, and optionally modify the amount of open tickets a user can have at a time (requires Standard Premium), and set the roles that will have access to tickets and be able to interact with the “Staff Action Row” buttons. You can also automatically use the Moderator Roles you have configured in the Moderation module.Ticket Routing section and set your Open tickets category (the category where new tickets will go in), Resolved tickets category (the category where tickets will go after using the “Resolve” button), Closed tickets category (the category where closed tickets will go in when closed through the “Close” button) and the Transcript log channel (the channel where ticket transcripts will be posted in). All 4 of these must be set!Ticket Intake Form section and modify the ticket creation flow.Send message to send your panel on Discord! If you skipped step 6, only click on the Save changes button, since we don’t want to send this panel’s message on Discord yet.Linked Panels are a Standard Premium feature.
Click here to upgrade to Premium!
Combine multiple panels into a single message.
Modules tab.Tickets module is enabled.Settings button underneath the Tickets module.Linked panels option, select the panels you created previously. The order in which their “Create ticket” buttons will appear on the final Discord message is determined by the way you order them here, starting with this panel’s button!Ensure you have fully configured all options under the
Ticket Routingsection for all of your panels, including your current one!
Panel Message. This message will include the buttons from all the panels you have linked to it.Send message, and you’re done!One linked panel can have up to 4 panels.
As an example for a Linked Panel, let's recreate the following message:
To recreate that setup, the panels on your dashboard should have the following general structure and options:
Through the Customize ticket form option you can control how users describe their issues and customize the specific information you want to request from them before opening the ticket.
With the option enabled, you can configure a modal/form users fill out after clicking on the Create Ticket button, before opening the ticket.
Here are all of the available options you can edit for the form:
| Option | Description |
|---|---|
| Form Header | Title of the modal. Max 45 characters. |
Lets the user pick a sub-category for the ticket. Maps to the {subcategory} variable. If not provided, defaults to —.
| Option | Description |
|---|---|
| Show sub-category dropdown | Toggle that enables/disables the dropdown question. |
| Placeholder | Placeholder shown on the category field in the modal. Max 100 characters. |
| Categories | List of category options. Up to 20 categories, max 100 characters each. |
Short summary of the ticket reason. Maps to the {reason} variable. If not provided, defaults to defaults to —.
| Option | Description |
|---|---|
| Show subject field | Toggle that enables/disables this question. |
| Field label | The label shown in the modal. Max 45 characters. |
| Help text | Context hint shown below the label. Max 100 characters. |
| Placeholder | Placeholder text shown before the user types. Max 100 characters. |
| Require subject field | Makes the field optional when off. |
| Min length | Enforces a minimum character limit for this field. |
| Max length | Enforces a maximum character limit for this field. |
| Input style | Single line creates a small one-line field; Paragraph creates a multi-line field. This is visual only - it does not enforce additional limits. |
Detailed explanation of the ticket reason. Maps to the {description} variable. If not provided, defaults to —.
| Option | Description |
|---|---|
| Show description field | Toggle that enables/disables this question. |
| Description field label | The label shown in the modal. Max 45 characters. |
| Help text under label | Context hint shown below the label. Max 100 characters. |
| Placeholder | Placeholder text shown before the user types. Max 100 characters. |
| Require details field | Makes the field optional when off. |
| Min length | Enforces a minimum character limit for this field. |
| Max length | Enforces a maximum character limit for this field. |
| Input style | Single line creates a small one-line field; Paragraph creates a multi-line field. This is visual only - it does not enforce additional limits. |
With Premium, you can also add up to 3 extra custom fields of your choice, with the same options as the subject and details!
Click here to upgrade to Premium!
Click here to see a preview of the form, using the default values!
With the option disabled, you can configure the following values that will be used for all tickets created through that panel. When a user clicks on the Create Ticket button, a ticket will be instantly created.
| Option | Description |
|---|---|
| Default reason | Short summary of the reason the ticket was created. This will be the value of the {reason} variable, where applicable, or — when not set. |
| Default description | More detailed description why the ticket was created. This will be the value of the {description} variable, where applicable, or — when not set. |
| Category value | Optional sub-category of the created ticket. This will be the value of the {subcategory} variable, where applicable, or — when not set. |
The settings available under the Ticket Settings and Ticket Routing sections.
| Option | Description |
|---|---|
| Max open tickets per user | The number of open tickets a user can have at a time. The default is 1. |
| Staff Permissions | The roles that can see open tickets and interact with the "Staff Action Row" buttons. You can also automatically apply the Moderator Roles you have configured in the Moderation module. |
| Open tickets category | The category where new tickets will go in. |
| Resolved tickets category | The category where tickets will go to after closing them through the "Resolve" button. Alternatively, you can also select Delete ticket instead. |
| Closed tickets category | The category where tickets will go to after closing them through the "Close" button. Alternatively, you can also select Delete ticket instead. |
| Transcript log channel | The channel where ticket transcripts will be posted in. This happens after resolving/closing a ticket. |
Conceptually, the difference between Resolving and Closing a ticket comes down to the outcome. A Resolved ticket had a genuine issue that was addressed and fixed. A Closed ticket had no valid resolution; it was dismissed because it didn’t meet your panel’s criteria (e.g. accidental, spam, or out of scope).
The “Max open tickets per user” option is a Standard Premium feature.
Click here to upgrade to Premium!
This is a Standard Premium feature.
Click here to upgrade to Premium!
Customize the automated messages and embeds sent by Dyno during different stages of a ticket’s lifecycle.
Ticket Message Overrides section.| Message | Description | Supported Variables |
|---|---|---|
| First message in new ticket | The in-ticket message that includes the user-submitted form when opening the ticket, if enabled, otherwise the default reason(s) set. | {username}, {userid}, {usermention}, {useravatar}, {reason}, {description}, {field1}, {field2}, {field3}, {field4}, {field5}, {fields}, {subcategory}, {tickettype}, {channel}, {channelid}, {guild}, {guildicon}, {guildid} |
| Staff action row | The in-ticket message that includes the Resolve and Close buttons. | {username}, {userid}, {usermention}, {useravatar}, {reason}, {description}, {subcategory}, {tickettype}, {channel}, {channelid}, {guild}, {guildicon}, {guildid} |
| Channel message when ticket is resolved | The in-ticket message when the ticket is closed through the Close button, inclduing the staff closing reason. | {username}, {userid}, {usermention}, {useravatar}, {staffreason}, {moderator}, {moderatorid}, {moderatoravatar}, {channel}, {channelid}, {guild}, {guildid}, {guildicon} |
| Channel message when ticket is closed | The in-ticket message when the ticket is closed through the Resolve button, inclduing the staff closing reason. | {username}, {userid}, {usermention}, {useravatar}, {staffreason}, {moderator}, {moderatorid}, {moderatoravatar}, {channel}, {channelid}, {guild}, {guildid}, {guildicon} |
| Transcript channel notice | The message posted in your transcript log channel. This will automatically include a text file containing the transcript. | {username}, {userid}, {usermention}, {useravatar}, {moderator}, {moderatorid}, {moderatoravatar}, {channel}, {channelid}, {guild}, {guildid}, {guildicon}, {filename}, {action} |
If you’re looking to edit the Panel Message itself, scroll up to the
Panel Messagesection instead.
This is a Premium feature.
Click here to upgrade to Premium!
Customize the labels, colors, and emojis for the primary buttons your members and staff interact with.
Button Styles section and edit the button(s) you want.If you also modified the
Open Ticketbutton, make sure to update the Panel Message as well through theSend messagebutton at the top of the module!
{username} - Ticket opener’s Discord username.{userid} - Ticket opener’s user ID.{usermention} - Mention of the ticket opener.{useravatar} - Ticket opener avatar URL.{reason} - Short reason from the open-ticket form.{description} - Long description from the open-ticket form.{field1} - Answer to the first open-ticket form field. Usually equivalent to {reason}.{field2} - Answer to the second open-ticket form field. Usually equivalent to {description}.{field3} - Answer to the third open-ticket form field. This is available when using Extra form fields.{field4} - Answer to the fourth open-ticket form field. This is available when using Extra form fields.{field5} - Answer to the fifth open-ticket form field. This is available when using Extra form fields.{fields} - All submitted open-ticket form fields and answers, formatted as a list and separated by newlines. For example:{subcategory} - Sub-category label chosen when opening the ticket.{tickettype} - Fixed channel slug used in the ticket name (ticket).{staffreason} - Reason entered by staff when resolving or closing the ticket.{moderator} - Staff member’s username (resolved / closed messages).{moderatorid} - Staff member’s user ID.{moderatoravatar} - Moderator avatar URL.{channel} - Ticket channel as a mention (<#…>).{channelid} - Ticket channel ID.{guild} - Server name.{guildid} - Server (guild) ID.{guildicon} - Server icon URL.{filename} - Transcript file name (transcript channel notice).{action} - Action label, for example Resolved or Closed (transcript channel notice).Depending on the message type, not all variables will work. Refer to the available variables per message type to ensure you select the ones that work.
.png or .gif.