blocks let you send a richer layout than plain text — a title, a
label/value grid, buttons — on top of the required text fallback. Blocks
ship in stages:
Always send
text. It’s what people and push notifications see until
rendering ships, and it stays as the fallback after.
Block types
At most 50 blocks per message, 16 KB total. An unknown type or a field a type doesn’t accept returns400 invalid_blocks.
header
header
section
section
text supports a Markdown subset: **bold**,
_italic_, [label](url), and line breaks.fields
fields
actions
actions
url — opens in
the browser, no callback) or an action (action_id + optional value —
sends an interaction callback once clicks ship in Phase 2). Never both on
the same button. style is primary, danger, or omitted.context
context
divider
divider
Editing
PATCH /v1/messages/{id} replaces the whole blocks array — there’s no
partial update. Leaving blocks out of an edit clears them.