Skip to content
Block Kit for React
Esc
↑↓navigate↵open⌘Jpreview
On this page

Block Kit examples

Ready-to-copy Block Kit messages, modals and Home tabs for common jobs, from approval requests and deploy notifications to forms and dashboards.

Each example below is a complete Block Kit payload for a common job, rendered live. Open the JSON tab to copy the payload, or edit it there and watch the preview change. Every block in them is one this package compares against Slack’s own rendering, and the names and ids are placeholders.

Paste a message payload into chat.postMessage as blocks, a modal into views.open as view, and a Home tab into views.publish as view. To render the same JSON in your own React app, pass it to <Message> or <View> (see Surfaces).

Messages

Approval request

Ask someone to approve or deny a request, with the details they need to decide on the spot. Click a button to see the block_actions payload your app receives.

Your AppAPP
requested a new device:
Laptop replacement
Type:
Computer (laptop)
Submitted:
Oct 1
Current device:
Issued Mar 2022
Reason:
The keyboard stopped working.
onActionInteract with the preview.

The Quickstart builds this flow end to end, replacing the buttons with the outcome once someone answers.

Deploy notification

Report a finished deploy to a channel, with a link out to the logs and a way to roll back.

Your AppAPP

:rocket: Deployed api@4.2.0 to production

Service:
api
Environment:
Production
Deployed by:
Duration:
4m 12s
Changes
• Retry failed webhooks with backoff
• Cache the billing plan lookup
• Upgrade the database driver
Posted to #releases by the deploy pipeline
onActionInteract with the preview.

Incident alert

Page a channel about an incident, show its severity and owner, and let people acknowledge it or pick a follow-up from an overflow menu.

Your AppAPP

:rotating_light: SEV-2: Checkout error rate above 5%

Errors on POST /checkout rose to 7.4% over the last 10 minutes. The on-call engineer has been paged.
Severity:
SEV-2
Status:
Investigating
Owner:
Started:
12:00 PM

INC-311 · Updates every 15 minutes in this thread
onActionInteract with the preview.

Poll

Let a channel vote. Each option is a section with a button, and a context row under it shows who voted.

Your AppAPP
Where should we hold the team offsite? Poll by

:sunny: Lisbon
Warm, walkable, good food.
Grace HopperAlan Turing2 votes
:snow_capped_mountain: Oslo
Fjords, saunas, a short flight.
Ada Lovelace1 vote
:house_with_garden: Stay remote
A day of talks over video.
No votes

onActionInteract with the preview.

Every Vote button shares the action_id vote; the block_id and value tell your app which option was picked. Update the message with the new counts when a vote comes in.

Weekly report with a chart and a table

Post numbers to a channel as a chart and a small table instead of a wall of text. Slack allows two data_visualization blocks per message; see Limits.

Your AppAPP

Support report: week 40

Tickets closed per day

Tickets
0102030405060MonTueWedThuFri
Day
Closed
QueueOpenMedian reply
Billing1238 min
Accounts71 h 5 min
Integrations32 h 20 min
Generated every Friday at 5 PM

For larger datasets that need sorting and paging, use a data table. The table and data visualization pages list every field.

AI answer with feedback buttons

Show an assistant’s answer with thumbs up and down under it, so you can collect feedback on each response.

Your AppAPP
You can rotate an API key from Settings → API keys. The old key keeps working for 24 hours, so you can deploy the new one before it stops.
onActionInteract with the preview.

Modals

Request form

Collect a structured request: a required title, a priority, optional details and notification choices. Press Create with the title empty to see Slack’s client-side validation.

New ticket

Tell us what went wrong. All fields are shared with the on-call team.
Title
Priority
Details (optional)
Steps to reproduce help a lot.
Notify (optional)

The Modals guide shows how to open this from a button and answer the view_submission with errors; Validation lists the checks that run first.

Confirm a destructive change

Warn before something that can’t be undone, with an alert (a block Slack accepts only in modals) and a short summary of what changes.

Delete project

Heads up: this can't be undone.
Deleting Website redesign removes its 24 tasks and 3 linked channels for everyone.
Type the project name to confirm

Home tab

Onboarding Home tab

Greet new users in your app’s Home tab with the first steps to take, and a place to come back to.

Home

Welcome to Tickets :wave:

Tickets turns requests in Slack into tracked work. Three steps get your team started:

1. Connect a channel
Requests posted in it become tickets automatically.
2. Invite your team
Everyone you add can pick up and close tickets.
3. Create your first ticket
Or use the /ticket command from any channel.

:bulb: Questions? Ask in #general or read the docs.
onActionInteract with the preview.

Dashboard Home tab

Show each user their own open work, with a menu of actions per item.

Home

Your tickets

3 open · 1 waiting on you

Login page times out
Opened 2 days ago · High
Export to CSV drops the last row
Opened today · Medium
Last updated today
onActionInteract with the preview.

Build your own

Last updated on