DocsReference

Formatting

How to format any message Sortr sends: markdown, mentions, emoji, links, embeds, images and Discord's limits.

Every message Sortr sends is written in the same editor, so the same rules apply on all three screens that have one: Panel message, Opening message and Ticket Messages. This page covers what you can put in a message and the limits Discord sets.

Dashboard › your server › a panel › Panel message, Opening message or Ticket Messages

#Text and embeds

A message has two parts. The Message box is plain text shown above everything else. Below it you can add up to 10 embeds, the boxed cards with a coloured bar down the left. You can use either or both, but a message needs something in one of them. The parts of an embed are described on Panel message.

Placeholders like {user} are filled in when Sortr sends the message. See Variables.

#Markdown

Discord's markdown works in the message text, in embed descriptions and in field values.

TypeShows as
**bold**bold
*italic*italic
__underline__underlined text
~~strikethrough~~crossed-out text
||spoiler||hidden until someone clicks it
`code`inline code
``` on its own line before and aftera code block, with Discord's copy button
# Heading, ## Heading, ### Headinga large, medium or small heading, at the start of a line in the message text or a description
> quotea quoted line
- itema bulleted list
[our rules](https://example.com/rules)a link reading "our rules"

The dashboard's preview draws headings, bold, italic, underline, code, code blocks, links and mentions. Strikethrough, spoilers, quotes, lists and [text](link) links show as you typed them in the preview, but Discord formats them in the real message.

#Mentions

In the Message box, a description or a field value, type @ to pick a role, @everyone or @here, or # to pick a channel. The list narrows as you type, and only offers roles and channels Sortr can see. Picking one writes Discord's own code, such as <@&123…> for a role or <#123…> for a channel, which the preview and Discord show as @Support or #general.

Once you have typed two letters after the @, the list also offers up to six of the server's members whose name starts with those letters, under Members below the roles. Bots are left out. Picking one writes a mention of that member, which the preview shows with their name, such as @Ren Oakley. After the page is reloaded the preview shows it as @member, and Discord still shows the right person. Sortr keeps nothing about the search.

To mention whoever a message is about, use variables: {user} for the member and {staff} for the staff member who acted. {staff.roles} mentions the panel's support roles.

#When a mention pings

Mentions inside an embed never ping anyone. They only show as names. In the message text, each message allows its own pings, listed below. A member you picked by name from the @ list does not add to them: they are pinged only if they are someone the message may ping anyway, such as the ticket owner in the opening message.

MessageWhat its text can ping
Panel messageNobody. Member and role mentions, @everyone and @here show without pinging, when the panel is sent and when it is updated.
Opening messageOnly the member and the panel's support roles. Other roles, @everyone and @here show without pinging.
Ticket reopenedOnly the ticket owner.
Member addedOnly the person added.
Quiet ticket reminderOnly the roles picked under Automations, and silently, with no push notification.
Close confirmation, Ticket closed, Closed for inactivity, Close message to the member, Before deletion, Member removed, Transcript log entry, and the messages shown when a ticket cannot openNobody.

Text members write themselves, such as their name, a close reason or a form answer, is shown as typed. An @everyone or role mention in it is plain text and never pings, a name that looks like a variable is not filled in, and a [text](address) link in it shows as text instead of becoming a link.

#Emoji

  • Standard emoji: paste the emoji itself. Shortcodes such as :smile: stay as text in Sortr's messages.
  • Custom emoji: write <:name:id>, or <a:name:id> for an animated one. To get the code, type a backslash before the emoji in Discord, like \:partyblob:, and send it. It only shows if Sortr is in the server the emoji comes from. The dashboard preview shows the code rather than the picture.

Buttons and ticket options have their own emoji picker. See Buttons.

  • A web address starting with https:// becomes a link on its own.
  • Write [text](address) to link some words. If the address comes from a variable that turns out empty, such as {transcript.link} when no transcript was kept, Sortr leaves the whole link out rather than showing a broken one.
  • A link to a Discord channel or message shows as that channel's name.
  • The Title link and Author link boxes make an embed's title or author clickable. They take a whole web address starting with http:// or https://, and variables are not filled in there. Anything else stops the save, with a message such as "The panel message: the title link has to be a whole web address, starting with https://."

For each link in the message text, Discord adds a preview card under the message when the site offers one, with the site's name, a title and often a picture. Links inside embeds never get a card.

To keep the links but drop the cards, turn off Show link previews under the Message box. Each message has its own switch, and it starts on. With it off, Sortr writes every link in the text as <https://…> when it sends the message, which is Discord's own way of asking for no card. The links still work. Links that a variable or a form answer brings in lose their card too, and links in code stay as typed. A panel that is already posted changes when you press Update.

The preview shows a grey card where Discord would add one. To drop the card for a single link by hand, write <https://example.com>, or [our rules](<https://example.com/rules>) for a link with words.

#Embeds and their limits

These are Discord's limits. Each box in the editor counts as you type and stops at its limit.

PartLimit
Message text2,000 characters
Embeds on one message10, or 4 on the opening message while the form is on with its answers shown in the ticket
Author name256 characters
Title256 characters
Description4,096 characters
Fields25 per embed
Field name256 characters
Field value1,024 characters
Footer text2,048 characters
All embed text on one message6,000 characters: author names, titles, descriptions, fields and footers added together
  • The Embed text counter under the embeds shows the 6,000 total for the whole message.
  • A field needs both a name and a value. Sortr leaves out a field that is missing either.
  • An embed with nothing but a colour or a footer is left out, and text that is only spaces counts as nothing. Give it a title, description, author, image, thumbnail or a complete field. The dashboard counts such an embed as empty too, so a message that would be sent blank cannot be saved: the save bar says, for example, "The panel message is empty. Discord refuses a message with no text and no embed."
  • Inline fields sit side by side, up to three in a row.

#Variables and length

Variables count as the text they become, which Sortr only knows when it sends. A long member name or a 4,000-character form answer can push a message past a limit you were within when you saved. Sortr then shortens the text rather than letting Discord refuse the message: it cuts from the last embed backwards, longest parts first, and marks each cut with "…". Message text over 2,000 characters is cut at 2,000.

#Images

Each embed has four image slots: Author icon, Thumbnail, Image and Footer icon. Press one to upload a picture, or drop one on it. You cannot paste an image address.

  • PNG, JPEG, GIF or WebP, under 8 MB each.
  • A big picture, over 1 MB or more than 2560 pixels on its longer side, is made smaller in your browser before it is uploaded: at most 2560 pixels, usually saved as WebP. It looks the same in Discord, and posts with it send faster. The 8 MB counts after that, so a photo of up to 40 MB can still fit. GIFs and other animated images go as they are.
  • Each server can store up to 100 images or 200 MB, and each Discord account up to 300 MB across every server it uploads to, or 40 MB for an account less than 30 days old. Past that, the upload says "You have used up your image storage across your servers (300 MB)." (or 40 MB for a new account). Sortr's storage for all servers together has a limit too: "Sortr's image storage is full right now. Try again later or remove unused images." When it is nearly full, an account or a server that already keeps a lot of images can't add more for now: "Sortr's image storage is nearly full, so accounts and servers that already keep a lot of images can't add more for now. Take images you no longer need out of your panels, or try again later."
  • An image removed after a report can't be uploaded again, in any server: "This image was removed from Sortr after a report, so it can't be used again."
  • One message can carry up to 10 uploaded images, 25 MB together. A save past either is refused, for example "Panel message: its uploaded images add up to 31 MB, and one message can carry 25 MB."
  • A refusal reply, such as "You can't open this kind of ticket", and the close confirmation attach no files, so they answer at once. Their uploaded images still show, loaded from their link on Sortr's site.
  • An image no panel in its own server uses any more is deleted automatically, at the earliest three days after it was uploaded, which frees the space. A panel in another server that names it does not keep it.
  • Copy to other servers copies a panel's images into the server it lands in, so the copy keeps its pictures. They count towards your 300 MB.
  • Sortr attaches the file to the message itself, so the picture keeps working without depending on a link.

An image slot only ever holds one of your uploads, a variable such as {user.avatar}, or an address starting with https://. The preview shows uploads and pictures from Discord straight away. An image from any other site, which can only be there if it was saved some other way, shows as "External image:" and the site's name, with a Load button. Nothing is fetched from that site until you press it, and then only until you close the page.

#What the dashboard blocks before you save

Save changes is blocked while the panel holds something Discord would refuse, or something Sortr would have to swap or drop. The save bar names the first problem and the section it is in, such as "Opening message · The opening message is empty. Discord refuses a message with no text and no embed.", with "and 2 more" when there are others. It shows on every screen of the panel, not only the one with the problem. Save & update, Save & send and Save and open refuse for the same reasons.

The save bar with Save changes greyed out and the problem Questions · The form is on but has no title. Type one, or switch the form off.
A blocked save: the save bar names the section and the problem.
Section namedWhat blocks the save
Panel messageThe panel message has no text and no embed content (a footer on its own, text that is only spaces, and a field without both a name and a value do not count), its embeds add up to more than 6,000 characters, or a Title link or Author link is not a whole web address.
Opening messageThe same three checks, for the opening message.
Ticket MessagesThe same three checks, for every notice that is switched on.
ButtonsAn option with no label (a button may have an emoji instead), no panel to open, or a panel that was deleted. A label over 80 characters on a button or 100 in a menu, or a menu description over 100. An emoji Discord would not accept. Who can use it on Only these roles with no role picked.
Ticket buttonsA shown button with neither text nor emoji. A button with its emoji switched on and no emoji picked, or one Discord would not accept.
QuestionsThe form on with a blank title, with no questions, with a question whose length limits are impossible, or with a file question that takes fewer than 1 or more than 10 files. The Google Sheet on with a bad link, no Tab, no columns, a column that is not letters, or two things in the same column.
Ticket channelA channel name pattern that is typed but leaves nothing Discord accepts as a name. A blank pattern is allowed.
Destination categoryCreate a new category when these are full switched on with an empty name, a name over 100 characters, or {number} more than once in the name.
Limits and rulesSupport hours on with no days picked, with a time that is not a full time like 09:00, or with a time zone Sortr does not recognise.
IntegrationsA switched-on webhook with an address Sortr cannot use or no events, two switched-on webhooks with the same address, or a webhook with no valid signing secret.

The other limits in the table of embed limits cannot be broken in the first place, since each box stops at its own limit and Add embed stops at the last embed. See Limits reference for every limit in one place.

Something unclear or out of date? Tell us and we will fix it.

Updated 4 November 2026