Messages
Rewrite the messages TicketCord sends on its own, such as claim notices, reminders, rating requests, and log entries, and restyle their buttons
The Messages page holds the messages the bot sends: the welcome message when a ticket opens, the close messages, the DM to new members, and the messages TicketCord sends on its own, such as the claim notice, close confirmations, inactivity reminders, rating requests, ModMail notices, AI replies, and log entries.
You can rewrite any of those in the same designer as welcome designs, keep TicketCord's own wording with variables while you change the layout, and give their buttons your own label, emoji, and color. It is for servers that want every message their members and staff see to use their own voice, branding, or language.
Error replies keep their standard wording and their TC code, so they always match Troubleshooting.
Changing messages and restyling their buttons needs Basic or higher on the bot owner's plan. On Free each message row shows a Basic badge (a link to Plan & billing) and its button reads View, which opens a page saying "Customizing messages needs Basic" with Back to messages. Welcome designs work on every plan. The Assistant in the designer needs Pro or Enterprise.
To change messages you must be the bot owner, or hold a role granted dashboard access for the server. The ModMail Server picker is the exception: it is shared by all your servers, so only the bot owner can change it. See Server picker.
How the page is organized
Messages is the page right after Panels under Settings in the sidebar. It has two cards.
Automatic messages has a switch at the top with each moment TicketCord sends something. On screens narrower than 1280 pixels the switch is a menu.
| Moment | What it lists |
|---|---|
| Ticket opens | The welcome message for each kind of ticket. See Welcome Messages |
| In a ticket | Claims, close and reopen confirmations, members and roles added or removed, renames, priorities, applications, approvals, and the replies to staff commands |
| Ticket closes | Message in the ticket and DM to the member (see Close messages), then the closed ticket controls, transcripts, and deletion notices |
| Feedback | The rating request and reminder, the thank-you replies, and the rating posted for staff |
| Reminders | Inactivity reminders, asking a member for details, and response target alerts |
| ModMail | The messages sent to the member in DMs, the reminders and alerts in the ticket, and the ModMail status card |
| AI | AI answers, hand-overs to staff, Auto Support threads, AI Help, translations, and possible duplicates |
| Staff logs | The entries posted in your logs channel and other staff channels |
| Member joins | DM to new members. See DM on Join |
For TicketCord's own messages, the rows of a moment are grouped by who sees them: Posted in the ticket, Sent to the member, Posted for staff, and Shown only to who clicked. The last group holds the private replies to a button or command; it is folded behind its count, for example "Shown only to who clicked (3)", and opens by itself when one of its messages was changed.
Each row shows the message's name, when it is sent, and an Edit button. A Customized badge marks a message whose text or buttons your server changed. Below Basic, the messages you can still change (the ModMail Message received and Ticket closed DM) come first in their group, and the others show a Basic badge.
Under ModMail, the folded Also sent in ModMail tickets group lists the messages of other moments that ModMail tickets send too, such as Close confirmation, Closing in progress, and Talk to Staff offer. They are the same messages as in their own moment: editing one there changes it everywhere. Every message, with its variables and buttons, is listed on Message Reference.
Saved message designs, below, is the library of designs used for welcome and close messages. See Welcome Messages.
Customizing a message
Find the message
Go to Messages, pick the moment at the top of Automatic messages, and click Edit on the message's row. The designer opens on its own page, with the message's name and when it is sent at the top, and Back to messages to return.
Start from the built-in message
The preview starts from TicketCord's own message, in your bot language (General → Bot language), with sample values for the variables. If your server already changed the message, your version opens instead.
Change the text and layout
Edit the text, or add Text, Divider, Images, and Section blocks to one or more containers, the same way as in a welcome design. Each container has an Accent color and Container settings with Who gets pinged; the last container's settings also hold the Footer.
To send a container as plain message text, turn on No card in its Container settings: it then has no box, accent color, or footer, and does not count as a component of its own. You can mix containers with and without a card in one message.
To start from a message you built in Discohook, click Import (see Copying a message from Discohook); the message's own buttons stay as they are.
Add variables
Click inside a text block where the value should go, open Variables, and pick one. With no text block selected, the variable is copied instead.
- This message lists the values filled in when the message is sent, such as
{staff}or{reason}. - Built-in wording lists TicketCord's own text, such as the title and sentences of the built-in message, so you can keep it while you change the layout.
In the preview, values filled in when the message is sent are highlighted, and values Discord shows as a mention or a channel link, such as {staff} or {channel}, look like one. Built-in wording reads as normal text with a dotted underline. Point at either to see its variable name.
Place the buttons
On a message with buttons, open Buttons and choose Where the buttons go: Inside container (in the last container) or Outside container (below the message). To restyle a button, see Restyling a button.
Save
Click Save changes. Messages sent from then on use your version. If the message was saved somewhere else after you opened it, for example in another tab, the save is stopped so nothing is overwritten; click Reload latest version and make your change again.
The Assistant panel can write a message for you from a description. It knows the rules of the message you have open, from Message Reference: what each variable holds, which buttons can be hidden, who gets pinged, and what your version must keep, so it only suggests what that message can do.
It needs Pro or Enterprise on the bot owner's account, including the free trial, and each reply uses the bot owner's AI tokens, also when a staff member asks. See AI tokens.
To change many messages at once, for example to match your brand, connect an AI tool such as Claude Code or Codex over MCP. It reads and saves them one after another with the same rules, on the same plan as this page.
Restyling a button
TicketCord's buttons on a message, such as Extend Time on a reminder or the stars on a rating request, keep doing exactly what they did. You can change how they look, and hide the ones the message works without.
Open the message
Click Edit on its row. Its buttons are shown in the preview, including the ones that only appear in some situations, so you can style them all.
Rename a button in place
Click the button's label in the preview and type the new one, up to 80 characters. Typing the built-in label back, or leaving it empty, keeps the built-in label in the bot's language.
Open its settings
Click the gear on the button. Change the Label, pick an Emoji (Use built-in emoji puts the original back), and pick a Color: Blue, Grey, Green, or Red. A link button, such as Leave a Review, keeps its color.
Hide it, if the message works without it
Show this button is offered only for buttons the message works without, such as Cancel on a confirmation. Turn it off to leave the button out of the message; the preview shows it faded with a Hidden badge.
Save
Click Save changes. Reset to built-in look in the gear puts one button back the way TicketCord ships it.
The buttons of the welcome message (Claim, Pin, Close, AI Help, and ModMail's Alert, Subscribe, and Mute) are restyled in each welcome design instead, where Claim and Pin also have After it is pressed for Unclaim and Unpin. See Restyling the ticket buttons.
Going back to the built-in message
In the designer, Reset to default puts the text and every button back to TicketCord's own message. It is an ordinary change: undo brings your version back, and nothing is stored until you click Save changes. The button is greyed out while the message is already the built-in one. After you save, the row loses its Customized badge.
Saving text that is the same as the built-in message stores nothing, so the message stays built in and keeps following your bot language.
Messages whose text TicketCord writes
The AI Help draft shows staff the reply the AI drafted, and sending it relies on that text. Its designer says "TicketCord writes this message's text, so only its buttons can change. Click a button to restyle it." The text, Variables, and the Assistant are not available there; its Send Now, Edit & Send, and Try Again buttons can still be restyled, and the last two hidden.
Close messages
Under Ticket closes, the first two rows pick a saved design instead of opening the designer:
- Message in the ticket: posted in the ticket channel or thread right before it closes.
- DM to the member: sent to the member who opened the ticket after it closes. It shows Off while DM when a ticket closes is off in Closing tickets → Closing rules.
Pick Default message for TicketCord's own message, or one of your designs, then click Save changes on the save bar at the bottom of the page. Click a row to preview what it sends; Edit design opens the chosen design in the designer. Both rows need Basic or higher. A design that uses welcome-only variables, such as form answers, cannot be picked here.
Close designs can use {user}, {username}, {userId}, {ticketNumber}, {subject}, {priority}, {channel}, {messageCount}, {openedAt}, {openedAtRelative}, {closedAt}, {closedAtRelative}, {duration}, {closedBy}, {closedByName}, {closedById}, {claimedBy}, {claimedByName}, {reason}, {server}, and {serverId}.
{closedBy} shows "System" for automatic closes, and {claimedBy} is empty when nobody claimed the ticket.
ModMail tickets do not use these rows: their member gets the Ticket closed DM under ModMail.
Settings
| Setting | Allowed values | Default |
|---|---|---|
| Message text and layout | Up to 4,000 characters of text across the message and up to 28 components, counting containers (except those with No card), every block, and the message's buttons | The built-in message |
| No card (per container, in Container settings) | On or off. On sends the container's blocks as plain message text, with no accent color or footer | Off |
| Accent color (per container) | Any color, or none | The built-in message's color |
| Who gets pinged (per container, in Container settings) | Any of Mentioned roles, Mentioned members, and @everyone and @here. Messages TicketCord never lets ping anyone stay that way | All three |
| Footer (last container) | Up to 2,048 characters. Enterprise only | Empty |
| Where the buttons go (Buttons) | Inside container or Outside container | Inside container |
| Button Label | Up to 80 characters. Empty keeps the built-in label | The built-in label in the bot's language |
| Button Emoji | Any emoji, or Use built-in emoji | The built-in emoji |
| Button Color | Blue, Grey, Green, or Red. Link buttons keep their color | The built-in color |
| Show this button | On or off. Only on buttons the message works without | On |
| Message in the ticket, DM to the member (Ticket closes) | Default message, or a saved design. Basic or higher | Default message |
Images follow the same rules as in welcome designs: HTTPS links on a supported image host, or uploaded in the designer. Form answer variables only work in welcome messages, so a message that contains one cannot be saved.
What happens when a message is sent
- Something triggers the message, for example a staff member claims a ticket.
- TicketCord builds its own message exactly as before. If your server has no version of it, or the bot owner's plan is below Basic, that message is sent.
- Your button looks are applied. Hidden buttons are left out. What each button does stays the same.
- If you changed the text, your containers replace the built-in text. Variables are filled in; a name the message does not have is shown exactly as typed. Lines that would only show empty values are left out (see Empty values). If every block of your version comes out empty, the built-in text is sent instead.
- The message's buttons, menus, and files follow your text, inside the last container or below the message, as set under Buttons. A file such as a transcript is always attached.
- Pings the built-in message puts on a line above its text, such as the response target pings and the ModMail reminder pings, still lead your version.
- The message is sent where it always goes. A reply only one person can see stays private.
Empty values
Some variables are empty at times, such as {reason} when no reason was given or {source} when an AI answer has no source. Like the built-in messages, your version leaves out what would only show an empty value:
-
A line is left out when it uses at least one of the message's variables and every one it uses is empty.
**Reason:** {reason}disappears when there is no reason, while{staff} closed it. {reason}stays because{staff}is filled. -
A bold label on its own line goes with the quoted line under it. In
**Reason** > {reason}both lines are left out when there is no reason. The label stays when anything else of its section is left, up to the next label or blank line.
-
A name the message does not have is text, not a variable, so it never makes a line disappear.
To keep a line whatever the values, put a filled variable or no variable on it.
Limits and gotchas
-
Basic or higher, with two exceptions. The text of the ModMail Message received and Ticket closed DM messages can be changed on every plan, since they hold your ModMail greeting and goodbye; their button looks still need Basic. If the bot owner's plan drops below Basic, TicketCord sends the other built-in messages and every built-in button look again. Your versions are kept and come back when the plan does.
-
Right away. A saved change reaches the next message the bot sends. In the rare case the save cannot reach the bot right away, it catches up within 30 seconds. Messages already sent never change.
-
Language. Built-in wording variables follow your bot language (General → Bot language). Text you type yourself is sent exactly as typed, whatever the bot language. Some built-in wording is in English in every language; Message Reference marks it.
-
Settings that already set a text become variables. Your Reminder text for inactivity reminders is
{reminderMessage}, the Message under Ask for details is{noHelloMessage}, and the ModMail reminder texts are{reminderMessage}. Those settings keep working only where your version uses the variable. The ModMail greeting and goodbye are no longer settings: they are the text of Message received and Ticket closed DM, which you edit here. -
Pings. A message that pings someone keeps pinging them with your version:
- staff alerts ping their roles;
- the approval request pings the approver role;
- the inactivity reminder pings the member while Mention the member is on and your version's Who gets pinged settings include Mentioned members.
When your text shows those mentions (for example through
{staffRoles},{approverRole},{role}, or{reminderMention}), they appear where you placed them; when it does not, they go on their own line above your text. Messages that never ping anyone, such as Member added, stay that way whatever your Who gets pinged settings say. -
The AI notice cannot be changed. The law requires AI answers to say they were written by AI, so TicketCord adds that line, with the confidence while AI assistant → Knowledge base → Answering → Show the match score is on, to the end of every version of an AI answer. It is not a variable: your text cannot move, hide or reword it. If there is no room for it, the built-in answer is sent.
-
What the AI writes is a variable. Answers, summaries, drafts, and translations reach your version as
{answer},{summary}, or{translation}. You change the layout around them, never their words. -
Buttons-only messages. The AI Help draft text is written by TicketCord; only its buttons can change.
-
Buttons still follow their settings. A button that only appears when a setting is on, such as Extend Time on reminders, still needs that setting. Restyling it never makes it appear.
-
Size. Up to 4,000 characters and 28 components including the message's buttons, the same as welcome designs. Containers and the blocks inside them have no limit of their own.
-
Footer text is Enterprise only. Saving on a lower plan removes it.
-
No card. When your last container has No card, the buttons, the AI notice, and the TicketCord footer line come right below it. Turning a container's card back on needs one free component; if the message is full, remove a block first. No card is only on this page: welcome and close designs always send each container as a card.
-
One version per server. Each server has its own versions, also when one bot serves several servers. The ModMail Server picker is sent before a server is chosen, so the bot has one version of it for all its servers, which only the bot owner can change.
-
Importing settings. Import settings from another server copies the other server's messages and button looks, replacing this server's, when the bot owner's plan is Basic or higher. A message that could not be saved here is skipped, for example one showing an image uploaded to the other server. Below Basic only the text of Message received and Ticket closed DM is copied, and this server keeps its other versions. See Dashboard overview.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| The built-in message is still sent | The save did not reach the bot right away, the bot owner's plan is below Basic, or your text is the same as the built-in text | Wait half a minute and try again. Check Plan & billing |
| The row's button reads View and opens "Customizing messages needs Basic" | The bot owner's plan is Free | Upgrade to Basic or higher |
| A line you wrote is missing from a sent message | Every variable on that line was empty for that message, such as {reason} with no reason given | Expected; see Empty values. Add text to another line, or a variable that is always filled, to keep it |
A variable is shown as typed, such as {reason} | The message does not have that variable, or the name is misspelled or has the wrong capitalization | Pick it from Variables, which lists only the message's own variables |
| A message no longer pings the member | Some messages ping whoever your text mentions, such as Close request, and your version left out {user} | Put {user} back in your text |
| A reminder no longer shows your Reminder text | Your version does not contain {reminderMessage} | Add {reminderMessage} where the text should go |
| A button you restyled does not appear | It only shows when its setting is on, such as Extend Time with Let them ask for more time | Turn the setting on. To remove a button for good, turn off Show this button |
| Show this button is missing | The message does not work without that button, such as Yes, Close Ticket | Restyle it instead |
| The text cannot be edited, only the buttons | It is the AI Help draft, whose text TicketCord writes | Restyle its buttons |
| An AI answer has a small line at the end that you did not write | TicketCord adds the AI notice to every AI answer, as the law requires | Nothing to fix: the line cannot be changed or removed |
| Members see English text in a non-English server | That part is built-in wording TicketCord sends in English, or text you typed yourself | Write your own text for it |
| Saving says "Form answer variables only work in welcome messages." | The text contains a {form.…} variable | Remove it |
| Saving says the message was changed somewhere else | Someone saved it in another tab or browser after you opened it | Click Reload latest version and make your change again |
Common questions
How do I change the text TicketCord posts when a ticket is claimed?
Go to Messages, pick In a ticket, and click Edit on Ticket claimed. Change the text, keep {staff} for the staff member's mention, and click Save changes. It needs Basic or higher.
Can I rename the Close button on reminders or translate a button label? Yes, on Basic and higher. Open the message, click the button's label in the preview, and type the new label, or click the button's gear and change Label. The gear also changes its emoji and color. The button still does the same thing.
How long until my change shows in Discord? Right away for new messages. In the rare case the save cannot reach the bot right away, within 30 seconds. Messages that were already sent do not change.
Will my custom message follow the bot language?
Only the built-in wording variables, such as {claimedTitle}, follow the bot language. Text you type yourself is sent exactly as typed in every language.
How do I undo my changes to a message? Open it and click Reset to default, then Save changes. The text and every button go back to TicketCord's own message. To reset only one button, use Reset to built-in look in its gear.
What happens to my messages if I downgrade to Free? TicketCord sends its built-in messages and buttons again. Your versions are kept and are used again when the plan is Basic or higher.
Can I remove a button from a message? Only buttons the message works without, such as Cancel on a confirmation or No Thanks on a rating request. Turn off Show this button in its gear. Buttons a message needs, such as Yes, Close Ticket, can only be restyled.
Where is the full list of messages and their variables? On Message Reference, grouped like the dashboard.
Join our Discord server for support
Was this page helpful?
Last updated on
Welcome Messages
Design the message TicketCord posts when a ticket opens, choose which tickets use it, and place individual form answers exactly where you want them
Message Reference
Every message TicketCord sends on its own that you can change on the Messages page: when it is sent, where it shows, its variables, and its buttons