Why Microsoft Teams Does Not Render Markdown
Teams uses a rich-text editor with a few typed shortcuts, not a Markdown parser. That is why pasted syntax stays literal — and why a rich-text paste fixes it.
Direct answer
Teams stores messages as rich text, not as Markdown. A small set of shortcuts fires while you type, but nothing parses the clipboard, so pasted syntax stays literal. Behaviour also differs between chat and channel posts. The reliable fix is to put formatted HTML on the clipboard: convert here, press Copy Rich, and paste.
Open Markdown to Teams converterWhen to use this
- You want to know whether Teams will ever render your Markdown.
- Formatting works one day and not the next, and you want the reason.
- You are deciding between typing in Teams and converting outside it.
Steps
- Accept that pasted Markdown will not be parsed by Teams.
- Draft in Markdown wherever you like — notes, a repo, an AI chat.
- Convert the draft in the input box on this page.
- Press Copy Rich to load formatted HTML onto the clipboard.
- Paste into chat or a channel post; use Shift+Enter in chat to avoid sending early.
Example conversion
# Why this keeps happening Teams has *no* Markdown parser for pasted text. 1. You copy Markdown source 2. Teams stores it as plain characters 3. The message shows `##` and `**` literally --- Convert first, then paste.
<h1 style="font-family:'Segoe UI',system-ui,sans-serif;font-size:22px;font-weight:600;margin:18px 0 8px;color:#171717;">Why this keeps happening</h1> <p style="font-family:'Segoe UI',system-ui,sans-serif;font-size:14px;line-height:1.5;color:#242424;margin:10px 0;">Teams has <em>no</em> Markdown parser for pasted text.</p> <ol style="font-family:'Segoe UI',system-ui,sans-serif;font-size:14px;line-height:1.5;color:#242424;margin:10px 0;padding-left:22px;"><li style="margin:4px 0;">You copy Markdown source</li><li style="margin:4px 0;">Teams stores it as plain characters</li><li style="margin:4px 0;">The message shows <code style="font-family:Consolas,'Courier New',monospace;font-size:13px;background:#f3f3f3;padding:2px 5px;border-radius:3px;">##</code> and <code style="font-family:Consolas,'Courier New',monospace;font-size:13px;background:#f3f3f3;padding:2px 5px;border-radius:3px;">**</code> literally</li></ol> <hr style="border:none;border-top:1px solid #d1d1d1;margin:16px 0;"> <p style="font-family:'Segoe UI',system-ui,sans-serif;font-size:14px;line-height:1.5;color:#242424;margin:10px 0;">Convert first, then paste.</p>
Common mistakes
- Do not assume a Teams update will fix it. The editor is rich text by design, not a Markdown surface.
- Do not mix approaches in one message. Type formatting or paste formatting, not both.
- Do not judge the result from the compose box alone. Send a test message to yourself and check chat and channel separately.
FAQ
- Do Teams bots and webhooks support Markdown?
- That is a separate path. Messages sent through the Bot Framework or as Adaptive Cards support a limited Markdown subset. This tool targets the human compose box, where pasting is the mechanism.
- Why is chat different from a channel post?
- The compose experiences differ. In chat, Enter sends and the message area is compact; in a channel post you get a title field, more room, and Enter adds a line break. Formatting from a rich paste works in both.
- Does the converter change how Teams behaves?
- No. It only changes what is on your clipboard. Teams still does exactly what it always does with pasted rich text.
- What if my organisation blocks rich paste?
- Some managed configurations force plain-text paste. In that case use the plain-text fallback, which strips the Markdown markers so the message is at least readable.
Related Teams guides
How to Paste Markdown Into Microsoft Teams
Teams does not parse Markdown on paste, so **bold** and [link]() stay literal. Convert to rich HTML, press Copy Rich, then paste into the Teams compose box.
How to Format Code Blocks in Microsoft Teams
Teams code blocks need the built-in Code snippet control or an exact typed sequence. Pasted triple backticks stay literal. Convert first so code arrives as a monospace block.
How to Send ChatGPT Output in a Teams Message
AI answers are Markdown. Pasted into Teams they show raw ## and ** characters. Convert the answer to rich HTML and paste it as formatted text.
How to Put a Markdown Table Into Teams
Pipe tables paste into Teams as rows of vertical bars. Convert the table to real HTML table markup first, then paste as rich text.