Skip to content
Block Kit for React
Esc
↑↓navigate↵open⌘Jpreview
On this page

Feedback buttons

Thumbs up / thumbs down feedback for an AI-generated message.

feedback_buttons renders a pair of thumbs-up and thumbs-down icon buttons, as seen under an AI agent’s response in Slack. Only one of the two can be picked at a time: clicking the selected one again clears it, matching Slack’s own toggle behavior. It’s a context_actions block element, so it’s typically placed alongside an icon button rather than in an actions row.

Your AppAPP
onActionInteract with the preview.

Fields

PropType
typestring

Always `feedback_buttons`.

Typestring
positive_button{ text: PlainTextElement; value: string; accessibility_label?: string }

The thumbs-up button. `text` is shown as its tooltip and default accessible name.

Type{ text: PlainTextElement; value: string; accessibility_label?: string }
negative_button{ text: PlainTextElement; value: string; accessibility_label?: string }

The thumbs-down button. `text` is shown as its tooltip and default accessible name.

Type{ text: PlainTextElement; value: string; accessibility_label?: string }
action_id?string

Identifies this action in the interaction payload. Must be unique within the block. Maximum length is 255 characters.

Typestring

Examples

With an accessibility_label

Your AppAPP
onActionInteract with the preview.

Interactivity

Clicking a thumb dispatches a feedback_buttons action carrying that button’s value and text:

{
  "type": "feedback_buttons",
  "action_id": "feedback",
  "block_id": "b1",
  "action_ts": "1706000000.000100",
  "value": "positive",
  "text": { "type": "plain_text", "text": "Good response" }
}

Unlike a plain button, feedback buttons hold a value: picking a thumb writes to state.values, and picking the same thumb again clears it back out:

// state.values after picking "Good response"
{ "b1": { "feedback": { "type": "feedback_buttons", "value": "positive" } } }

// state.values after clicking the same thumb again
{ "b1": {} }

Only one thumb can be selected at a time. Choosing the other one replaces the selection rather than allowing both to be active.

Was this page helpful?