slack-block-kit

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Slack Block Kit Formatting Skill

Slack Block Kit 消息格式化技能

This skill teaches agents to format Slack messages using Block Kit—a JSON-based UI framework for building rich, interactive messages.
本技能指导Agent使用Block Kit——一款基于JSON的UI框架,用于构建丰富、交互式的消息——来格式化Slack消息。

When to Apply This Skill

适用场景

Apply when:
  • Sending Slack messages via MCP tools
  • Creating notifications, alerts, or status updates
  • Building interactive messages with buttons or menus
  • Formatting EOD/EOW reports for Slack
  • Any message that should look professional
以下场景适用本技能:
  • 通过MCP工具发送Slack消息
  • 创建通知、警报或状态更新
  • 构建带按钮或菜单的交互式消息
  • 格式化Slack的每日/每周结束报告
  • 任何需要专业外观的消息

MCP Tools

MCP工具

Server:
user-mcp-config-2mgoji
(Composio) Tool:
SLACK_SEND_MESSAGE
json
{
  "channel": "C12345678",
  "text": "Fallback text for notifications",
  "blocks": [ ... ]
}
Important: Always include top-level
text
as notification fallback.

服务器:
user-mcp-config-2mgoji
(Composio) 工具:
SLACK_SEND_MESSAGE
json
{
  "channel": "C12345678",
  "text": "Fallback text for notifications",
  "blocks": [ ... ]
}
重要提示: 务必在顶层包含
text
字段作为通知的备用内容。

Architecture

架构

Message Payload
└── blocks[] (layout containers, max 50)
    └── Block elements (interactive components)
        └── Composition objects (text, options)

消息载荷
└── blocks[](布局容器,最多50个)
    └── 区块元素(交互式组件)
        └── 组合对象(文本、选项)

Block Types Quick Reference

区块类型速查

TypeUse ForKey Rules
header
Titles150 chars max,
plain_text
only
section
Main content3000 chars, can have accessory
divider
Visual separationNo content
image
Standalone imagesHTTPS URL required,
alt_text
required
context
Metadata, timestampsMax 10 elements, renders small/muted
actions
Button rows, menusMax 25 elements
table
Tabular data1 per message, max 100 rows, 20 columns
rich_text
Formatted textLists, quotes, code blocks, styled text

类型适用场景核心规则
header
标题/主标题最多150字符,仅支持
plain_text
格式
section
主要内容展示最多3000字符,可附加附属组件
divider
视觉分隔线无内容
image
独立图片展示需HTTPS URL,必须包含
alt_text
context
元数据、时间戳展示最多10个元素,以小号/弱化样式渲染
actions
按钮行、菜单最多25个元素
table
表格数据展示每条消息仅1个,最多100行、20列
rich_text
富文本格式化支持列表、引用、代码块、样式化文本

Table Block (NEW)

表格区块(新增)

Constraints:
  • Only 1 table per message (error:
    only_one_table_allowed
    )
  • Table renders at BOTTOM of message (appended)
  • Max 100 rows, 20 columns
  • Cells can be
    raw_text
    or
    rich_text
约束条件:
  • 每条消息仅能包含1个表格(错误提示:
    only_one_table_allowed
  • 表格会渲染在消息底部(追加到末尾)
  • 最多100行、20列
  • 单元格支持
    raw_text
    rich_text
    格式

Basic Table

基础表格

json
{
  "type": "table",
  "column_settings": [
    { "align": "left" },
    { "align": "center" },
    { "align": "right" }
  ],
  "rows": [
    [
      { "type": "raw_text", "text": "Name" },
      { "type": "raw_text", "text": "Count" },
      { "type": "raw_text", "text": "Value" }
    ],
    [
      { "type": "raw_text", "text": "Item A" },
      { "type": "raw_text", "text": "5" },
      { "type": "raw_text", "text": "$100" }
    ]
  ]
}
json
{
  "type": "table",
  "column_settings": [
    { "align": "left" },
    { "align": "center" },
    { "align": "right" }
  ],
  "rows": [
    [
      { "type": "raw_text", "text": "Name" },
      { "type": "raw_text", "text": "Count" },
      { "type": "raw_text", "text": "Value" }
    ],
    [
      { "type": "raw_text", "text": "Item A" },
      { "type": "raw_text", "text": "5" },
      { "type": "raw_text", "text": "$100" }
    ]
  ]
}

Column Settings

列设置

PropertyTypeDescription
align
string
left
,
center
, or
right
is_wrapped
booleanWhether to wrap long text (default: false)
属性类型描述
align
字符串
left
(左对齐)、
center
(居中)或
right
(右对齐)
is_wrapped
布尔值是否自动换行(默认:false)

Table with Rich Text Cells (Links, Bold)

带富文本单元格的表格(链接、加粗)

json
{
  "type": "table",
  "rows": [
    [
      { "type": "raw_text", "text": "Deal" },
      { "type": "raw_text", "text": "ARR" }
    ],
    [
      {
        "type": "rich_text",
        "elements": [
          {
            "type": "rich_text_section",
            "elements": [
              {
                "type": "link",
                "text": "Acme Corp",
                "url": "https://hubspot.com/deal/123"
              }
            ]
          }
        ]
      },
      {
        "type": "rich_text",
        "elements": [
          {
            "type": "rich_text_section",
            "elements": [
              { "type": "text", "text": "$50,000", "style": { "bold": true } }
            ]
          }
        ]
      }
    ]
  ]
}

json
{
  "type": "table",
  "rows": [
    [
      { "type": "raw_text", "text": "Deal" },
      { "type": "raw_text", "text": "ARR" }
    ],
    [
      {
        "type": "rich_text",
        "elements": [
          {
            "type": "rich_text_section",
            "elements": [
              {
                "type": "link",
                "text": "Acme Corp",
                "url": "https://hubspot.com/deal/123"
              }
            ]
          }
        ]
      },
      {
        "type": "rich_text",
        "elements": [
          {
            "type": "rich_text_section",
            "elements": [
              { "type": "text", "text": "$50,000", "style": { "bold": true } }
            ]
          }
        ]
      }
    ]
  ]
}

Rich Text Block

富文本区块

Rich text provides more flexibility than mrkdwn. Use for complex formatting needs.
富文本比mrkdwn格式更灵活,适用于复杂格式化需求。

Rich Text Section (Basic)

基础富文本段落

json
{
  "type": "rich_text",
  "elements": [
    {
      "type": "rich_text_section",
      "elements": [
        { "type": "text", "text": "Hello " },
        { "type": "text", "text": "bold text", "style": { "bold": true } },
        { "type": "text", "text": " and " },
        { "type": "text", "text": "italic", "style": { "italic": true } }
      ]
    }
  ]
}
json
{
  "type": "rich_text",
  "elements": [
    {
      "type": "rich_text_section",
      "elements": [
        { "type": "text", "text": "Hello " },
        { "type": "text", "text": "bold text", "style": { "bold": true } },
        { "type": "text", "text": " and " },
        { "type": "text", "text": "italic", "style": { "italic": true } }
      ]
    }
  ]
}

Rich Text List (Bullet/Numbered)

富文本列表(项目符号/编号)

json
{
  "type": "rich_text",
  "elements": [
    {
      "type": "rich_text_section",
      "elements": [{ "type": "text", "text": "Features shipped:" }]
    },
    {
      "type": "rich_text_list",
      "style": "bullet",
      "elements": [
        {
          "type": "rich_text_section",
          "elements": [{ "type": "text", "text": "HubSpot integration" }]
        },
        {
          "type": "rich_text_section",
          "elements": [{ "type": "text", "text": "Mobile improvements" }]
        }
      ]
    }
  ]
}
json
{
  "type": "rich_text",
  "elements": [
    {
      "type": "rich_text_section",
      "elements": [{ "type": "text", "text": "Features shipped:" }]
    },
    {
      "type": "rich_text_list",
      "style": "bullet",
      "elements": [
        {
          "type": "rich_text_section",
          "elements": [{ "type": "text", "text": "HubSpot integration" }]
        },
        {
          "type": "rich_text_section",
          "elements": [{ "type": "text", "text": "Mobile improvements" }]
        }
      ]
    }
  ]
}

Rich Text Quote

富文本引用

json
{
  "type": "rich_text",
  "elements": [
    {
      "type": "rich_text_quote",
      "elements": [
        {
          "type": "text",
          "text": "This is really going to change how we work."
        }
      ]
    }
  ]
}
json
{
  "type": "rich_text",
  "elements": [
    {
      "type": "rich_text_quote",
      "elements": [
        {
          "type": "text",
          "text": "This is really going to change how we work."
        }
      ]
    }
  ]
}

Rich Text Element Types

富文本元素类型

TypePropertiesUse For
text
text
,
style
Plain/styled text
link
url
,
text
,
style
Clickable links
user
user_id
,
style
@mentions
channel
channel_id
,
style
#channel links
usergroup
usergroup_id
,
style
@group mentions
emoji
name
,
unicode
Emoji
date
timestamp
,
format
Formatted dates
broadcast
range
(here/channel/everyone)
@here/@channel/@everyone
类型属性适用场景
text
text
style
普通/样式化文本
link
url
text
style
可点击链接
user
user_id
style
@提及用户
channel
channel_id
style
#频道链接
usergroup
usergroup_id
style
@群组提及
emoji
name
unicode
表情符号
date
timestamp
format
格式化日期
broadcast
range
(here/channel/everyone)
@here/@channel/@everyone

Text Style Object

文本样式对象

json
{
  "style": {
    "bold": true,
    "italic": true,
    "strike": true,
    "code": true
  }
}

json
{
  "style": {
    "bold": true,
    "italic": true,
    "strike": true,
    "code": true
  }
}

Block JSON Structures

区块JSON结构

Header Block

标题区块

json
{
  "type": "header",
  "text": {
    "type": "plain_text",
    "text": ":rocket: Header Text Here",
    "emoji": true
  }
}
json
{
  "type": "header",
  "text": {
    "type": "plain_text",
    "text": ":rocket: Header Text Here",
    "emoji": true
  }
}

Section Block

内容段落区块

json
{
  "type": "section",
  "text": {
    "type": "mrkdwn",
    "text": "*Bold* and _italic_ text with <https://example.com|links>"
  }
}
json
{
  "type": "section",
  "text": {
    "type": "mrkdwn",
    "text": "*Bold* and _italic_ text with <https://example.com|links>"
  }
}

Section with Accessory (Button)

带附属组件的段落(按钮)

json
{
  "type": "section",
  "text": {
    "type": "mrkdwn",
    "text": "Your meeting has been processed."
  },
  "accessory": {
    "type": "button",
    "text": { "type": "plain_text", "text": "View", "emoji": true },
    "url": "https://app.askelephant.com/meetings/123",
    "action_id": "view_meeting"
  }
}
json
{
  "type": "section",
  "text": {
    "type": "mrkdwn",
    "text": "Your meeting has been processed."
  },
  "accessory": {
    "type": "button",
    "text": { "type": "plain_text", "text": "View", "emoji": true },
    "url": "https://app.askelephant.com/meetings/123",
    "action_id": "view_meeting"
  }
}

Section with Fields (Two-Column Layout)

带字段的段落(两列布局)

json
{
  "type": "section",
  "fields": [
    { "type": "mrkdwn", "text": "*Status:*\nComplete" },
    { "type": "mrkdwn", "text": "*Duration:*\n45 min" },
    { "type": "mrkdwn", "text": "*Attendees:*\n4 people" },
    { "type": "mrkdwn", "text": "*Priority:*\nHigh" }
  ]
}
Rules: Max 10 fields, each max 2000 chars.
json
{
  "type": "section",
  "fields": [
    { "type": "mrkdwn", "text": "*Status:*\nComplete" },
    { "type": "mrkdwn", "text": "*Duration:*\n45 min" },
    { "type": "mrkdwn", "text": "*Attendees:*\n4 people" },
    { "type": "mrkdwn", "text": "*Priority:*\nHigh" }
  ]
}
规则: 最多10个字段,每个字段最多2000字符。

Divider Block

分隔线区块

json
{
  "type": "divider"
}
json
{
  "type": "divider"
}

Image Block

图片区块

json
{
  "type": "image",
  "image_url": "https://example.com/chart.png",
  "alt_text": "Q4 revenue chart"
}
json
{
  "type": "image",
  "image_url": "https://example.com/chart.png",
  "alt_text": "Q4 revenue chart"
}

Context Block

上下文区块

json
{
  "type": "context",
  "elements": [
    {
      "type": "mrkdwn",
      "text": ":clock1: Posted at <!date^1706451200^{date_short_pretty} at {time}|Jan 28, 2026>"
    }
  ]
}
json
{
  "type": "context",
  "elements": [
    {
      "type": "mrkdwn",
      "text": ":clock1: Posted at <!date^1706451200^{date_short_pretty} at {time}|Jan 28, 2026>"
    }
  ]
}

Actions Block

操作区块

json
{
  "type": "actions",
  "block_id": "actions_1",
  "elements": [
    {
      "type": "button",
      "text": { "type": "plain_text", "text": "Approve", "emoji": true },
      "style": "primary",
      "action_id": "approve_btn",
      "value": "approved"
    },
    {
      "type": "button",
      "text": { "type": "plain_text", "text": "Reject", "emoji": true },
      "style": "danger",
      "action_id": "reject_btn",
      "value": "rejected"
    }
  ]
}
Button styles:
primary
(green),
danger
(red), or omit for default gray.

json
{
  "type": "actions",
  "block_id": "actions_1",
  "elements": [
    {
      "type": "button",
      "text": { "type": "plain_text", "text": "Approve", "emoji": true },
      "style": "primary",
      "action_id": "approve_btn",
      "value": "approved"
    },
    {
      "type": "button",
      "text": { "type": "plain_text", "text": "Reject", "emoji": true },
      "style": "danger",
      "action_id": "reject_btn",
      "value": "rejected"
    }
  ]
}
按钮样式:
primary
(绿色)、
danger
(红色),或省略使用默认灰色。

mrkdwn Syntax (NOT Standard Markdown!)

mrkdwn语法(非标准Markdown!)

Text Formatting

文本格式化

FormatSyntaxExample
Bold
*text*
*important*
Italic
_text_
_emphasis_
Strikethrough
~text~
~deleted~
Code
`code`
`function()`
Code block
```code```
Multi-line
Quote
>text
Indented
格式语法示例
加粗
*text*
*important*
斜体
_text_
_emphasis_
删除线
~text~
~deleted~
行内代码
`code`
`function()`
代码块
```code```
多行代码
引用
>text
缩进显示

Links and Mentions

链接与提及

TypeSyntax
URL
<https://example.com>
URL with text
<https://example.com|Click here>
User mention
<@U12345678>
Channel link
<#C12345678>
@here
<!here>
@channel
<!channel>
类型语法
URL链接
<https://example.com>
带文本的URL
<https://example.com|Click here>
用户提及
<@U12345678>
频道链接
<#C12345678>
@here
<!here>
@channel
<!channel>

Escape Characters

转义字符

CharacterEscape As
&
&amp;
<
&lt;
>
&gt;
字符转义方式
&
&amp;
<
&lt;
>
&gt;

NOT Supported (Common Mistakes)

不支持的语法(常见错误)

WrongCorrect
**bold**
*bold*
*italic*
_italic_
[text](url)
<url|text>
# Header
Use header block

错误写法正确写法
**bold**
*bold*
*italic*
_italic_
[text](url)
<url|text>
# Header
使用header区块

Message Templates by Use Case

场景化消息模板

Newsletter Template (Polished)

新闻通讯模板(精致风格)

Use for company-wide updates, weekly digests, or announcements.
json
{
  "text": "Paper Company Newsletter - November 12, 2019",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":newspaper:  AskElephant Update  :newspaper:",
        "emoji": true
      }
    },
    {
      "type": "context",
      "elements": [
        {
          "text": "*January 28, 2026*  |  Product Team",
          "type": "mrkdwn"
        }
      ]
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": ":loud_sound: *IN CASE YOU MISSED IT* :loud_sound:"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "The *HubSpot integration* shipped last week. Customers can now sync all their meeting data to HubSpot automatically."
      },
      "accessory": {
        "type": "button",
        "text": { "type": "plain_text", "text": "Learn More", "emoji": true },
        "url": "https://docs.askelephant.com/hubspot"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": ":calendar: |   *UPCOMING*  | :calendar:"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "`02/01` *Speaker ID V2* — Improved speaker identification\n`02/15` *Admin Onboarding* — Streamlined workspace setup"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*FOR YOUR INFORMATION*"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": ":bulb: *Mobile app update* is now available. Make sure customers update for better recording reliability."
      }
    },
    { "type": "divider" },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": ":pushpin: Questions? Drop them in *#product-forum*"
        }
      ]
    }
  ]
}
适用于公司全员更新、每周摘要或公告。
json
{
  "text": "Paper Company Newsletter - November 12, 2019",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":newspaper:  AskElephant Update  :newspaper:",
        "emoji": true
      }
    },
    {
      "type": "context",
      "elements": [
        {
          "text": "*January 28, 2026*  |  Product Team",
          "type": "mrkdwn"
        }
      ]
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": ":loud_sound: *IN CASE YOU MISSED IT* :loud_sound:"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "The *HubSpot integration* shipped last week. Customers can now sync all their meeting data to HubSpot automatically."
      },
      "accessory": {
        "type": "button",
        "text": { "type": "plain_text", "text": "Learn More", "emoji": true },
        "url": "https://docs.askelephant.com/hubspot"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": ":calendar: |   *UPCOMING*  | :calendar:"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "`02/01` *Speaker ID V2* — Improved speaker identification\n`02/15` *Admin Onboarding* — Streamlined workspace setup"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*FOR YOUR INFORMATION*"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": ":bulb: *Mobile app update* is now available. Make sure customers update for better recording reliability."
      }
    },
    { "type": "divider" },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": ":pushpin: Questions? Drop them in *#product-forum*"
        }
      ]
    }
  ]
}

Rob Report (Revenue Team, Simple Language)

营收团队报告模板(简洁风格)

Use for CRO/revenue team updates with simplified language and customer-visible features only.
json
{
  "text": "What's New - January 27, 2026",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "What's New - January 27, 2026",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "Hey Revenue Team! Here's what shipped that you can use with customers right now."
      }
    },
    { "type": "divider" },
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "What's New",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*The app runs faster now* — Pages load quicker, especially with lots of conversations.\n\n*@ mentions work better in chat* — AskElephant understands who you're talking about more reliably."
      }
    },
    { "type": "divider" },
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "What We Fixed",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "• Notification banners showing at wrong time\n• Scrolling no longer jumps around\n• Words getting cut off in meeting details"
      }
    },
    { "type": "divider" },
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "Revenue Wins",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Total New ARR:* $20,399 (4 deals)\n*Expansion:* $5,700 (Hadco Construction)\n*Total ARR Impact:* $26,100"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "_All features listed are available to your team now._"
      }
    },
    {
      "type": "table",
      "column_settings": [
        { "align": "left" },
        { "align": "center" },
        { "align": "center" },
        { "align": "center" },
        { "align": "center" }
      ],
      "rows": [
        [
          { "type": "raw_text", "text": "SDR" },
          { "type": "raw_text", "text": "Convos" },
          { "type": "raw_text", "text": "Pitches" },
          { "type": "raw_text", "text": "Meetings" },
          { "type": "raw_text", "text": "ICP Held" }
        ],
        [
          { "type": "raw_text", "text": "Jamis Benson" },
          { "type": "raw_text", "text": "7" },
          { "type": "raw_text", "text": "6" },
          { "type": "raw_text", "text": "4" },
          { "type": "raw_text", "text": "2" }
        ],
        [
          { "type": "raw_text", "text": "Carter Thomas" },
          { "type": "raw_text", "text": "8" },
          { "type": "raw_text", "text": "6" },
          { "type": "raw_text", "text": "5" },
          { "type": "raw_text", "text": "1" }
        ],
        [
          { "type": "raw_text", "text": "Team Total" },
          { "type": "raw_text", "text": "18" },
          { "type": "raw_text", "text": "14" },
          { "type": "raw_text", "text": "12" },
          { "type": "raw_text", "text": "3" }
        ]
      ]
    }
  ]
}
适用于CRO/营收团队更新,使用简化语言,仅展示客户可见功能。
json
{
  "text": "What's New - January 27, 2026",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "What's New - January 27, 2026",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "Hey Revenue Team! Here's what shipped that you can use with customers right now."
      }
    },
    { "type": "divider" },
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "What's New",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*The app runs faster now* — Pages load quicker, especially with lots of conversations.\n\n*@ mentions work better in chat* — AskElephant understands who you're talking about more reliably."
      }
    },
    { "type": "divider" },
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "What We Fixed",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "• Notification banners showing at wrong time\n• Scrolling no longer jumps around\n• Words getting cut off in meeting details"
      }
    },
    { "type": "divider" },
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "Revenue Wins",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Total New ARR:* $20,399 (4 deals)\n*Expansion:* $5,700 (Hadco Construction)\n*Total ARR Impact:* $26,100"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "_All features listed are available to your team now._"
      }
    },
    {
      "type": "table",
      "column_settings": [
        { "align": "left" },
        { "align": "center" },
        { "align": "center" },
        { "align": "center" },
        { "align": "center" }
      ],
      "rows": [
        [
          { "type": "raw_text", "text": "SDR" },
          { "type": "raw_text", "text": "Convos" },
          { "type": "raw_text", "text": "Pitches" },
          { "type": "raw_text", "text": "Meetings" },
          { "type": "raw_text", "text": "ICP Held" }
        ],
        [
          { "type": "raw_text", "text": "Jamis Benson" },
          { "type": "raw_text", "text": "7" },
          { "type": "raw_text", "text": "6" },
          { "type": "raw_text", "text": "4" },
          { "type": "raw_text", "text": "2" }
        ],
        [
          { "type": "raw_text", "text": "Carter Thomas" },
          { "type": "raw_text", "text": "8" },
          { "type": "raw_text", "text": "6" },
          { "type": "raw_text", "text": "5" },
          { "type": "raw_text", "text": "1" }
        ],
        [
          { "type": "raw_text", "text": "Team Total" },
          { "type": "raw_text", "text": "18" },
          { "type": "raw_text", "text": "14" },
          { "type": "raw_text", "text": "12" },
          { "type": "raw_text", "text": "3" }
        ]
      ]
    }
  ]
}

Daily Digest (Engineering/Product)

每日摘要模板(研发/产品团队)

json
{
  "text": "AskElephant Daily Digest",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "AskElephant Daily Digest",
        "emoji": true
      }
    },
    {
      "type": "context",
      "elements": [
        { "type": "mrkdwn", "text": ":newspaper: Thursday, January 23, 2026" }
      ]
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*:trophy: Today's Headline*\n\n>*Dialpad Goes Live + Desktop Stability* — Another major telephony platform now integrated."
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*:sparkles: New Features*\n\n*CRM Integrations*\n• Dialpad direct integration — full telephony support\n• Dialpad event handling — deduplication and routing\n\n*Recording & Capture*\n• Desktop MP4 audio — higher quality recordings\n• Web recording visual feedback"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*:wrench: Improvements*\n\n• Engagement page restored\n• AI description improvements\n• Query performance instrumented"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*:bug: Bugs Fixed: 6*\n\n• Auto logout toggle restored\n• Desktop recording stop reliability\n• Mobile push notification delivery"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": { "type": "mrkdwn", "text": "*:busts_in_silhouette: Team Focus*" }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*Eduardo*\nDialpad, desktop, mobile" },
        { "type": "mrkdwn", "text": "*Matt Noxon*\nPerformance, dataloaders" },
        { "type": "mrkdwn", "text": "*Jason*\nStripe, PostHog, analytics" },
        { "type": "mrkdwn", "text": "*Dylan*\nVoiceprint, embeddings" }
      ]
    },
    { "type": "divider" },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": ":chart_with_upwards_trend: *Stats:* 6 features | 3 improvements | 6 bugs fixed"
        },
        {
          "type": "mrkdwn",
          "text": ":rocket: *21 PRs merged* • *Eduardo leading with 10*"
        }
      ]
    }
  ]
}
json
{
  "text": "AskElephant Daily Digest",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "AskElephant Daily Digest",
        "emoji": true
      }
    },
    {
      "type": "context",
      "elements": [
        { "type": "mrkdwn", "text": ":newspaper: Thursday, January 23, 2026" }
      ]
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*:trophy: Today's Headline*\n\n>*Dialpad Goes Live + Desktop Stability* — Another major telephony platform now integrated."
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*:sparkles: New Features*\n\n*CRM Integrations*\n• Dialpad direct integration — full telephony support\n• Dialpad event handling — deduplication and routing\n\n*Recording & Capture*\n• Desktop MP4 audio — higher quality recordings\n• Web recording visual feedback"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*:wrench: Improvements*\n\n• Engagement page restored\n• AI description improvements\n• Query performance instrumented"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*:bug: Bugs Fixed: 6*\n\n• Auto logout toggle restored\n• Desktop recording stop reliability\n• Mobile push notification delivery"
      }
    },
    { "type": "divider" },
    {
      "type": "section",
      "text": { "type": "mrkdwn", "text": "*:busts_in_silhouette: Team Focus*" }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*Eduardo*\nDialpad, desktop, mobile" },
        { "type": "mrkdwn", "text": "*Matt Noxon*\nPerformance, dataloaders" },
        { "type": "mrkdwn", "text": "*Jason*\nStripe, PostHog, analytics" },
        { "type": "mrkdwn", "text": "*Dylan*\nVoiceprint, embeddings" }
      ]
    },
    { "type": "divider" },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": ":chart_with_upwards_trend: *Stats:* 6 features | 3 improvements | 6 bugs fixed"
        },
        {
          "type": "mrkdwn",
          "text": ":rocket: *21 PRs merged* • *Eduardo leading with 10*"
        }
      ]
    }
  ]
}

Deal Closed Celebration

成交庆祝模板

json
{
  "text": "Deal Closed: Acme Corp - $50,000 ARR",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":tada: Deal Closed!",
        "emoji": true
      }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*Account:*\nAcme Corp" },
        { "type": "mrkdwn", "text": "*ARR:*\n$50,000" },
        { "type": "mrkdwn", "text": "*Rep:*\n<@U12345>" },
        { "type": "mrkdwn", "text": "*Type:*\nNew Business" }
      ]
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": "Closed on <!date^1706451200^{date_long}|January 28, 2026>"
        }
      ]
    }
  ]
}
json
{
  "text": "Deal Closed: Acme Corp - $50,000 ARR",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":tada: Deal Closed!",
        "emoji": true
      }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*Account:*\nAcme Corp" },
        { "type": "mrkdwn", "text": "*ARR:*\n$50,000" },
        { "type": "mrkdwn", "text": "*Rep:*\n<@U12345>" },
        { "type": "mrkdwn", "text": "*Type:*\nNew Business" }
      ]
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": "Closed on <!date^1706451200^{date_long}|January 28, 2026>"
        }
      ]
    }
  ]
}

Approval Request (Interactive)

审批请求模板(交互式)

json
{
  "text": "Approval Needed: Enterprise Pricing",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":raised_hand: Approval Needed",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Enterprise Pricing Proposal*\nNew tier at $2,500/mo for 50+ seats."
      }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*Requested by:*\n<@U12345>" },
        { "type": "mrkdwn", "text": "*Deadline:*\nFeb 1, 2026" }
      ]
    },
    {
      "type": "actions",
      "block_id": "approval_actions",
      "elements": [
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "Approve", "emoji": true },
          "style": "primary",
          "action_id": "approve_proposal"
        },
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "Reject", "emoji": true },
          "style": "danger",
          "action_id": "reject_proposal"
        },
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "View Details",
            "emoji": true
          },
          "url": "https://notion.so/proposal-123",
          "action_id": "view_details"
        }
      ]
    }
  ]
}
json
{
  "text": "Approval Needed: Enterprise Pricing",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":raised_hand: Approval Needed",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Enterprise Pricing Proposal*\nNew tier at $2,500/mo for 50+ seats."
      }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*Requested by:*\n<@U12345>" },
        { "type": "mrkdwn", "text": "*Deadline:*\nFeb 1, 2026" }
      ]
    },
    {
      "type": "actions",
      "block_id": "approval_actions",
      "elements": [
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "Approve", "emoji": true },
          "style": "primary",
          "action_id": "approve_proposal"
        },
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "Reject", "emoji": true },
          "style": "danger",
          "action_id": "reject_proposal"
        },
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "View Details",
            "emoji": true
          },
          "url": "https://notion.so/proposal-123",
          "action_id": "view_details"
        }
      ]
    }
  ]
}

Alert/Warning

警报/警告模板

json
{
  "text": "Alert: High API Error Rate",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":rotating_light: Alert: High Error Rate",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "API error rate has exceeded 5% threshold.\n\n*Current rate:* 7.2%\n*Threshold:* 5%\n*Duration:* 15 minutes"
      }
    },
    {
      "type": "actions",
      "elements": [
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "View Dashboard",
            "emoji": true
          },
          "url": "https://grafana.example.com/alerts",
          "style": "primary"
        },
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "Acknowledge",
            "emoji": true
          },
          "action_id": "ack_alert"
        }
      ]
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": ":clock1: Triggered at <!date^1706451200^{time}|2:30 PM>"
        }
      ]
    }
  ]
}

json
{
  "text": "Alert: High API Error Rate",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":rotating_light: Alert: High Error Rate",
        "emoji": true
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "API error rate has exceeded 5% threshold.\n\n*Current rate:* 7.2%\n*Threshold:* 5%\n*Duration:* 15 minutes"
      }
    },
    {
      "type": "actions",
      "elements": [
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "View Dashboard",
            "emoji": true
          },
          "url": "https://grafana.example.com/alerts",
          "style": "primary"
        },
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "Acknowledge",
            "emoji": true
          },
          "action_id": "ack_alert"
        }
      ]
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": ":clock1: Triggered at <!date^1706451200^{time}|2:30 PM>"
        }
      ]
    }
  ]
}

Template Selection Decision Tree

模板选择决策树

What are you sending?
├── Update for Revenue Team (Rob, AEs, SDRs)?
│   └── Use: Rob Report Template
│       • Simple language (high school reading level)
│       • Customer-visible features only
│       • Table block for SDR metrics
├── Company-wide announcement?
│   └── Use: Newsletter Template
│       • Header with emoji
│       • Context with date
│       • "In Case You Missed It" section
│       • "Upcoming" with dates in backticks
│       • "For Your Information" callout
├── Engineering/Product digest?
│   └── Use: Daily Digest Template
│       • Headline quote block
│       • Categorized sections (Features, Improvements, Bugs)
│       • Team Focus with fields
│       • Stats in context block
├── Deal closed?
│   └── Use: Deal Closed Template
│       • Header with :tada:
│       • Fields for Account/ARR/Rep/Type
│       • Context with date
├── Need approval?
│   └── Use: Approval Request Template
│       • Actions block with Approve/Reject buttons
│       • Fields for requester/deadline
├── Alert/Error?
│   └── Use: Alert Template
│       • :rotating_light: emoji
│       • Current vs threshold values
│       • Acknowledge button
└── Tabular data?
    └── Use: Table Block (1 per message)
        • Put at END of blocks array
        • Use column_settings for alignment
        • Center numeric columns

你要发送什么类型的消息?
├── 给营收团队的更新(Rob、AE、SDR)?
│   └── 使用:营收团队报告模板
│       • 语言简洁(高中阅读水平)
│       • 仅展示客户可见功能
│       • 使用表格区块展示SDR指标
├── 公司全员公告?
│   └── 使用:新闻通讯模板
│       • 带表情的标题
│       • 带日期的上下文区块
│       • "近期回顾"板块
│       • "即将到来"板块,日期用反引号包裹
│       • "重要提示"板块
├── 研发/产品团队的每日摘要?
│   └── 使用:每日摘要模板
│       • 引用样式的头条板块
│       • 分类板块(功能、优化、BUG修复)
│       • 团队聚焦板块(字段布局)
│       • 上下文区块展示统计数据
├── 成交庆祝?
│   └── 使用:成交庆祝模板
│       • 带:tada:表情的标题
│       • 字段布局展示客户/ARR/销售/类型
│       • 带日期的上下文区块
├── 需要审批?
│   └── 使用:审批请求模板
│       • 带审批/拒绝按钮的操作区块
│       • 字段布局展示申请人/截止日期
├── 警报/错误通知?
│   └── 使用:警报模板
│       • :rotating_light:表情
│       • 当前值与阈值对比
│       • 确认按钮
└── 表格数据?
    └── 使用:表格区块(每条消息仅1个)
        • 放在blocks数组的最后
        • 使用column_settings设置对齐方式
        • 数值列居中对齐

Block Selection Quick Guide

区块选择速查

Content TypeBest Block
Title/Headline
header
Main text
section
Key-value pairs
section
with
fields
Text + button
section
with
accessory
Standalone image
image
Row of buttons
actions
Metadata/footer
context
Visual break
divider
Tabular data
table
(1 per message, at end)
Complex formatting
rich_text

内容类型最佳区块类型
标题/主标题
header
主要文本内容
section
键值对展示
fields
section
区块
文本+按钮
accessory
section
区块
独立图片
image
按钮行
actions
元数据/页脚
context
视觉分隔
divider
表格数据
table
(每条消息仅1个,放在末尾)
复杂格式化文本
rich_text

Validation Checklist

校验清单

Before sending:
  • Valid JSON syntax
  • Fallback
    text
    field at root level
  • All
    action_id
    values unique
  • Character limits respected (header: 150, section: 3000)
  • Image URLs are HTTPS
  • mrkdwn syntax correct (not standard Markdown)
  • Max 50 blocks for messages
  • Only 1 table block (if using tables)
  • Table block is LAST in blocks array

发送前请检查:
  • JSON语法有效
  • 根层级包含备用
    text
    字段
  • 所有
    action_id
    值唯一
  • 字符数限制合规(标题:150,段落:3000)
  • 图片URL为HTTPS协议
  • mrkdwn语法正确(非标准Markdown)
  • 消息区块数量不超过50个
  • 最多仅使用1个表格区块(若使用)
  • 表格区块位于blocks数组末尾

Common Emoji Reference

常用表情参考

TypeEmojis
Success
:white_check_mark:
:tada:
:rocket:
Alert
:warning:
:rotating_light:
:exclamation:
Info
:information_source:
:memo:
:newspaper:
Revenue
:moneybag:
:chart_with_upwards_trend:
:trophy:
Meetings
:movie_camera:
:calendar:
:busts_in_silhouette:
Dev
:hammer_and_wrench:
:gear:
:package:
:bug:
Time
:clock1:
:hourglass:
:stopwatch:
Category
:sparkles:
:wrench:
:loud_sound:
:bulb:

类型表情符号
成功/庆祝
:white_check_mark:
:tada:
:rocket:
警报/警告
:warning:
:rotating_light:
:exclamation:
信息/通知
:information_source:
:memo:
:newspaper:
营收/业绩
:moneybag:
:chart_with_upwards_trend:
:trophy:
会议/日程
:movie_camera:
:calendar:
:busts_in_silhouette:
研发/技术
:hammer_and_wrench:
:gear:
:package:
:bug:
时间/进度
:clock1:
:hourglass:
:stopwatch:
分类标签
:sparkles:
:wrench:
:loud_sound:
:bulb:

Date Formatting

日期格式化

Use
<!date^TIMESTAMP^FORMAT|FALLBACK>
in mrkdwn.
TokenOutput
{date_num}
2026-01-28
{date_short}
Jan 28, 2026
{date_long}
Monday, January 28th, 2026
{date_pretty}
today/yesterday/tomorrow or date
{time}
2:34 PM
{ago}
3 minutes ago
Example:
<!date^1706451200^{date_short_pretty} at {time}|Jan 28, 2026>

在mrkdwn中使用
<!date^TIMESTAMP^FORMAT|FALLBACK>
语法。
令牌输出示例
{date_num}
2026-01-28
{date_short}
Jan 28, 2026
{date_long}
Monday, January 28th, 2026
{date_pretty}
今天/昨天/明天 或具体日期
{time}
2:34 PM
{ago}
3 minutes ago
示例:
<!date^1706451200^{date_short_pretty} at {time}|Jan 28, 2026>

Testing

测试建议

Recommend testing in Block Kit Builder before sending.
建议在发送前,先在Block Kit Builder中进行测试。