Open artemvalmus opened 5 years ago
Taking a look at the Bot Framework schema, there's nothing to indicate whether the client should or should not make a suggested action disappear if the BOT sends another message after suggested actions is displayed.
However, suggested actions are sent with and tied to an activity, and I don't believe it would make sense or be easy to implement continual showing of the suggested actions when a new activity has come in via the send box. If anything, this would mean removing the suggested actions component and instead of displaying it in the send box, associating it with the activity that it came in with. In such case I believe a regular adaptive or Hero card is sufficient, and changes in this manner would defeat the original intent of suggested actions.
According to this sample
Unlike buttons that appear within rich cards (which remain visible and accessible to the user even after being tapped), buttons that appear within the suggested actions pane will disappear after the user makes a selection. This prevents the user from tapping stale buttons within a conversation and simplifies bot development (since you will not need to account for that scenario)."
To me, associating the suggested action with the activity it comes with (and thereby moving it up the transcript as more messages come in) defeats the purpose of preventing stale action items that the user might click when they are no longer relevant.
TLDR: I think that another activity coming in, whether from the bot or the user, renders the suggested action 'stale'.
@EricDahlvang, @cwhitten, @compulim, do you have other thoughts?
I think @artemvalmus has the point. Event is designed for non-visual and/or non-interactive activities, e.g. telemetry, idle check, etc. And this is not an intention from user, thus, it should not dismiss suggested actions. I believe this is same for the bot too.
Looking at packages/core/src/sagas/clearSuggestedActionsOnPostActivitySaga.js
, this is one of the code that will modify suggested actions (the other one is sagas/incomingActivitySaga.js
).
The code will clear suggested actions only if the user is posting an activity of type message
. It won't clear suggested actions if the user is posting an event activity.
On the other side, in sagas/incomingActivitySaga.js
, if the bot is sending any type of activities, we will clear the suggested actions.
@artemvalmus can you check if the suggested actions is caused by the bot, instead of the user?
I think it's fair to update our code to not clearing suggested actions if the last message from the bot is not of type message
, because this is not visible to the user.
@compulim Thank you for taking care of this. Can you maybe tell us when we can expect this change?
@hhasenauer currently there's no date associated with this work item. It's in our Backlog. Customers who are looking for this change should add their +1 here. :)
Also have the same issue.
Loading this up for discussion/prioritization in our upcoming milestone
Didn't make the R13 list but we'll keep this on front-burner.
Version
"botframework-webchat": "^4.3.0"
Describe the bug
After sending an event to the bot the suggested actions from the previous conversation, loaded from DirectLine using the conversation ID and WebChat token, disappear. So all the chat history is loaded, including the last suggested actions. But when I send a WEB_CHAT/SEND_EVENT activity to the bot the buttons vanish. This behavior is clear with sending a user message, but is there a point in hiding them after the event which may not be connected with the user actions?
The event is sent as follows:
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Suggested actions from the previous conversation, loaded from DirectLine using the conversation ID and WebChat token, are displayed after sending a WEB_CHAT/SEND_EVENT activity to the bot.
[Bug]