Skip to content

Holds multiple interactive elements — buttons, menus, pickers — in a row.

Type actions
Available in Messages, Modals, Home tab
Compatible block elements Button element, Checkboxes element, Date picker element, Datetime picker element, Multi-select menu element, Overflow menu element, Radio button group element, Select menu element, Time picker element, Workflow button element
Field Type Description Required?
type String The type of block. For an actions block, type is always actions. Required
elements Object[] An array of interactive element objects — buttons, select menus, overflow menus, date, time and datetime pickers, checkboxes, radio buttons and workflow buttons. Maximum of 25 elements. Required
block_id String A unique identifier for the block. If not specified, one is generated. Use it to tell which block a block_actions payload came from. Maximum length is 255 characters. It must be unique within the message or view — a duplicate is replaced and reported as a warning. Optional

A select menu and a button — how it renders in Repzo Chat

{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Deal:* Northwind — 40 POS terminals\n*Stage:* Proposal sent"
}
},
{
"type": "actions",
"block_id": "deal_actions",
"elements": [
{
"type": "static_select",
"action_id": "move_stage",
"placeholder": {
"type": "plain_text",
"text": "Move to stage"
},
"options": [
{
"text": {
"type": "plain_text",
"text": "Negotiation"
},
"value": "negotiation"
},
{
"text": {
"type": "plain_text",
"text": "Contract sent"
},
"value": "contract_sent"
},
{
"text": {
"type": "plain_text",
"text": "Closed won"
},
"value": "closed_won"
}
]
},
{
"type": "button",
"action_id": "open_deal",
"text": {
"type": "plain_text",
"text": "Open deal"
},
"url": "https://example.com/deals/1042"
}
]
}
]
}

Approve or reject, with a confirmation — how it renders in Repzo Chat

{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Discount request* — 18% on quote Q-2291 (SAR 46,500)"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"action_id": "approve",
"text": {
"type": "plain_text",
"text": "Approve"
},
"style": "primary",
"value": "Q-2291"
},
{
"type": "button",
"action_id": "reject",
"text": {
"type": "plain_text",
"text": "Reject"
},
"style": "danger",
"value": "Q-2291",
"confirm": {
"title": {
"type": "plain_text",
"text": "Reject this discount?"
},
"text": {
"type": "mrkdwn",
"text": "The sales rep will be told the request was rejected."
},
"confirm": {
"type": "plain_text",
"text": "Reject"
},
"deny": {
"type": "plain_text",
"text": "Cancel"
},
"style": "danger"
}
}
]
}
]
}

A date picker and an overflow menu — how it renders in Repzo Chat

{
"blocks": [
{
"type": "actions",
"elements": [
{
"type": "datepicker",
"action_id": "follow_up",
"initial_date": "2026-10-20",
"placeholder": {
"type": "plain_text",
"text": "Follow-up date"
}
},
{
"type": "overflow",
"action_id": "more",
"options": [
{
"text": {
"type": "plain_text",
"text": "Snooze a week"
},
"value": "snooze"
},
{
"text": {
"type": "plain_text",
"text": "Reassign"
},
"value": "reassign"
},
{
"text": {
"type": "plain_text",
"text": "Close ticket"
},
"value": "close"
}
]
}
]
}
]
}