Adaptive Card, Copy/Paste/Share functionality

Occasional Contributor

MS Teams application ...

I send Adaptive Card to the client and Bot handles card actions. How can I add/implement copy-paste functionality?

  1. Client will copy the card to the clipboard and send it to a different client.

P.S.: I implemented "Link unfurling" functionality and can see "Copy" menu button but there is no one in the original Adaptive Card that I sent using ConnectorClient.Conversations.SendToConversationAsync(messageActivity).


  1. Why there is no "Copy" menu button in the original message. How can I add it or find workaround (additional button, or card link or unfurling or something else)? 
  2. I created "Share Message" functionality using MessagingExtension (...=>"More actions" => "Share Message") and can display the card (unfurling) in the chat (can swith a client and send it) but how can I close the message ? I can just close it using "backspace" button. It looks strange...  
  3. I thought that the actions of copied Adaptive Card won't work from a different channel (not Bot, Client to Client). But ... I found that I can call card actions from a different channels (not Client-Bot chat) and bot handles the actions but ... I send messages from the Bot (response) and can't see it in channel and ... card displays "Unable to reach app. Please try again."  Bot catched the following exception: "Operation returned an invalid status code 'Forbidden'", Code: "BotNotInConversationRoster", "The bot is not part of the conversation roster." Is it forbidden? How can I handle it (sending messages from the bot or display something or block sending answers (response) or I need to block actions from a different channels because it's unsupported)?
6 Replies

We are looking into the issue.We will update you.

Copy-Paste is not supported for Adaptive Cards. However it is supported for Messaging Extension/Link Unfurling.

Thank you.
Maybe ... Are there any ways to send adaptive card from outside (Azure function) that will be (look) like "Messaging Extension/Link Unfurling" message?
Link Unfurling - I found that card-link is cached. Can I generate a new one or swith off the cache (or update the cache) ?
And ... Could you answer on question 3) ("BotNotInConversationRoster"), please? What about copied (or sent via MessagingExtension, unfurling for example ) Adaptive Card actions ... If I try to UpdateActivityAsync(...) I'll receive "Operation returned an invalid status code 'Forbidden'" exception. How can I update Card of MessagingExtension by Messaging Extension Card Button Click? Can I update/delete card of "Messaging Extension/Link Unfurling" message?

For Question 3 - Can you confirm that you have uploaded bot for organization or for yourself?
For UpdateActivityAsync(...) - Could you share the repro steps?As far as I understand you have sent a card using messaging extension and now you are trying to update it with the same card.
"uploaded bot for organization or for yourself?"
What do you mean? I can say that I installed it to myself. (Chat Bot - User).
Any differences?
Also. I can confirm that I added additional scopes like "Team & Group Chat", add it to Group Chat (User1- User 2 - Bot) and in that case I can update Adaptive Card using UpdateActivityAsync(...) but .. In general ... What about messages (with Adaptive Card) that I send using "Messaging Extension/Link Unfurling". Can I update it after card action? I mean private chat (User - Bot) and external Chat (User - User)?
best response confirmed by Paul_By (Occasional Contributor)

@Paul_By - As per my understanding, we do not have a way to update the adaptive card send through "Messaging Extension/Link Unfurling" but we can update/refresh the normal adaptive card sent through turnContext.SendActivityAsync() via message reference id/conversation id.


Chetan Sharma


If the response is helpful, please click "Mark as Best Response" and like it. You can share your feedback via Microsoft Teams Developer Feedback link. Click here to escalate.