Markdown to Slack: format messages and mrkdwn
Slack doesn't render standard markdown. Its message box understands its own formatting language, mrkdwn, where bold is a single asterisk and headers don't exist at all. Write in familiar markdown here and get two outputs: rich text for the normal Copy button that pastes bold, italics, strikethrough, code, lists, and quotes straight into Slack's composer, and a "Copy Slack mrkdwn" button for the Slack API, Block Kit `mrkdwn` fields, Workflow Builder, and incoming webhooks.
Headings become bold lines, since Slack messages have no heading levels. Tables flatten into readable "Header: value" text, since Slack has no table syntax. Underline and spoiler tags aren't supported by Slack and are dropped.
Features for Slack
- Rich Text Paste: Copy formatted text that keeps bold, italics, strikethrough, code, lists, and quotes when pasted into Slack's message box.
- Slack mrkdwn Copy: A separate "Copy Slack mrkdwn" button outputs Slack's own syntax for the API, Block Kit, Workflow Builder, and webhooks.
- 40,000 Character Counter: Track your message length against Slack's 40,000-character limit as you write.
How to use Markdown for Slack
- Write: Draft your message in standard markdown: headers, bold, italics, lists, quotes, code, and links.
- Preview: Check how it will look pasted into Slack, including where headings collapse to bold lines and tables flatten to text.
- Copy: Use Copy for rich text to paste into the Slack message box, or "Copy Slack mrkdwn" for the API, Block Kit, or webhooks.
- Send: Paste into Slack, or send the mrkdwn output through the API or a workflow.
Frequently asked questions
- Is Slack bold one asterisk or two?
- One. Slack mrkdwn uses `*bold*` with a single asterisk on each side, unlike GitHub or Discord markdown, which use `**bold**`. Pasting `**bold**` into Slack shows the literal asterisks instead of bold text.
- Does Slack support headers?
- No. Slack messages have no heading levels. Markdown2Social converts `#` headers into bold lines instead of dropping them, since that's the closest Slack equivalent.
- How do I paste formatted text into Slack?
- Copy the rich text output with the regular Copy button and paste it into the Slack message box. Slack's composer accepts a rich-text paste and keeps bold, italics, strikethrough, inline code, lists, and quotes.
- What is Slack mrkdwn and when do I need it?
- mrkdwn is Slack's plain-text markup language: `*bold*`, `_italic_`, `~strike~`, and `<url|link text>`. Use the "Copy Slack mrkdwn" button when you're sending text through the Slack API, a Block Kit `mrkdwn` text field, Workflow Builder, or an incoming webhook, since those accept mrkdwn syntax rather than a rich-text paste.
- Does Slack support bullet and numbered lists?
- Slack has no native list markup. The rich-text paste keeps bullet and numbered lists when pasted into the message box. In mrkdwn output, lists are written as "• " lines, since mrkdwn has no list syntax of its own.
- What is Slack's message character limit?
- 40,000 characters per message. The editor tracks this live as you write.
Slack mrkdwn syntax reference
Slack's message box does not render standard markdown — it renders mrkdwn, Slack's own plain-text markup language. The two look similar but differ in the details that matter most: single asterisks for bold instead of double, no headers, and no native list syntax. This reference covers the mrkdwn Markdown2Social's "Copy Slack mrkdwn" button produces for the Slack API, Block Kit, Workflow Builder, and incoming webhooks.
Bold, italics, strikethrough, and code
*bold*— a single asterisk on each side, not the double asterisk standard markdown and Discord use._italic_— a single underscore on each side.~strike~— a single tilde on each side, not double.- `
code` for inline code, and triple backtick fenced blocks for multi-line code.
Headers, lists, and quotes
- No header syntax exists in mrkdwn. Markdown2Social converts
#,##, and###headers into bold lines. - No native list markers exist either. mrkdwn represents lists as plain "• " lines rather than
-or1.. >at the start of a line quotes that line, the same as standard markdown block quotes.
Links, mentions, and escaping
- Links use
<https://example.com|link text>— angle brackets with a pipe, not the[text](url)markdown syntax. - User and channel mentions use
<@U123>and<!here>,<!channel>, or<!everyone>. - The characters
&,<, and>must be escaped as&,<, and>when building mrkdwn for the API, since Slack parses them as syntax otherwise.
Rich text paste vs. mrkdwn copy
For a message you're typing directly into Slack, use the regular Copy button: it produces rich text that Slack's composer accepts as a formatted paste, keeping bold, italics, strikethrough, code, lists, and quotes without you typing any mrkdwn by hand. For anything going through the Slack API, a Block Kit mrkdwn text field, Workflow Builder, or an incoming webhook, use "Copy Slack mrkdwn" instead — those integrations expect mrkdwn syntax, not a rich-text paste.
What Slack will not format
Underline and spoiler tags have no mrkdwn equivalent and are dropped. Tables have no mrkdwn syntax either, so they flatten to "Header: value" lines. Slack's preference pane has a "Format messages with markup" toggle that renders some raw markdown symbols typed directly into the message box, but it doesn't add support for headers or lists, and Slack's mobile apps don't support it at all — the rich-text paste from this editor works everywhere the toggle doesn't.