Add suggested actions to messages
This topic applies to SDK v3 release. You can find the documentation for the latest version of the SDK v4 here.
Suggested actions enable your bot to present buttons that the user can tap to provide input. Suggested actions appear close to the composer and enhance user experience by enabling the user to answer a question or make a selection with a simple tap of a button, rather than having to type a response with a keyboard. 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).
Suggested actions example
To add suggested actions to a message, set the
suggestedActions property of the message to a list of card actions that represent the buttons to be presented to the user.
This code example shows how to send a message that presents three suggested actions to the user:
var msg = new builder.Message(session) .text("Thank you for expressing interest in our premium golf shirt! What color of shirt would you like?") .suggestedActions( builder.SuggestedActions.create( session, [ builder.CardAction.imBack(session, "productId=1&color=green", "Green"), builder.CardAction.imBack(session, "productId=1&color=blue", "Blue"), builder.CardAction.imBack(session, "productId=1&color=red", "Red") ] )); session.send(msg);
When the user taps one of the suggested actions, the bot will receive a message from the user that contains the
value of the corresponding action.
Be aware that the
imBack method will post the
value to the chat window of the channel you are using. If this is not the desired effect, you can use the
postBack method, which will still post the selection back to your bot, but will not display the selection in the chat window. Some channels do not support
postBack, however, and in those instances the method will behave like
Send feedback about: