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 / Adaptive Card Can Disa...
Copilot Studio
Suggested Answer

Adaptive Card Can Disable button after Submit

(2) ShareShare
ReportReport
Posted on by 2
Hi, Any suggestion on disabling the button after submission please?

I having also issue on this using MS Teams Apps Agent, the user can still click and submit button on previous cards and or after duplicate submission the card will skip the next and current cards :(
I have the same question (0)
  • Suggested answer
    Beyond The Platforms Profile Picture
    246 on at

    Hi,

    What you're seeing is a known behavior with Adaptive Cards in Teams and Copilot Studio. After a user submits a card, the original Action.Submit button remains active unless the card is explicitly updated or replaced. As a result, users can click old buttons again, which may trigger duplicate submissions or cause the conversation to skip subsequent cards. 

    Unfortunately, buttons are not automatically disabled after submission. The recommended approach is to:


    • Add unique identifiers to each submit action.

    • Track whether the card has already been processed.

    • Ignore duplicate submissions in your flow/topic logic.

    • Update or replace the original card after submission so that no active buttons remain.


    •  

    For more advanced Teams scenarios, consider using Universal Actions (Action.Execute) and the Adaptive Card refresh model, which provides better control over card state and updates.

     

    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
    Haque Profile Picture
    3,653 on at
    Hi @PA-22060747-0,
     
    Thanks for posting the issue here. 
     
    While it is true that Adaptive Cards do not feature a literal "disabled": true property, the Adaptive Cards schema natively handles this using the isEnabled property.  If you are noticing that isEnabled is not behaving as expected, it is usually because of a specific host application limitation (such as Microsoft Teams) rather than the underlying schema itself.
     
     
    Basically adaptive Cards schema does not support a disabled property on buttons.
     
     
    Alternatives:
     
    1. Let's capture the Activity ID and Coversation ID when we send the original Adaptive Card message. On Submit Action (in the bot or agent backend) process the user submission as usual and then create a new Adaptive Card payload that looks the same but with the submit button removed or replaced by a disabled button or text indicating submission is complete.
     
     
     
    2. Toggle Visibility: Instead of disabling a button, you can include an Action.ToggleVisibility layer or default the button's "isVisible" property to false based on conditional data variables
     
     
     
    Regarding duplicate submission:
     
    • Duplicate submissions happens if the bot backend takes too long to respond /user clicks multiple times before the card updates.
    • To mitigate this, implement server-side logic to ignore duplicate submissions based on user/session metadata.
    • Update the card immediately after the first submission to remove or disable the button visually.
    • Consider adding client-side debounce or disable logic if your client supports it.
     
    Reference:
     
     

    I am sure some clues I tried to give. If these clues help to resolve the issue brought you by here, please don't forget to check the box Does this answer your question? At the same time, I am pretty sure you have liked the response!
  • Suggested answer
    11manish Profile Picture
    3,333 on at
    For Teams Agents and Copilot Studio, use both:
    • Server-side validation (Dataverse/SharePoint status flag or transaction ID).
    • Replace/update the Adaptive Card after submission to remove the buttons.
    Never rely on the client UI alone to prevent duplicate clicks. Even if a button appears disabled, users can still generate duplicate submissions due to retries,
     
    delays, or multiple clicks. The safest pattern is to make the backend idempotent and reject already-processed requests.
  • Suggested answer
    Valantis Profile Picture
    6,735 on at
     
    The replies above cover the right approaches. Here's the most practical implementation for Copilot Studio + Teams specifically.

    The cleanest solution is switching from Action.Submit to Action.Execute (Universal Actions). This gives you native card refresh capability built into Teams. When the user submits, the bot returns an updated card with the button removed or replaced by a "Submitted" text label. The card updates in-place without sending a new message.

    In Copilot Studio, your flow or agent flow handles the Action.Execute invoke, processes the submission, then returns an updated card payload in the response. Teams renders the updated card over the original, disabling any further interaction automatically.

    For duplicate submission prevention on the backend regardless of which action type you use: generate a unique submissionId when you send the card (store it in a SharePoint list or Dataverse row), check for it on every submit action, and reject any request where that ID already exists. This is the only reliable protection since client-side disabling can always be bypassed.

    Microsoft's own guidance confirms Universal Actions are the recommended approach for cards that need state management in Teams.
     

     

    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