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

Context actions

A compact row of feedback and icon buttons, typically under an AI-generated message.

context_actions holds a small row of interactive elements, feedback buttons and icon buttons, the way context holds a row of static text and images. Slack shows it under an assistant’s response for a “was this helpful” prompt, paired with actions like copy or retry.

Your AppAPP
onActionInteract with the preview.

Fields

PropType
typestring

Always `context_actions`.

Typestring
elements(FeedbackButtons | IconButton)[]

The row's elements, in order. Slack allows up to 5.

Type(FeedbackButtons | IconButton)[]
block_id?string

A unique identifier for this block. Auto-generated if omitted. Maximum length is 255 characters.

Typestring

Only two element types are allowed here: feedback buttons (a thumbs-up/thumbs-down pair) and icon buttons (a single small glyph button). See those pages for their own fields and interactivity.

Examples

Feedback and a remove action

The same row as above, matching how this appears under an AI agent’s message: feedback buttons first, then a trailing icon button for a secondary action.

Your AppAPP
Here's a summary of what I found.
onActionInteract with the preview.

Icon buttons only

A row doesn’t need feedback buttons: any mix of up to 5 icon buttons works too.

Your AppAPP
onActionInteract with the preview.

Interactivity

Each element dispatches its own action shape. A feedback button sends its picked 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" }
}

An icon button sends a plain action, with value only when the element sets it:

{
  "type": "icon_button",
  "action_id": "remove",
  "block_id": "b1",
  "action_ts": "1706000000.000100"
}

Feedback buttons also toggle: picking a thumb writes { type: "feedback_buttons", value } to state.values, and clicking the same thumb again clears it. Icon buttons never write to state.values, since they’re one-shot actions. See feedback buttons and icon button for the full details.

Was this page helpful?