Hi Michelle,
Thank you for the categorisation — it's very useful. Before we go further I want to correct the scope so your guidance targets the right surface, and then flag which items we still need Microsoft's help to resolve.
Hosting model (for context)
Our application is not a Copilot Studio web-chat or a Microsoft 365 Copilot Chat experience. It is a custom Teams app consisting of:
- A custom Bot Framework bot (Node.js / TypeScript, hosted on Azure App Service) — this is the primary in-Teams chat surface.
- An orchestrator API (Azure Functions) that routes each turn to the correct downstream agent (Ask JOE, AskM365 Pro, EBS Assistant, EA Chatbot). Copilot Studio is one of several downstream engines behind this orchestrator; end users never interact with Copilot Studio's own shell.
- A companion custom UI where technically possible.
So we need the guidance framed for a custom Teams bot / Bot Framework app, not for the Copilot Studio hosted chat.
Current status against the requirement list
| # |
Requirement |
Priority |
Current status |
| 1 |
Welcome Message |
Must |
✅ Working |
|
|
|
|
| 2 |
Default View Prompt |
Must |
✅ Working |
| 3 |
Input Box placeholder / help message |
Must |
❌ Not working as expected |
| 4 |
New Conversation / Clear State / Debug reset |
Must |
❌ Not working as expected |
| 5 |
Adaptive Cards support |
Medium |
❌ Not working as expected |
| 6 |
Three-Dot (ellipsis) menu |
Medium |
❌ Not working as expected |
| 7 |
@ Mention for agent selection |
Medium |
❌ Not working as expected |
| 8 |
Behaviour when an agent is selected |
Medium |
❌ Not working as expected |
| 9 |
Dynamic prompts / suggested questions per agent |
Medium |
❌ Not working as expected |
| 10 |
Behaviour when an agent is deselected |
Medium |
❌ Not working as expected |
| 11 |
Hover-state colour change on cards & prompts |
Medium |
❌ Not working as expected |
Specific questions — please help us unblock items 3 – 11
Where possible, could you point us to the official Microsoft-supported pattern, API, or manifest field that a custom Teams bot (Bot Framework, TypeScript SDK) should use to achieve each of the following inside the Teams client? If a capability is genuinely not exposed to a custom bot, please confirm that in writing so we can set stakeholder expectations.
- Input box placeholder text — Can a custom Teams bot control the compose-box placeholder text shown in the Teams chat surface? If yes, via which manifest field or SDK method? If no, please confirm this is host-owned.
- New Conversation / Clear State — What is the Microsoft-recommended pattern to reset a Teams bot conversation on demand (transcript, [conversationId], cached state, downstream Copilot Studio session)? Is there an official "start new conversation" affordance we can trigger, or must we implement a
/reset command + hero-card button ourselves? Any sample?
- Adaptive Cards — What is the officially supported Adaptive Card schema version and feature set for the current Teams desktop / web / mobile clients? We need a definitive matrix of supported elements (Input.ChoiceSet styles, Action.Execute, refresh, media, etc.) so we know what will actually render in Teams vs. what gets silently dropped.
- Three-dot (ellipsis) menu — For a custom Teams bot, can we add custom entries to the per-message ellipsis menu (e.g., via
messageExtensions, action commands, or message actions)? If so, please point us to the current guidance. If not, please confirm the ellipsis is entirely host-owned for custom bots.
-
@ mention for agent selection — What is the Microsoft-recommended pattern for an in-Teams "type @ to pick an agent" experience for a single bot with multiple internal personas? We are currently using a Messaging Extension search command (initialRun:true), but the UX still differs from the native Copilot Chat @-agent picker. Is there a supported way to get parity, or is the native picker restricted to first-party M365 Copilot agents only?
- Agent selection behaviour — Is there a documented Bot Framework / Teams SDK pattern for maintaining a "sticky selected persona" across turns and surfacing it visually in the Teams client (e.g., a persistent chip / pill above the compose box)? What is the officially supported UI primitive here?
- Dynamic prompts per agent — Teams manifest
commandLists are static and require re-deployment. Is there a runtime API to update prompt starters / suggested questions per agent selection inside the Teams client? If not, is this on the Teams roadmap?
- Agent deselection behaviour — Is there any host-level signal or pattern for "agent deselected"? If we implement it ourselves (clear sticky selection, restore default prompts, keep transcript), does Microsoft have a reference sample we should follow?
- Hover-state colour change — Adaptive Cards are host-rendered. Can a custom Teams bot influence hover/focus styling on Adaptive Card elements (via [style], host config, Fluent v9 theming, or any other supported hook)? Or is hover styling entirely fixed by the Teams renderer?
Request
Please confirm, for each item above:
- Feasibility — is it supported for a custom Bot Framework bot in Teams today? (Yes / Yes-with-workaround / No — host-owned / On the roadmap.)
- The Microsoft-recommended implementation pattern — with a Learn doc link and, if possible, a sample repo.
- Any dependencies or prerequisites — Teams client version, manifest schema version, licence / SKU, admin policy, etc.
- Timeline — if the capability is on the Teams / M365 Copilot roadmap but not yet GA, please share the roadmap ID and expected GA quarter.
This will let us close out the must-have items (3, 4) first and then work through the medium-priority list with a clear picture of what is achievable inside a custom Teams bot vs. what would require moving the experience into a Microsoft-hosted shell such as Microsoft 365 Copilot Chat or a Copilot Studio published channel.
Thanks again.