Markdown in Microsoft Teams
Teams converts a subset of Markdown as you type — bold, italic, code, quotes, headings and lists all work. Tables, images and links with custom text do not, and the subset changes again inside Adaptive Cards, which is where most of the confusion comes from.
The preview is standard Markdown — the second half is what Teams ignores
Result
What a message supports
| Format | Syntax | Notes |
|---|---|---|
| Bold | **bold** | Converts as you type |
| Italic | _italic_ or *italic* | Either works |
| Strikethrough | ~~struck~~ | Two tildes, as standard |
| Inline code | `code` | Monospace, no highlighting |
| Code block | three backticks, then Enter | Language hint ignored |
| Quote | > quoted | One level only |
| Heading | # to ### | Three levels |
| Bulleted list | - item | Nests with indentation |
| Numbered list | 1. item | Renumbers itself |
| Link with text | none | Bare URLs link themselves |
| Image | none | Paste or attach instead |
| Table | none | Toolbar, or paste from Excel |
Enter sends. That is the real problem.
By default Enter sends the message, which is why so many Teams messages arrive in three pieces. Shift+Enter inserts a line break instead, and expanding the compose box switches the two round so Enter behaves like an editor.
Learn one of those before writing anything with a list in it.
Getting a table in
Markdown table syntax renders as pipes. Three things that work, in order of how well:
- Paste it from a spreadsheet. Teams accepts a table copied from Excel and turns it into a real table. Build the columns in the table generator, take the CSV, paste it into a sheet, copy, paste again.
- The formatting toolbar. Expand the compose box, Insert table. Fine for something small typed by hand.
- A code block with hand-aligned columns, when the message has to stay plain text. Monospace is the only thing that keeps alignment.
Cards are a different subset
Adaptive Cards — what bots, workflows and connectors post — support a narrower set than messages do. No headings, no images by Markdown, and the supported inline formats vary by host application.
This is a genuine trap rather than a detail: a message that renders correctly when a person types it can break when the same text goes through a workflow into a card. Tables in cards come from card elements rather than from Markdown, so anything relying on syntax has to be rebuilt.
Test card content in a card. Testing it in a message proves nothing.
Pasting a document in
Pasting raw Markdown gives you raw characters — Teams converts as you type, not as you paste. Copy as rich text instead and the formatting arrives intact.
Open the document in the editor and use Export → Copy as rich text. For anything longer than a few paragraphs, an attached file or a Loop component is a better home than a chat message.
Common questions
- Does Microsoft Teams support Markdown?
- A subset, and it converts as you type rather than storing the characters. Bold, italic, strikethrough, inline code, code blocks, quotes, headings and lists all work in a message. Tables, images by syntax and links with custom text do not.
- How do I make a code block in Teams?
- Three backticks then Enter, which opens a code block in the compose box. Shift+Enter inside it adds a line without sending. The language hint after the backticks is ignored — Teams has no syntax highlighting in messages.
- How do I make a table in Teams?
- Not with Markdown — pipes render literally. Use the formatting toolbar's Insert table, paste a table copied from Excel or Word, or fall back to a code block with hand-aligned columns when the message has to stay plain.
- Why did my message send before I finished typing?
- Enter sends by default. Use Shift+Enter for a new line, or switch the compose box to the expanded view where Enter inserts a line break instead. This is the reason so many Teams messages arrive in three pieces.
- Is Markdown different in Teams cards and bots?
- Yes, and it is a genuine trap. Adaptive Cards support a narrower subset than messages — no headings and no images by Markdown, though they do support tables through card elements rather than syntax. A message that renders correctly can break when moved into a card.
- Can I paste Markdown into Teams?
- Pasting plain Markdown gives you the raw characters. Copy it as rich text instead and Teams accepts the formatting — the editor here has a Copy as rich text export for exactly this.