Prerequisites
- Completed Quickstart
- Understanding of Placeholders
Block types overview
Header block
Use for the main message title. Keep text short (under 150 characters). Plain text:Section block
The main content block. Sections contain text and can include an optional accessory (image, button, or select menu) on the right. Basic text:Status: {{order.status}} · Right: Total: ${{order.total}}
Context block
Small, muted text for metadata like timestamps or authors. Place at the bottom of sections. Example elements:Created by {{author.name}}·•·{{created_at}}
Actions block
Contains interactive buttons. Each button needs:- Label: Text on the button (e.g. “Approve”, “View Details”)
- Action ID: Unique identifier (e.g.
approve_request) - Style: Primary (green), Danger (red), or Default (gray)
- Value: Optional data when clicked (e.g.
{{request.id}})
Divider block
A horizontal line between sections. Use sparingly (1–2 per message).Rich Text block
Formatted text with lists, quotes, code blocks, and inline styling. Formatting:*bold* · _italic_ · `code` · <url|text> for links
Table block
Display tabular data. Configure data path (e.g.products) and columns with placeholders like {{this.name}}, {{this.quantity}}. See Table blocks for structure, columns, and advanced options (experimental feature).
Combining blocks
Typical layout:- Header — message title
- Section — primary content
- Divider — visual break
- Section — additional details
- Context — metadata
- Actions — buttons
Next steps
Placeholders
Dynamic data syntax for blocks.
Table blocks
Structured tabular data (experimental).
Directives
Generate repeating blocks with #each.
Interactive buttons
Configure buttons and actions.

