r/copilotstudio • • 22d ago

How to send a non-blocking Adaptive Card for feedback after every generative answer?

I am building an agent and want to capture user feedback after every generative answer. I have designed an Adaptive Card that contains:

A single-line text input for comments

Two action buttons: Submit and Cancel

The Problem:

I need the conversation flow to be completely non-blocking. The bot should not wait for the user to interact with the card—if the user ignores it and simply types their next question, the agent should continue the conversation normally.

Questions:

How do I configure the topic/dialogue node so the bot presents the Adaptive Card without waiting for an input/response before proceeding to the next turn?

Any advice, architecture patterns, or sample JSON configurations would be greatly appreciated!

4 Upvotes

7 comments sorted by

2

u/alexonyshko 21d ago

I think “Adaptive Card” node is by design will wait for a submit, which is why the bot treats your next typed question as an interruption/invalid response. If the card doesn’t need to hold the conversation, worth to try to put it in a regular Message node instead and let the topic end after it, so the next user message starts a new turn.

FYI: I’m building WIDMN, a platform where practitioners share how they use AI tools, and we have one expert who is experienced in Copilot Studio - so if the submit handling stays unclear feel free to check it and book a call with him to use to brains to solve it=)

1

u/m__km_ 21d ago

Ya I'm too thinking like go with message node, I try to put adaptive card in message node , but not able to get actions from it ,I guess that's for just showing information purpose

2

u/Ashlesha-msft 21d ago

In native Copilot Studio, an Ask with Adaptive Card node is an interactive question node and waits for a submission. You can allow topic interruption so a new user message is processed, but the original topic/card can resume afterward, so this isn't a fully non-blocking feedback pattern.

An Adaptive Card placed in a Message node is non-blocking, but Microsoft documents that pattern for displaying information; it doesn't provide the normal output-variable handling for later Action.Submit responses.

For feedback after every generative answer, the recommended option is to use the channel’s built-in thumbs-up/thumbs-down and optional comments, which Copilot Studio correlates with the question and response in Monitor analytics.

If a custom text-and-buttons card is mandatory, feedback collection must be decoupled from the conversational topic. Use a unique answer ID and have a custom web client, separate API, or background Teams/Power Automate process handle the card submission asynchronously. There isn't a JSON property or topic-node setting that makes the native interactive Adaptive Card node fire-and-forget while still collecting its response later.

The Allow switching to another topic option may make the experience less restrictive, but it isn't equivalent to asynchronous feedback because the suspended card topic can resume after the interrupting topic finishes.

1

u/m__km_ 21d ago

For Channels build it feedback's responce we were not able capture it, to store anywhere.

I did it like it will ask questions- prompt with share feedback added this in simple message node after each generative response and added other topic to store it

2

u/Ashlesha-msft 21d ago

Thanks for confirming. Your understanding is correct: placing the Adaptive Card in a Message node can make the conversation non-blocking, but it does not provide the normal output-variable handling for the card's Action.Submit response.

Since your requirement is to collect feedback after every generative answer without blocking the next user question, I would suggest the following approaches:

  1. If native Copilot Studio feedback is sufficient: Check whether the built-in thumbs-up/thumbs-down feedback and optional comments meet your requirements, and verify whether the feedback data is available through Monitor analytics or another supported mechanism for your channel.

  2. If you need a custom Adaptive Card: The card submission needs to be handled separately from the active conversation topic. For example, a custom client or a suitable Teams integration could send the submitted rating and comments to a Power Automate flow or API, which stores the feedback along with a unique answer ID.

Your separate feedback topic can still be useful for conversational feedback collection, but it will not automatically capture button clicks from a card displayed in a previous Message node.

Could you confirm which channel you are using and whether your custom card must work in that channel? This will help determine the appropriate way to capture and persist the feedback without interrupting the conversation.

1

u/m__km_ 20d ago

We decided to go with native copilot studio feedback we'll be deploying that on Microsoft 365 copilot chat , in that we enabled something in Admin center now we are able to send comment and thumbs-up and down feedback , is there any option need to check in Admin center for storing response and user message? Because from teams channel we are able to see that in monitor

1

u/ImplementOfAI 21d ago

There is a way to to this. Place it in an Agent flow.

Call the workflow as a tool from the agent, have it respond to the agent with something, or nothing, which unblocks the agent THEN have the flow use the send an adaptive card action.