microsoft / botframework-sdk

Bot Framework provides the most comprehensive experience for building conversation applications.
MIT License
7.5k stars 2.44k forks source link

[Question] Best way to design a complex interaction #3054

Closed Gh0s7 closed 7 years ago

Gh0s7 commented 7 years ago

(Sorry for posting it here, I don't think it belongs to StackOverflow). I need some help deciding how to present a complex interaction in the correct way.

Here's some background: my bot allows people to run a query, view the results using a carousel and then executing an action on one of the results (using postback actions on each card). My results are paginated (we're talking about something like 600 results for each query), so I'm only sending the first 10 and I need a way to ask the user if he wants to load more, and here lies the problem.

The question is: what's the best way to use pagination and still being able to use actions within Hero cards?

I'm asking it because, even if working, my current solution doesn't look intuitive.

As for now, I'm showing the cards and then I'm sending a PromptChoice with 3 options: load next page, restart and execute the action. Of course, showing the PromptChoice means that buttons on cards stop working, because their postback will be handled by the PromptChoice. That's why I've built the third option, to just end the PrompChoice so that clicking on a card's action will start working again.

Why do I say that this is not intuitive? Because the user will see the buttons on the cards and prompt options too, and I'm quite sure that someone will tap on the card's button and will be disappointed to see the "try again" message returned by the PromptChoice.

Another solution could be to add 2 more cards, one used to load the next page and one used to reset the current state, meaning that I will manually have to handle their actions.

Is there any other way that I'm not aware of to do something similar?

nwhitmont commented 7 years ago

@Gh0s7 This is a design question, rather than a coding issue specific to BotBuilder SDK, and is thus outside the scope of this forum.

For bot design, UX resources and best practices, check out:

Gh0s7 commented 7 years ago

It is a design question, I even stated it in the title, but there is a technical side too, aka how to let a card's action work even while displaying a PromptChoice.