Quick-reply buttons

Let customers tap a button instead of typing. You define buttons in an agent's instructions, and the agent attaches them to its replies.

Audience: Workspace admins configuring AI agentsLast updated 12 October 2026

Quick-reply buttons appear under an agent's WhatsApp message. They make common next steps one tap away and keep conversations on a predictable path. WhatsApp shows up to three buttons per message.

An AI reply in the Inbox with three buttons: Book a session, Prices, Talk to a person.
An agent reply with three quick-reply buttons, as it appears in the Inbox. Sample data.

How it works

Buttons are configured entirely in the agent's instructions, in two parts:

  1. Define each button once, anywhere in the instructions.
  2. Tell the agent when to attach buttons, by referring to each button's value.

Relay removes the button markers before the message is sent, so customers only see the reply text and the buttons.

Define buttons

Add one line per button. Each button has a name, the label customers see, and a value, a short stable ID you refer to in your rules.

Instructions
@bm-btn {name:"Track my order", value:"track_order"}
@bm-btn {name:"Talk to a person", value:"handoff"}

To attach several buttons with one line, group them into a named menu:

Instructions
@bm-menu {id:"main", buttons:"track_order, handoff"}
The Instructions card on the agent page with three button definitions and a menu.
Button definitions in an agent's instructions (Agents›your agent›Instructions).
Tip
The Quick reply buttons card on the agent page can add correctly formatted definitions to your instructions for you.

Attach buttons to a reply

In your rules, tell the agent to end its reply with the marker. Use only the value (or the menu id) when attaching.

Instructions
When the customer asks about their order, reply with one short line,
then end the reply with:
@bm-menu {id:"main"}

You can also attach individual buttons:

Instructions
@bm-btn {value:"track_order"}
@bm-btn {value:"handoff"}
Seeing "attach" or arrows in customer messages?
A marker was written in the middle of a sentence, for example → attach @bm-btn {value:"size_200"}. The marker becomes a button but the words around it stay visible. Put each marker alone on its own line at the end of the reply. See Common mistakes.

Handle button taps

When a customer taps a button, the agent receives their message ending in [button:<value>]. Write a rule for each value:

Instructions
If the message contains [button:track_order], ask for the order number.
If the message contains [button:handoff], tell the customer a teammate will reply shortly.

Rules and limits

RuleDetail
Buttons per messageAt most 3 (a WhatsApp limit). Additional buttons are dropped.
Label lengthAt most 20 characters. Longer labels are shortened.
Allowed valuesOnly values defined with @bm-btn are sent. Unknown values are ignored.
What customers seeMarkers are always removed; customers never see @bm-btn or @bm-menu.

Worked example

A product picker for an online store. Adapt the names and values to your catalogue and paste the pattern into your agent's instructions.

Instructions: product picker
You are the shop assistant for CocoGlow.

# Buttons
@bm-btn {name:"Coconut oils", value:"cat_coconut"}
@bm-btn {name:"Cooking oils", value:"cat_cooking"}
@bm-btn {name:"Best sellers", value:"cat_best"}
@bm-btn {name:"200 ml", value:"size_200"}
@bm-btn {name:"250 ml", value:"size_250"}
@bm-btn {name:"500 ml", value:"size_500"}
@bm-menu {id:"categories", buttons:"cat_coconut, cat_cooking, cat_best"}
@bm-menu {id:"sizes", buttons:"size_200, size_250, size_500"}

# Flow
When the customer wants to buy, reply "What are you looking for?"
and end the reply with this line and nothing else:
@bm-menu {id:"categories"}

When they pick a category ([button:cat_coconut] and so on), show the
products, ask "Which size would you like?" and end the reply with:
@bm-menu {id:"sizes"}

When they pick a size ([button:size_200] and so on), show the price
and current offer.

Every @bm-menu or @bm-btn line stands alone at the end of the reply, with no other words on the same line.

Common mistakes

AvoidDo instead
→ attach @bm-btn {value:"size_200"}
The words “→ attach” stay visible.
@bm-btn {value:"size_200"}
The marker alone on its own line.
Attaching by label: @bm-btn {name:"200 ml"}Attach by value: @bm-btn {value:"size_200"}
Attaching a value that was never defined.Define every button once before attaching it.
Offering five or more buttons in one message.Keep to three; use a follow-up message or a second menu for more.

Test before going live

  1. Open the agent

    Go to Agents›your agent and save your instructions.

  2. Run a message in the Test playground

    Scroll to Test playground, type a message that should trigger buttons, and select Run.

  3. Check the preview

    The preview shows the exact reply text and the buttons that will be attached. Confirm there is no leftover marker text.

A Test playground result showing the reply text and three buttons.
A Test playground result: the reply text and the buttons that will be attached.

Next: learn how conversations reach your team in the quick start test, or fix issues in Troubleshooting.