1,284 · ↑ 8.2%
42 · ↑ 12.0%
USD 8,420 · ↑ 4.6%
0.18% · ↓ 0.07 pp
Team workflows / BLOCK KIT JSON
Summarize the day with key metrics, comparison periods, and a brief explanation of what changed.
Blank optional fields are omitted. Fallback text updates with your fields.
Approximate Slack rendering. Buttons are visual previews; no actions are sent.
Local validation checks the supported schema. It does not guarantee Slack API acceptance.
Manual editing and validation run in your browser. Opening Slack’s Builder shares the message with Slack.
Daily pulse · 20 October Checkout conversion improved after yesterday’s release. Error rate remains within the 0.5% target. Daily active accounts: 1,284 · ↑ 8.2% New workspaces: 42 · ↑ 12.0% Collected revenue: USD 8,420 · ↑ 4.6% Checkout error rate: 0.18% · ↓ 0.07 pp 00:00–23:59 UTC · Compared with previous day · Data complete Explore dashboard: https://example.com/analytics/daily
Download the payload or use this command in your own terminal. Replace the placeholder URL with your Slack incoming webhook. Keep the real URL secret. This tool never sends a Slack message.
curl --request POST \
--header 'Content-Type: application/json' \
--data-binary @- \
'https://hooks.slack.com/services/YOUR/WEBHOOK/URL' <<'SLACK_MESSAGE_JSON'
{
"text": "Daily pulse · 20 October\nCheckout conversion improved after yesterday’s release. Error rate remains within the 0.5% target.\nDaily active accounts: 1,284 · ↑ 8.2%\nNew workspaces: 42 · ↑ 12.0%\nCollected revenue: USD 8,420 · ↑ 4.6%\nCheckout error rate: 0.18% · ↓ 0.07 pp\n00:00–23:59 UTC · Compared with previous day · Data complete\nExplore dashboard: https://example.com/analytics/daily",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "Daily pulse · 20 October"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Daily active accounts*\n1,284 · ↑ 8.2%"
},
{
"type": "mrkdwn",
"text": "*New workspaces*\n42 · ↑ 12.0%"
},
{
"type": "mrkdwn",
"text": "*Collected revenue*\nUSD 8,420 · ↑ 4.6%"
},
{
"type": "mrkdwn",
"text": "*Checkout error rate*\n0.18% · ↓ 0.07 pp"
}
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Checkout conversion improved* after yesterday’s release. Error rate remains within the 0.5% target."
}
},
{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": "00:00–23:59 UTC · Compared with previous day · Data complete"
}
]
},
{
"type": "divider"
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Explore dashboard"
},
"action_id": "dashboard",
"url": "https://example.com/analytics/daily"
}
]
}
]
}
SLACK_MESSAGE_JSONGive the team a daily operating snapshot without making them open several dashboards. The two-column fields keep related measures scannable; a short interpretation explains which movement deserves attention.
Choose a small set of metrics with consistent definitions. State the reporting time zone and comparison period, and include units. If data is incomplete, say so instead of displaying a misleading zero.
Compute the metrics in your analytics pipeline and send after the reporting window closes. This template displays supplied values; it does not query a database or calculate the changes.
To post this JSON, create a Slack app with an incoming webhook for your channel, or use chat.postMessage with the appropriate bot token and permissions. Keep credentials on your server.
For buttons, enable Interactivity and handle Slack’s interaction requests, including URL buttons. Acknowledge requests promptly. This preview does not execute actions, authorize users, or save decisions.
Use the top-level fallback text for notifications and accessibility. Test your final payload in Slack; local validation covers the declared subset, and visual details vary by client.
Slack interaction setup ↗