Skip to content

[Feature Request] ChoiceSet options should dynamically change subsequent ChoiceSet options, or at least, toggle visibility of other ChoiceSets #8598

@PerryRose

Description

@PerryRose

Problem Statement

I am trying to implement a basic, form submission capability using an Adaptive Card. This capability I would argue is a minimum expectation from any online form, where the chosen option of one drop-down input dynamically alters the available options for a subsequent input.

Currently, a solution like this is only possible by sending a user multiple adaptive cards. This is not ideal, as this means that we require one adaptive card per dynamic ChoiceSet. For even a small form this immediately becomes bad user experience. Additionally, submitting a form is supposed to be quick and easy, whereas this introduces prolonged wait times between a user submitting an adaptive card to a bot, and waiting for the next card to be sent back.

Consider an example where a bot allows users to report an issue. This form needs to capture as much detail as possible with minimal effort from the user. The values chosen in the first ChoiceSet determine the options presented in the following ChoiceSet.

Audio related issue
image

Video related issue
image

Breaking this out across two adaptive cards (realistically more as this is just a small example) is really unpleasant. Adaptive Cards should be adaptive and should support basic form submission features.

I do also want to quickly mentioned that during my research, this idea has been suggested many times over the past few years. It is evident that others have been in my position and would like this feature implemented.

Proposed solution

I don't have a detailed solution to this. One possibility could be to have something to toggle the visibility of ChoiceSets by checking what has been selected in a different ChoiceSet, e.g.: "$when": "${$root.issueTypeChoiceSet == \"Audio\"}"

Alternatives or Workarounds

As mentioned above the only workaround is to break a form out into multiple adaptive cards (One for each dynamic ChoiceSet) which is not ideal

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions