Resolving to build a better Slack app
New decade, new features 🎉
More tools at your fingertips
Looking for a New Year’s resolution? Now is the perfect time to modernize your Slack app using the Slack app toolkit — comprised of a new permissions model, evolving UI framework, new surfaces for apps in Slack, and action-oriented shortcuts.
These tools open up a world of possibilities for Slack apps, so here’s some guidance on how to build best-in-class app experiences — using Block Kit and app surfaces.
About Block Kit
Block Kit is Slack’s UI component library that enables you build rich, interactive app experiences — now supported in a variety of places across Slack. Transform your app through a more intuitive, persistent user experience, going beyond conversation-based message interactions.
Apps built with Block Kit are composed with blocks, stackable bits of customizable UI. Most of these blocks are familiar components — such as text, image, button, menu, etc. Simply define your desired app interface using our JSON schema, and let the Block Kit framework do the heavy lifting of rendering, passing submission payloads, and scaling across devices.
Initially available for Slack app messages, Block Kit is now an extensible framework that transforms other parts of the app experience — like ephemeral information display, structured data gathering, and more dynamic interactions.
A vocabulary lesson
Surfaces are places within the Slack UI where blocks can be displayed. Available surfaces are messages, modals, and the home tab. There is a unique use case for each surface, so you can build an optimal app experience. Let’s take a tour of each surface.
Messages
Messages are the original app surface. Blocks that live in messages are formatted text, images, and simple interactive elements. We recommend using messages for specific pieces of information that require immediate attention or multi-person collaboration in channels.
With the additional surfaces, you now have more flexibility to drive focus and improve user productivity with your Slack app. If immediate action is not required, there are two other surfaces to explore.
Home 🏠
This is the default place for a user to learn how to use your app, and actually use it. Home can be used for settings, onboarding, dashboards, or custom content — specific to each user and each app. Here are some examples we love.
Guru, a knowledge management tool, built a home tab as a persistent place for users to access actions they can take with the app — like Create Card
, Create Board
, Search Guru
, and the help menu. Guru’s app home tab also includes a custom list of relevant information specific to each user, such as Recently Viewed Cards
.
Fellow, an app for tracking feedback and goals, built a home tab that follows a similar format — including accessible actions and personalized details relevant to each user, like Priority
and Recent Activity
. Also, Fellow uniquely uses this surface as a chance to hear from their users, by implementing a Send us feedback
button.
Outlook Calendar, one of the calendar apps for Slack, displays upcoming events with the option to respond, see more details, or schedule a new meeting.
For the home tab, the possibilities are endless! Imagine an app that could display documents for your review, or request feedback, or process updates to a sales record, or track performance metrics, or open incident tickets. This is a safe space for users to interact with your app; take the opportunity to engage with them — right in Slack, in the comfort of your app home.
Modals
Modals are ideal for focused productivity, complex workflows, or aggregated user input. Capabilities include dynamic updating, multi-step modals, and user input validation. If you don’t want to overload your app’s messages or home tab with tons of text, informational modals are ideal for pushing additional details to your users.
Today, modals are also used to display settings, authentication controls, and product details — leveraging capabilities like radio buttons, selects, and dynamic updating to help users connect an app to a third party service.
Modals are also useful for collecting structured data. Input blocks enable you to ingest and validate information from users — followed by a dynamic update or another modal to kick off an advanced workflow that’s custom to each user. Today, these features are used for course enrollment, logging a ticket, filing an expense report, completing a survey, requesting IT support, and more!
For existing apps, we strongly recommend migrating ephemeral messages to modals. For new apps, we suggest also including confirmation screens or using the confirm object to make sure a user knows exactly what their actions are triggering and where any information will go or post before you post on behalf of a user in another channel.
Looking for more tips and tricks? Read Cloverpop’s UX best practices for building with these features.
Looking ahead
This functionality will continue to evolve, but not every feature of your app needs to live in Slack. Keep an eye out for the intersection of productivity tools and collaboration in Slack — such as code reviews, approval flows, or status updates.
Slack is where communication, tools, and teams align — and it’s up to you to make that vision a reality. As you set out on your Slack app journey, these Block-Kit-powered surfaces enable you to build rich interactivity right into the app experience in Slack. We can’t wait to see what you build next!
Questions? Email feedback@slack.com or tweet @SlackAPI.