Skip to main content

Slack platform overview

Welcome to the new home of Slack developer docs!

We're still building and not all features are available quite yet. Enjoy this peek into the future!

Not ready for the future? Return to the past at api.slack.com.

More doing, less reading

To jump straight into developing your own Slack app, follow our Quickstart. You can get started right now.

Hello there, fellow developer! πŸ‘‹

Welcome to the Slack API documentation, the place where ideas turn into interactive apps, workflows get automated, and Slack becomes the platform that powers your workday. Our documentation on APIs, SDKs, and tools can assist you in creating apps that make work life simpler, more pleasant and more productive.

The Slack developer platform revolves around Slack apps.

Which brings us to...

What is a Slack app?​

A Slack app is a tool or integration that extends the functionality of Slack: it adds new features, automates tasks, integrates with external services, or enhances the user experience. A Slack app allows you to do more within Slack than just chat. With the Slack platform, individual and enterprise developers alike can create apps that integrate directly with the tools teams already use, whether that's connecting a CRM, managing project boards, or sending automated alerts.

We know our platform is deep and wide, and possibly a little intimidating as a result. It's okay to not know where to start.

  • If you want to take it slow, this guide on designing your app is a little light reading on how to define the look and feel of your app.
  • If you'd rather stop the chitchat and get into it, build an app with the Quickstart guide.

✨ Our sample app tutorials are also particularly useful for those floating aimlessly, as they utilize our frameworks and SDKs. No matter what you try to do, we'll be right beside you.

The path of app creation​

There are three high-level steps to creating a Slack app:

  1. Create an app in the app settings page. This is where all configuration of your app takes place. There, you decide which scopes your app needs and get tokens in return.
  2. Code the logic of your appβ€”which APIs your app will use, events it will respond to, which actions it will take, etc.β€”in the code editor of your choice. We recommend VS Code and using the Bolt framework (a Slack-created open source framework for JavaScript, Python, or Java) to make things easiest.
  3. Deploy your app locally to test it. Then, look into distribution and authentication.

Along the way, you can decide to use different surfaces, methods, and blocks that make up the visual structure of your app.

Go deeper​

Define where your app lives across the several available Surfaces.

Surfaces encompass all the areas that a Slack app can touch: messages, modals, the App Home, and canvases. Messages, modals, and canvases are available for all types of Slack apps, while the App Home is available for non-workflow apps.

Organize your app's information in visually appealing way with Block Kit. These include interactive blocks, like buttons, that you can use to facilitate user interaction.

Block Kit allows you to build beautiful surfaces with reusable components. Customize the order, appearance, and direct user interactivity with stackable, versatile blocks.

Further customization​

Make your app yours. Introduce personality and further custom functionality.

✨ AI apps bring another layer to app interactivity by providing a space to integrate your app with your chosen LLM.

✨ Interactivity covers the ways users can initiate interaction with Slack apps, including slash commands and shortcuts. Slash commands allow you to start your app from a simple keystroke and for non-workflow apps, provide even wider functionality. Shortcuts are a simple and reliable way to save your app's location for ease of discovery by users.


App vs. workflow​

The main differentiators between apps and workflows are that apps (you may see these referred to as non-workflow apps) are self-hosted while workflows are Slack-hosted. Workflows are built with the Deno SDK while apps can be built using any of the Bolt SDKs or no SDK at all (if you're more of a DIY-er you can go it alone and call our APIs without an SDK). Both have the ability to carry out actions within Slack and with integrated third-party services.

Rather than creating a workflow through the app settings (where you create apps), workflows are created and configured in Workflow Builderβ€”a builder-friendly interface for automating tasks. Workflow Builder is an end-user facing UI built within Slack. As a developer, you can write custom steps that can be used as workflow steps in Workflow Builder. Those can be created via a workflow app using the Deno Slack SDK or in a Bolt app, in any of Bolt's flavors (Python, JavaScript, and Java).

The Slack platform offers many options on the road to creating custom Slack apps and workflow automations. While there is power in those possibilities, it can be daunting to recognize which pieces of the platform apply to which type of app. We encourage you to read through a detailed comparison of the options here.


What's next?​

Each developer's needs differ. Maybe you want to explore how to distribute your app or even have it listed on the Slack Marketplace. Perhaps you're interested in managing apps as an admin. Better yet, explore the tools that make the job of app building easier.

Keep the end-goal in sight like a guiding horizon: a user wants to accomplish something with your app. The rest is getting there as productively and pleasantly as possible. Ready?