---
title: "Menus and buttons in the chat flow"
description: "How the Message with keyboard node works in Scenario Builder: inline and reply keyboards, storing the response, typical integrator tasks."
---

# Menus and buttons in the chat flow

The **Message with keyboard** node (MessageKeyboard, `send-message-keyboard`) sends **text** (and optional media) and offers **reply options**: **inline** buttons under the message or a **reply** keyboard. After the user taps a button or sends text, the scenario **continues along the matching branch** on the canvas.

---

## What you use it for

| You need to… | How this node helps |
|--------------|---------------------|
| Show a menu: Catalog, Support, Back | The client taps a button — predictable routing without parsing free text |
| Get Yes / No | One node instead of fragile text matching |
| Store the answer in a **variable** | **Output Variable** holds the tap or typed text for later steps |
| Limit behaviour by **channel** | Configure supported messengers on the node |

If you only need **free text** (name, email, comment) **without buttons**, the **Wait for input** node (`wait-for-input`) is usually a better fit.

---

## What the client sees

1. A bot message (text; optional image or file).
2. Buttons under the message or a keyboard, depending on type.
3. After a choice or typed input, the bot moves on according to the **edge** you drew on the canvas.

---

## What to do in the editor (short)

1. On the canvas, click **+** or open **Messaging** → **Message with keyboard**.
2. In **Node Inspector**, set the message text (often via section translations).
3. Enable the **keyboard** and add buttons: label, value (payload), type (callback, url, phone, etc.).
4. Connect **each button** with a **separate edge** to the next node.
5. Optionally enable **validation** if typing is allowed instead of tapping.

Full field list: [Message with keyboard parameters](/en/scenariobuilder/reference/message-keyboard-parameters.md). General workflow: [Use action in scenario](/en/scenariobuilder/how-to/use-action-in-scenario.md).

---

## See also

- [Parameter reference](/en/scenariobuilder/reference/message-keyboard-parameters.md)
- [What is the scenario editor](/en/scenariobuilder/explanation/what-is-scenario-editor.md)
- [Test scenario](/en/scenariobuilder/how-to/test-scenario.md)
