Skip to main content
The toolbox offers Table (slack_table) and Data Table (data_table). These are separate formats. Existing templates may also contain the older table type; do not rename that type without rebuilding and validating its configuration.

Build a static Table

Add Table from the toolbox and edit its cells. This complete template block provides a small starting point:
Each cell references its column ID. This authoring format compiles to Slack’s native table rows; do not paste compiled Slack rows back into a static slack_table without converting the structure.

Bind rows to data

For a data-driven Table, supply an array path and column configuration:
Preview it with:
A column key selects a property from each item. A valueTemplate can format an explicit item reference such as {{this.name}}. Supply formatted currency and dates in your data; sort and aggregate upstream.

Use a Data Table

This static example preserves a number as a numeric cell:
Data Table also supports arrayPath and columnConfig; use the block schema for its column types and numeric formatting options. A display string is not a substitute for a numeric cell when numeric sorting matters.

Verify before sending

Test an empty array, one row, long cell text, and a realistic maximum row count. Check the resulting Slack message on desktop and mobile. Limit the data before compilation rather than assuming every table supports directive maxBlocks or overflow settings. The current enforced limits and column properties are returned by GET /v1/templates/block-schema. Use POST /v1/templates/validate to check the full message. See Limits and Charts.