docs(blog): add Quoted Replies and Threaded Replies post#2851
Conversation
Adds a feature blog post covering both quoted replies and threaded replies, with code examples in TypeScript, .NET, and Python. The post includes problem framing, real-world scenarios, wire-format explanations, per-SDK code in flat sections (no MDX Tabs), a decision table for picking between the two features, and a cross-SDK parity table. Two Teams UI screenshots illustrate what each feature looks like to the end user. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A '… +186 lines (ctrl+o to expand)' string from a copy/paste of rendered transcript output ended up between the capability table's header and separator rows. Removed it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Merge "What You Can Do" and "Cross-SDK parity" into one table near the top, with TypeScript / .NET / Python columns. Drop the standalone parity section. Move its closing line under the merged table. - Tighten the intro run-on, drop a backstory clause that didn't add context, and remove a decorative closing line in "The Problem". - Simplify several scenario and section sentences without losing the conversational tone. - Drop both experimental-status mentions; both features are GA by the time the post publishes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The bare method names render comfortably in the table. The class-scope context is preserved in the code snippets below, where it actually matters for compiling/running the example. context./ctx./Context./app./ teams. prefixes stay because they disambiguate context.reply() (reactive auto-quote) from app.reply() (proactive thread send). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
nickwalkmsft
left a comment
There was a problem hiding this comment.
Overall the problem -> solution structure is good and useful, but in this case I think the larger framing should be that this is presenting a big and very important step change in interaction and implementation guidance that affects both the code written and the user experience. That guidance should be louder and more authoritative - "there's a better way now, this is the way forward, start using this today."
Adds three new sections, edits scenarios to address Nick's review comments, generalizes channel-specific language, and adds jump-links from scenarios to the code sections that implement them. - Add "Why now" section covering the messaging-service change for QR, the upcoming threading expansion for TR, and the small cleanup story. - Add "The SDK handles the conversation type for you" stance section so readers don't have to track chat vs channel; the SDK abstracts it. - Add "More on the technical (skip if not interested)" section near the bottom describing the QR wire-format shift (client-built HTML to server-validated entity) and why it enabled the proactive APIs. - Edit Scenario 1 to make explicit that context.reply() does threading and auto-quoting at once; the "At a Glance" row now recaps rather than surprises. - Edit Scenario 2 to clarify "root" with a parenthetical and frame this as filling an SDK gap, not a new platform feature. - Edit Scenario 3 to answer the "do quotes stack at the top" question inline. - Edit Scenario 4 to drop the "most agents won't need it" framing. - Add jump-links from each scenario to the code sections it references (Scenario 2 and 3 each link to two sections). - Move the QR wire-format paragraph from the top of the section to above "Reading inbound quotes", where it's most useful. - Rename "Quoted Replies on the Wire" / "Threaded Replies on the Wire" to plain "Quoted Replies" / "Threaded Replies". - Generalize "channel" to "conversation" where the point applies to any conversation type, since threading is expanding to chats and meetings. - Tighten the QR image alt text and add a caption clarifying that the reader is looking at an agent reply with the original message in the quote bubble above. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
araheja0704
left a comment
There was a problem hiding this comment.
The post overall looks really good - the problem -> solution structure lands cleanly and the "Which one do I reach for?" decision table is a really useful artefact. Some things to consider:
- Are we scoping channel-heavy in some of our scenarios/examples? We mention that the APIs are surface-agnostic but maybe a more even distribution of scenarios between chat and channel will help that come across more
- Maybe I am misremembering but we didn't mention the max-quote limit (5 if I remember correctly?) - is that no longer a thing?
- Do we think it's worth mentioning up-front before the Appendix-like technical section what exactly changed from the old support of the SDK to the new version?
But once again overall this is in very strong shape :) Excited for release!
There was a problem hiding this comment.
Pull request overview
Adds a new Teams SDK blog post introducing quoted replies and threaded replies, with cross-SDK examples and UI screenshots to explain when/how to use the new APIs.
Changes:
- New blog post content covering quoted replies + proactive thread replies, including “why/when”, scenario walkthroughs, and wire-format notes.
- Adds embedded screenshots illustrating quoted reply, threaded reply, and multi-quote message formatting.
Reviewed changes
Copilot reviewed 1 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| teams.md/blog/2026-05-13-quoted-and-threaded-replies/index.mdx | New feature blog post with scenario-driven guidance and TypeScript/.NET/Python snippets, plus embedded images. |
| teams.md/blog/2026-05-13-quoted-and-threaded-replies/quoted-reply-bot-response.png | Screenshot asset used by the post. |
| teams.md/blog/2026-05-13-quoted-and-threaded-replies/threaded-reply-channel.png | Screenshot asset used by the post. |
| teams.md/blog/2026-05-13-quoted-and-threaded-replies/multi-quote-message.png | Screenshot asset used by the post. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Summary
The Problem→What You Can Docapability table →Real-World Scenarios→ wire-format deep dives per feature →At a Glancedecision table → cross-SDK parity table.<Tabs>), with#### TypeScript / #### .NET / #### Pythonsubheadings under each operation.Files
teams.md/blog/2026-05-13-quoted-and-threaded-replies/index.mdx(384 lines)teams.md/blog/2026-05-13-quoted-and-threaded-replies/quoted-reply-bot-response.pngteams.md/blog/2026-05-13-quoted-and-threaded-replies/threaded-reply-channel.pngTest plan
npm run docs:buildsucceeds locally/blog/quoted-and-threaded-repliesrequire()paths resolve in the build output (small PNG inlines as base64, larger one bundles as a separate asset)