Slack platform overview
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. If you're just looking to get a token to call the Web API methods, completing the first three steps of the Quickstart will get you there.
β¨ Our sample apps and tutorials are also particularly useful for those floating aimlessly, as they utilize our Bolt framework and SDK. 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:
- Create an app using the CLI or the app settings page. Then, decide which scopes your app needs and get tokens in return.
- 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.
- 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.
Organize your app's information in visually appealing way with Block Kit. This includes 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.
β¨ Apps that use platform AI features 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 provide even wider functionality. Shortcuts are a simple and reliable way to save your app's location for ease of discovery by users.
Tools of the tradeβ
Slack provides several tools to aid you in your quest to creating Slack apps.
β¨ The Slack CLI is the recommended way to manage your app's entire lifecycle, from creation to installation and administration.
β¨ Developer sandboxes let you play around with platform features outside of a production environment.
β¨ The Bolt framework, available for Python, JavaScript, and Java, uses the Slack SDKs (available for Python, Node, and Java) under the hood to handle the fiddly bits of app development, including token rotation and navigating rate limiting. It is the fastest way to build a capable and secure app.
β¨ Use the App settings to create apps for times when you don't need any code but want to enable access to the platform via tokens to use with the Web API.
App vs. workflowβ
For the non-technically inclined, Slack offers a no-code tool to build workflows: Workflow Builder. This tool is accessed via the Slack client. The Slack platform extends Workflow Builder by providing an avenue to write custom workflow steps. These steps are coded as a function in an app. Once deployed, they are available to use as a step in Workflow Builder.
Those custom workflow steps can be created in an app built with the Bolt framework, 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 workflows. While there is power in those possibilities, it can be daunting to recognize which pieces of the platform apply where. 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?