Skip to content

Block Kit is how a chat app lays out its messages, modals and Home tab: a list of blocks, stacked top to bottom. Blocks hold text, images and block elements — buttons, menus, pickers and inputs — and share small composition objects such as text and options.

It is Slack’s Block Kit: the same JSON renders in Repzo Chat on the web and in the mobile app. Where Workstation behaves differently, the reference page says so under How Repzo Chat differs from Slack.

{
"blocks": [
{ "type": "header", "text": { "type": "plain_text", "text": "Refund request #4821" } },
{
"type": "section",
"text": { "type": "mrkdwn", "text": "*Acme Ltd* asked for a refund of *JOD 129.00*." },
"accessory": { "type": "image", "image_url": "https://picsum.photos/id/164/200/200", "alt_text": "Order photo" }
},
{
"type": "actions",
"elements": [
{ "type": "button", "action_id": "approve", "style": "primary", "text": { "type": "plain_text", "text": "Approve" }, "value": "4821" },
{ "type": "button", "action_id": "reject", "style": "danger", "text": { "type": "plain_text", "text": "Reject" }, "value": "4821" }
]
}
]
}
  • Up to 50 blocks in a message and 100 in a modal or Home view.
  • block_id and action_id are generated when you leave them out. Keep action_id unique within a block and block_id unique within a message.
  • Blocks are never rejected. Anything outside the rules is reported in the API response’s warnings, and the rest of the message still posts.
  • Controls only work in messages posted by an app; the app that posted the message is the one that hears about them.