Add suggested actions to messages

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).


Use the Channel Inspector to see how suggested actions look and work on various channels.

Send suggested actions

To add suggested actions to a message, set the SuggestedActions property of the activity to a list of CardAction objects that represent the buttons to be presented to the user.

This code example shows how to create a message that presents three suggested actions to the user:

var reply = activity.CreateReply("I have colors in mind, but need your help to choose the best one.");
reply.Type = ActivityTypes.Message;
reply.TextFormat = TextFormatTypes.Plain;

reply.SuggestedActions = new SuggestedActions()
    Actions = new List<CardAction>()
        new CardAction(){ Title = "Blue", Type=ActionTypes.ImBack, Value="Blue" },
        new CardAction(){ Title = "Red", Type=ActionTypes.ImBack, Value="Red" },
        new CardAction(){ Title = "Green", Type=ActionTypes.ImBack, Value="Green" }

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.

Additional resources