Use button for input

APPLIES TO: SDK v4

Buttons enhance the conversational experience by letting the user answer a question or select the desired 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 selected), buttons that appear within the suggested actions pane will disappear after the user makes a selection. This prevents the user from selecting stale buttons within a conversation and simplifies bot development since you won't need to account for that scenario.

Suggest action using button

Suggested actions enable your bot to present buttons. You can create a list of suggested actions (also known as quick replies) that will be shown to the user for a single turn of the conversation.

The source code shown here is based on the Suggested actions sample.

// Creates and sends an activity with suggested actions to the user. When the user
/// clicks one of the buttons the text value from the "CardAction" will be
/// displayed in the channel just as if the user entered the text. There are multiple
/// "ActionTypes" that may be used for different situations.
private static async Task SendSuggestedActionsAsync(ITurnContext turnContext, CancellationToken cancellationToken)
{
    var reply = MessageFactory.Text("What is your favorite color?");

    reply.SuggestedActions = new SuggestedActions()
    {
        Actions = new List<CardAction>()
        {
            new CardAction() { Title = "Red", Type = ActionTypes.ImBack, Value = "Red", Image = "https://via.placeholder.com/20/FF0000?text=R", ImageAltText = "R" },
            new CardAction() { Title = "Yellow", Type = ActionTypes.ImBack, Value = "Yellow", Image = "https://via.placeholder.com/20/FFFF00?text=Y", ImageAltText = "Y" },
            new CardAction() { Title = "Blue", Type = ActionTypes.ImBack, Value = "Blue", Image = "https://via.placeholder.com/20/0000FF?text=B", ImageAltText = "B"   },
        },
    };
    await turnContext.SendActivityAsync(reply, cancellationToken);
}

Additional resources

You can access the complete source code for the Suggested actions sample in C#, JavaScript and Python.

Next steps