web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Copilot Studio / AdaptiveCardPrompt rep...
Copilot Studio
Suggested Answer

AdaptiveCardPrompt repeats when feedback is skipped

(2) ShareShare
ReportReport
Posted on by 37
Hi everyone,
 
I’m facing an issue in Copilot Studio with an AdaptiveCardPrompt feedback card.
 
Flow:
1. User asks a question.
2. Bot answers using SearchAndSummarizeContent.
3. Bot shows an Adaptive Card asking “Is the answer accurate?” with 👍 / 👎 buttons.
4. If the user clicks feedback, everything works.
5. But if the user ignores the card and types a new question, the bot sometimes continues/repeats the previous adaptive card behavior instead of cleanly processing the new question.
 
I added interruptionPolicy: allowInterruption: true on the AdaptiveCardPrompt and I’m trying a flag-based approach:
 
- Global.feedback_pending = true after an answer is shown
- Global.reminder_shown = false initially
- On next redirect, if feedback is pending, show one reminder card
- If user skips reminder too, clear both flags and continue with the new question
 
Condition used:
 
condition: =Global.reminder_shown <> true
 
Is this the recommended way to handle skipped/interrupted AdaptiveCardPrompt feedback in Copilot Studio? Or is there a better pattern to prevent the previous card from blocking the next user question?
 
Thanks!
Adaptive_card_rep...

Your file is currently under scan for potential threats. Please wait while we review it for any viruses or malicious content.

I have the same question (0)
  • Suggested answer
    Beyond The Platforms Profile Picture
    246 on at
    Behavior analysis
     
    In Copilot Studio, the “Ask with Adaptive Card” node (AdaptiveCardPrompt) is designed for interactive cards where the user is expected to respond via Action.Submit. The node remains “waiting” until it receives a submit payload and can store that response into variables for subsequent steps.
     
    Because of that, if you use an AdaptiveCardPrompt for optional feedback (e.g., “Was this answer accurate?” with thumbs up/down), the prompt stays active until the user clicks a button. When the user ignores the card and types a new message, the conversation can remain tied to the pending prompt, causing the same AdaptiveCardPrompt to be re-sent or to interfere with handling the new user input. This is a typical side effect of using a blocking input-collection prompt for something the user may skip.
     
    Also, the interruption setting (e.g., allowInterruption) is about allowing a switch to other topics while a node is active; it does not automatically cancel or close the prompt state when free text arrives. In other words, it does not “reset” the AdaptiveCardPrompt.
     
    Recommended resolution (supported pattern)
     
    Option A (recommended): Make feedback non-blocking
    If feedback is optional, do not implement it as “Ask with Adaptive Card.” Instead:
    1) Display the feedback card as an informational/non-blocking message (so the dialog does not enter a waiting-for-submit state).
    2) If you still want to capture feedback, use an action that does not block the conversation flow (for example: open a link, or handle a client-side event / telemetry capture), rather than requiring the user to submit an AdaptiveCardPrompt.
     
    This avoids the “pending prompt” state entirely, so users can continue the conversation naturally without the system re-surfacing the old card.
     
    Option B (only if you must keep AdaptiveCardPrompt)
    If requirements force you to keep “Ask with Adaptive Card”:
    - Ensure every button submits a unique, explicit payload so you can reliably identify the card/action and avoid issues when multiple cards are visible or when users interact with older cards.
    - Add an explicit “cancel / skip” path and handle the case where the user sends free text while the prompt is active (e.g., route to a different topic or terminate the feedback prompt explicitly), rather than relying on allowInterruption as a reset mechanism.
     
    Hope this helps!
    Paolo


    Did this solve your issue? → Accept as Solution
    👍 Partially helpful? → Click "Yes" on "Was this reply helpful?" or drop a Like!


    Want more tips on Power Platform & AI? Follow me here:

    🔗 LinkedIn: https://www.linkedin.com/in/paoloasnaghi/
    ▶️ YouTube: https://www.youtube.com/@BeyondThePlatforms
    📸 Instagram: https://www.instagram.com/beyond_the_platforms/
    🌐 Website: https://www.beyondtheplatforms.com/


     
  • Suggested answer
    Arild Aarnes Profile Picture
    565 Super User 2026 Season 1 on at
     
    You can configure the properties on your adaptive card node to allow switching to another topic, and to not reprompt.
    There are a few additional steps like adding a End Conversation node to topics you are switching to, but it all depends on you scenario. Where would you like your users to go when they do not submit the adaptive card.

    There is a video in the Microsoft Community Learning channel on YouTube that describes a solution Skip Adaptive Cards Seamlessly in Copilot Studio
     
    regards,
    Arild
  • Suggested answer
    Valantis Profile Picture
    6,735 on at
     
    To directly answer your question: your flag-based approach is the right pattern but it has one gap.

    The issue is that allowInterruption allows the topic to switch but doesn't automatically clear the AdaptiveCardPrompt's waiting state. When the user types a new question, the new topic fires but the previous AdaptiveCardPrompt node can still be considered "unresolved" by the runtime, which is why the card behavior repeats.

    The missing piece in your approach: when you detect that the reminder was already shown and the user is skipping it (Global.reminder_shown = true), you need to explicitly end the current topic context before redirecting to process the new question. Add an End current topic node or Redirect to the new topic immediately after clearing the flags, without any further AdaptiveCardPrompt nodes in the path.

    The cleanest production pattern for optional feedback is Paolo's Option A: send the feedback card as a standard Send message node (not Ask with Adaptive Card). Handle the Action.Submit from the card in a separate topic that triggers on the specific submit payload. This way the conversation never enters a blocking wait state, the user can freely type a new question at any time, and if they submit the feedback card later the dedicated topic handles it cleanly.

    Your Global.feedback_pending flag can still be used to avoid showing feedback on every single response if you want to rate-limit it.
     

     

    Best regards,

    Valantis

     

    ✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.

    ❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).

    🏷️ For follow-ups  @Valantis.

    📝 https://valantisond365.com/

    💼 LinkedIn

    ▶️ YouTube

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the May Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Copilot Studio

#1
Valantis Profile Picture

Valantis 277

#2
11manish Profile Picture

11manish 206

#3
sannavajjala87 Profile Picture

sannavajjala87 156 Super User 2026 Season 1

Last 30 days Overall leaderboard