Loading...
Loading...
Format Slack messages using Block Kit for rich, interactive layouts. Apply when sending any Slack message that should look polished.
npx skill4agent add tylersahagun/pm-workspace slack-block-kituser-mcp-config-2mgojiSLACK_SEND_MESSAGE{
"channel": "C12345678",
"text": "Fallback text for notifications",
"blocks": [ ... ]
}textMessage Payload
└── blocks[] (layout containers, max 50)
└── Block elements (interactive components)
└── Composition objects (text, options)| Type | Use For | Key Rules |
|---|---|---|
| Titles | 150 chars max, |
| Main content | 3000 chars, can have accessory |
| Visual separation | No content |
| Standalone images | HTTPS URL required, |
| Metadata, timestamps | Max 10 elements, renders small/muted |
| Button rows, menus | Max 25 elements |
| Tabular data | 1 per message, max 100 rows, 20 columns |
| Formatted text | Lists, quotes, code blocks, styled text |
only_one_table_allowedraw_textrich_text{
"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" }
]
]
}| Property | Type | Description |
|---|---|---|
| string | |
| boolean | Whether to wrap long text (default: false) |
{
"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 } }
]
}
]
}
]
]
}{
"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 } }
]
}
]
}{
"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" }]
}
]
}
]
}{
"type": "rich_text",
"elements": [
{
"type": "rich_text_quote",
"elements": [
{
"type": "text",
"text": "This is really going to change how we work."
}
]
}
]
}| Type | Properties | Use For |
|---|---|---|
| | Plain/styled text |
| | Clickable links |
| | @mentions |
| | #channel links |
| | @group mentions |
| | Emoji |
| | Formatted dates |
| | @here/@channel/@everyone |
{
"style": {
"bold": true,
"italic": true,
"strike": true,
"code": true
}
}{
"type": "header",
"text": {
"type": "plain_text",
"text": ":rocket: Header Text Here",
"emoji": true
}
}{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Bold* and _italic_ text with <https://example.com|links>"
}
}{
"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"
}
}{
"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" }
]
}{
"type": "divider"
}{
"type": "image",
"image_url": "https://example.com/chart.png",
"alt_text": "Q4 revenue chart"
}{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": ":clock1: Posted at <!date^1706451200^{date_short_pretty} at {time}|Jan 28, 2026>"
}
]
}{
"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"
}
]
}primarydanger| Format | Syntax | Example |
|---|---|---|
| Bold | | |
| Italic | | |
| Strikethrough | | |
| Code | | |
| Code block | | Multi-line |
| Quote | | Indented |
| Type | Syntax |
|---|---|
| URL | |
| URL with text | |
| User mention | |
| Channel link | |
| @here | |
| @channel | |
| Character | Escape As |
|---|---|
| |
| |
| |
| Wrong | Correct |
|---|---|
| |
| |
| |
| Use header block |
{
"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*"
}
]
}
]
}{
"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" }
]
]
}
]
}{
"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*"
}
]
}
]
}{
"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>"
}
]
}
]
}{
"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"
}
]
}
]
}{
"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>"
}
]
}
]
}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| Content Type | Best Block |
|---|---|
| Title/Headline | |
| Main text | |
| Key-value pairs | |
| Text + button | |
| Standalone image | |
| Row of buttons | |
| Metadata/footer | |
| Visual break | |
| Tabular data | |
| Complex formatting | |
textaction_id| Type | Emojis |
|---|---|
| Success | |
| Alert | |
| Info | |
| Revenue | |
| Meetings | |
| Dev | |
| Time | |
| Category | |
<!date^TIMESTAMP^FORMAT|FALLBACK>| Token | Output |
|---|---|
| 2026-01-28 |
| Jan 28, 2026 |
| Monday, January 28th, 2026 |
| today/yesterday/tomorrow or date |
| 2:34 PM |
| 3 minutes ago |
<!date^1706451200^{date_short_pretty} at {time}|Jan 28, 2026>