Unmarkdown
Slack

Why Slack Formatting Breaks When You Paste from ChatGPT

Updated Feb 20, 2026 · 3 min read

You copy a well-structured ChatGPT response, paste it into Slack, and the formatting is a mess. Double asterisks appear instead of bold text. Hash marks litter the message. Tables are unreadable.

The reason? Slack doesn't use markdown. It uses something called mrkdwn, and the two formats are frustratingly different.

Markdown vs mrkdwn: the key differences

Standard markdown (used by ChatGPT, Claude, Gemini, and most AI tools):

  • Bold: **text** (double asterisks)
  • Italic: *text* (single asterisks)
  • Strikethrough: ~~text~~ (double tildes)
  • Links: [text](url)
  • Headings: # text

Slack's mrkdwn:

  • Bold: *text* (single asterisks)
  • Italic: _text_ (underscores)
  • Strikethrough: ~text~ (single tilde)
  • Links: <url|text>
  • Headings: not supported at all

When you paste markdown into Slack, the double asterisks for bold don't render (Slack expects single asterisks). The [text](url) link format is ignored. And headings? Slack simply doesn't have them.

What breaks specifically

Bold text

ChatGPT writes **important**. Slack expects *important*. Result: you see literal double asterisks.

Headings

ChatGPT writes ## Section Title. Slack has no heading concept. Result: you see ## Section Title as plain text.

Tables

ChatGPT writes pipe-separated tables. Slack has no table support. Result: a jumble of pipe characters and dashes.

ChatGPT writes [Click here](https://example.com). Slack expects <https://example.com|Click here>. Result: the link syntax is displayed literally.

The fix: convert to mrkdwn first

Unmarkdown™ translates standard markdown to Slack's mrkdwn format before you paste:

  1. Copy the ChatGPT response
  2. Paste into unmarkdown.com/for-slack
  3. Click "Slack" in the destination bar
  4. Paste into Slack

The conversion handles all the syntax differences:

ElementMarkdownSlack mrkdwn
Bold**text***text*
Italic*text*_text_
Strikethrough~~text~~~text~
Code (inline)`code``code`
Code blocksTriple backticksTriple backticks
Links[text](url)<url|text>
Headings# text*text* (bold fallback)
Blockquotes> text> text

What about tables in Slack?

Slack simply cannot render tables. No formatting trick or syntax conversion changes this. When Unmarkdown™ encounters a markdown table, it formats the data as clean, readable plain text that makes sense in a Slack message.

It's not as pretty as a table, but it's readable. This is the best anyone can do within Slack's limitations.

What about code blocks?

Code blocks are one of the few things that work similarly in both markdown and mrkdwn. Both use triple backticks. Slack renders them with a gray background and monospace font.

One difference: Slack ignores language labels after the opening backticks. So while ChatGPT writes ```python, Slack just shows a generic code block. No syntax highlighting.

Tips for better Slack messages from AI output

  1. Keep it concise. Long AI responses overwhelm Slack channels. Consider summarizing before pasting.
  2. Break up long responses. Send key sections as separate messages with bold headers.
  3. Use threads. Paste detailed AI output in a thread reply, not the main channel.
  4. Skip the tables. If the AI response has comparison tables, consider reformatting as bullet lists for Slack.

Other destinations

If Slack's limitations are too restrictive for your content:

  • Google Docs supports headings, tables, and full rich text
  • Word gets native heading styles and proper table formatting
  • Email supports tables, blockquotes, and full formatting
  • OneNote handles all 6 heading levels and styled tables

Your markdown deserves a beautiful home.

Start publishing for free. Upgrade when you need more.

View pricing