Data table block
The data table block is a rich table that supports pagination, sorting, filtering, and rich interactivity, such as opening a Work Object flexpane or clickable links in cells. This is different from the existing table block, which only supports filtering and basic interactivity.
Fields
| Field | Type | Description | Required? |
|---|---|---|---|
type | String | The type of block. For a data table block, type is always data_table. | Required |
rows | Array | An array consisting of table rows. | Required |
block_id | String | A unique identifier for a block. If not specified, a block_id will be generated. | Optional |
page_size | Integer | Number of rows per page. Min 1, Max 100. Defaults to 5 if omitted. | Optional |
caption | String | A caption for the table; used as the value for the HTML caption element. | Required |
row_header_column_index | Integer | The 0-based index of the column that uniquely identifies each row (the row header). This column is treated as the row's primary identifier for screen readers. Defaults to 0 if omitted. | Optional |
Usage info
You can use rich_text, raw_text (simple text), or raw_number (numeric values) for cell content. The first row of the table is a header, and rich_text cannot be used for header cells. You can have a minimum of 2 rows (1 regular row plus the header) and a maximum of 101 rows (100 regular rows plus the header). All rows must have the same number of values, and the character count across all cells cannot exceed 10,000 characters.
Sorting rows by column is done alphabetically by default. If a column contains cells all of type raw_number, a numeric sort will be performed instead. You can have a minimum of 1 column and a maximum of 20 columns.
Schema for raw_text
"properties": {
"type": {
"type": "string",
"enum": ["raw_text"]
},
"text": {
"type": "string",
"minLength": 1
}
}
Schema for raw_number
"properties": {
"type": {
"type": "string",
"enum": ["raw_number"]
},
"value": {
"type": "number"
},
"text": {
"type": "string",
"minLength": 1
}
}
Example
A sample data table block:
- JSON
{
"blocks": [
{
"type": "data_table",
"caption": "A Fabulous Table",
"rows": [
[
{
"type": "raw_text",
"text": "Name"
},
{
"type": "raw_text",
"text": "Department"
},
{
"type": "raw_text",
"text": "Badge"
}
],
[
{
"type": "raw_text",
"text": "Data Refinement Department"
},
{
"type": "raw_text",
"text": "MDR"
},
{
"type": "rich_text",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "Blue",
"style": {
"bold": true
}
}
]
}
]
}
],
[
{
"type": "raw_text",
"text": "Art Sourcing Department"
},
{
"type": "raw_text",
"text": "O&D"
},
{
"type": "rich_text",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "Green"
},
{
"type": "text",
"text": "review",
"style": {
"italic": true
}
}
]
}
]
}
],
[
{
"type": "raw_text",
"text": "Wellness Department"
},
{
"type": "raw_text",
"text": "Wellness Center"
},
{
"type": "rich_text",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "Limited",
"style": {
"bold": true
}
}
]
}
]
}
]
]
}
]
}