Slack's formatting system looks like markdown at first glance, but it's actually a different format called mrkdwn (yes, without the 'a'). The differences are subtle but cause real problems when you try to paste markdown-formatted text from AI tools into Slack.
Quick reference
| Feature | Markdown | Slack mrkdwn |
|---|---|---|
| Bold | **text** | *text* |
| Italic | *text* or _text_ | _text_ |
| Strikethrough | ~~text~~ | ~text~ |
| Inline code | `code` | `code` |
| Code block | ``` | ``` |
| Link | [text](url) | <url|text> |
| Blockquote | > text | > text |
| Ordered list | 1. text | 1. text |
| Unordered list | - text | - text |
| Headings | # text | Not supported |
| Tables | Pipe syntax | Not supported |
| Images |  | Not supported |
| Horizontal rule | --- | Not supported |
| Task lists | - [ ] text | Not supported |
The biggest differences explained
Bold: single vs double asterisks
This is the most common source of confusion. In standard markdown, *text* is italic and **text** is bold. In Slack mrkdwn, *text* is bold and there's no separate syntax for bold italic.
When you paste **important deadline** from ChatGPT into Slack, you see the literal asterisks instead of bold text. Slack doesn't recognize double asterisks.
Links: completely different syntax
Markdown links look like [click here](https://example.com). Slack links look like <https://example.com|click here>. The square brackets, parentheses, and angle brackets are entirely swapped.
Pasting a markdown link into Slack shows the raw [text](url) syntax instead of a clickable link.
Headings: don't exist in Slack
Markdown has 6 heading levels (# through ######). Slack has none. There's no way to create a heading in a Slack message. The closest equivalent is bold text on its own line.
Tables: not possible
Markdown tables use pipe characters and dashes. Slack has no table rendering capability whatsoever. Pipes and dashes display as plain text.
What works the same
A few elements are identical in both formats:
- Inline code:
`code`works in both - Code blocks: Triple backticks work in both (though Slack ignores language labels)
- Blockquotes:
> quoted textworks in both - Lists: Basic unordered (
-) and ordered (1.) lists work in both
Why Slack chose a different format
Slack was built before markdown became the standard for AI tools. Their mrkdwn format was designed for quick messaging:
- Single asterisks for bold is faster to type than double
- Angle-bracket links work with Slack's internal link system (channels, users, emojis)
- No heading support because messages are short, not documents
This made sense for chat in 2013. But now that people regularly paste long, structured AI output into Slack, the mismatch creates constant friction.
How to convert between them
Unmarkdown™ automatically translates standard markdown to Slack mrkdwn:
- Paste your markdown (from ChatGPT, Claude, or any source) into Unmarkdown™
- Click "Slack"
- The output is proper mrkdwn that Slack renders correctly
Conversions include:
**bold**becomes*bold**italic*becomes_italic_~~strike~~becomes~strike~[text](url)becomes<url|text># Headingbecomes*Heading*(bold, since headings don't exist)- Tables become readable plain text
Slack's Block Kit: the advanced alternative
For Slack app developers, Block Kit provides rich formatting capabilities beyond mrkdwn, including headers, dividers, and image blocks. But Block Kit is only available through the Slack API, not through the message composer.
For regular users pasting content into Slack, mrkdwn is the only option.
When to use Slack vs other destinations
Consider where your content will be most readable:
- Quick summaries and updates: Slack is fine
- Documents with structure: Google Docs or Word
- Professional communication: Email
- Notes with full formatting: OneNote
Unmarkdown™ supports all of these from the same interface, so you can try different destinations and see which one works best for your content.
