Skip to main content
Up to five buttons. Clicks arrive as interaction events.
type
string
required
"button_group"
buttons
array
required
1–5 buttons. More returns BUTTONS_TOO_MANY.
disable_on_click
boolean
default:"true"
When true, one click turns off the whole group and marks the clicked button. Set false for actions people repeat, like “Refresh”.

The button object

action_id
string
required
What kind of action this is. Must match ^[a-zA-Z0-9_.:-]{1,64}$ and be unique in the message. If you leave it out, we build it from label.
label
string
required
Plain text, 1–40 characters.
value
string
Your data, up to 2,000 characters. We never read it. It comes back exactly as sent when clicked.
style
string
default:"secondary"
primary, secondary, or danger.
url
string
An https:// URL. This makes a link button: it opens a new tab, sends no event, and ignores value.
action_id says what kind of action (track_order). value says which one (4821). Both come back in the click event.
Buttons expire 30 days after the message is created. They also turn off once a human takes over the conversation.