Message Styles (Admin -> Message Styles) is the library of reusable alert content templates. Each Style has a Subject Template and a Body Template -- plain text you write yourself, with MA:xxx tokens that get filled in automatically when an alert fires. Because a Style is completely independent of which Channel it goes through, the same Style can be reused across every channel you have, and the same channel can carry a short Style for one rule and a long, detailed one for another.
Live preview
Next to the form is a live preview -- it renders your Subject/Body against sample data as you type, no send involved. A destination picker switches which dialect the preview renders as: pick Teams and **bold** renders bold; pick Slack and that same text shows up as the literal characters **bold**, because Slack only understands single-asterisk bold. Block-level markdown (headers, bullet lists, a horizontal rule) only renders for Teams -- everything else shows those lines literally.
Editing a Style
Click any row in the grid and it loads into the form below for editing -- the form doubles as both add-new and edit-existing. Once you're editing something, a New Style button appears to clear the form back to blank.
Deleting a Style that's still in use
If you try to delete a Style that one or more alert rules still point at, you get a dialog listing exactly which rules use it. Check the ones you want to move, pick a different Style from the dropdown, and click Reassign Selected -- repeat with a different target if you want to split the list across more than one Style. Delete Style lights up once nothing is left attached.
Token reference
| Token | Value | Notes |
|---|---|---|
MA:jobname | The job's name | |
MA:jobdesc | The job's description field | Blank if the job has no description set. |
MA:stepname | The step's name | Blank for a job-level alert. |
MA:server | The target server the job/step runs against | Step's own target server if it has one, else the job's. |
MA:status | Succeeded or Failed | |
MA:datetime | 2026-08-29 00:46:54Z | |
MA:date | 2026-08-29 | |
MA:time | 00:46:54 | |
MA:error | The step's error message | Blank if the step didn't fail with one. |
MA:data | The step's result data | Rendered as a small, readable table. |
A token with nothing to fill in is just replaced with nothing -- never left showing literally, and never an error. One Style can technically be reused for both job-level and step-level rules, but a line like Step: MA:stepname will simply read Step: on a job-level alert -- write two Styles instead if that looks odd.
Cross-platform formatting
Read this before writing a Style you intend to reuse across more than one kind of channel: every destination has its own, slightly different markup rules. A Style is just text -- nothing translates it per destination.
| Destination | Bold | Italic | Links |
|---|---|---|---|
| Teams | **bold** | *italic* | [text](url) |
| Slack / Mattermost / Rocket.Chat | *bold* | _italic_ | <url|text> |
| Discord | **bold** | *italic* or _italic_ | Plain URL (auto-links) |
| Google Chat | *bold* | _italic_ | <url|text> |
| Plain text only -- no markup renders at all | |||
The two things that actually catch people out: (1) Slack/Mattermost/Rocket.Chat/Google Chat use single asterisks for bold, while Teams and Discord use double asterisks -- write **bold** and send it to Slack, and Slack shows the literal characters. (2) Links: Slack/Google Chat use pipe-delimited link syntax; Teams/Discord/most everything else use standard markdown link syntax.
Text color and font size aren't supported on any destination -- every one of these is a plain-text field. Two practical approaches: write one Style per destination family (a "Failure - Slack" Style and a separate "Failure - Teams" Style, each attached to its own channel's rules), or write one plain-text Style with no markup at all, which renders identically everywhere including email.
See also: Setting Up an Alert Rule.