The newest addition to our platform is all about:
Working on our modular platform is different from traditional HTTP-based APIs. If you’ve developed for Slack before, you may notice some familiarities, but it’s different enough that we recommend you approach this platform as a beginner. Don’t forget everything you know; you’re going to need your wits about you.
Slack is an event-oriented system, and the new platform puts your integrations directly into the fabric of those events.
Whether you’re matching messages with certain criteria, monitoring state changes in an external system, executing business logic on a fixed schedule, or triggering on a unique combination of factors you carefully define, your app becomes part of the system.
|Functions are the distinct actions your integration can perform, taking specific inputs and producing defined outputs.|
|Workflows are a sequenced set of steps, interactions, and functions chained together.|
|Triggers are how workflows begin, whether via automation or direct user interaction.|
|Datastores are secure places to stash and retrieve data you need during runtime.|
|Run on Slack lets you optionally execute everything on Slack infrastructure, code and all.|
Currently, you, the developer, are able to produce functions, workflow, and triggers programmatically. Eventually, users will be able to take each capability you offer and remix them with other functions, services, and software providers — making you a kind of platform provider yourself!
Whether you're an seasoned Slack developer or completely new, here's what you need to know before you can get building.
You'll need a Slack workspace on a paid plan you can work on.
While in development, you can keep your project mostly to yourself or share it with a close collaborator. If your Slack admin cabal requires approval of app installations, they’ll need to approve what you’re building before it’ll run locally on your computer or deploy using Slack infrastructure.
A compass might be helpful as you explore this new world though - consider using a code editor designed to make strongly typed languages a joy to work with. We recommend a Deno plugin for VSCode that makes discovering a sense of flow possible, without switching to documentation too often.
A modular Slack apps's capabilities are defined by its app manifest. One of the joys of defining your manifest in Typescript is leveraging the language's features to automate its creation. In other words, think of cool tricks you might want to try to make your manifest less monolithic. Our starter template shows you one way we've settled on.
We are heartily working on support for other languages and environments, including adding support to our line of Slack Bolt SDKs. Stay tuned.
From your first steps in getting started to deploying to production, you'll be interfacing with a command-line interface - available on all modern operating systems - to build modular Slack apps. That being said, you'll find yourself switching between editing code and configuration files, running CLI commands, and using Slack itself.
One caveat (for now): the app management UI on
api.slack.com/apps doesn’t support configuring modular Slack apps.
We write most of the documentation with an audience of someone who's never built on Slack before in mind. Of course, if you have developed on Slack before, you're going to arrive with notions about slash commands, bot users, and OAuth.
We hope you'll approach building modular Slack apps with a beginner's mind. We don't recommending rushing to add functions to an existing app or to recreate one first off.
Learn how to build these function-oriented, event-driven integrations from our tutorials and sample code. This way of building is new, and our Developer Relations team is excited to share what they've learned building with you.
The features available today are for developers like you. The features of tomorrow expand the narrative to better include and empower everyday users. Keeping in mind how users may one day remix your functions should inform how you approach the new platform.
Metadata is a love letter to the future. Every message you put into the system that has metadata attached can potentially benefit a user or developer at a later date. Who knows how someone might want to crunch data encoded in messages, or how they might want to filter and divide a conversation's history? You can even add structured metadata to the messages your current apps are posting.
Everyone will have a remit to remix. How you design the inputs and outputs of your functions and suggest use cases with workflows will have an enormous impact on what stories are left to tell when users begin to combine functions from Slack and other apps into sequences you've never considered before.
You're a platform provider now too. If you're building with metadata and functions, that makes you a kind of API service provider and along with that you should consider what kind of governor you'll be. We provide some tools to help you manage your little fiefdom too.
Learn the ropes of building a next-gen Slack app by building an app that can build up your crew.
Take a tour around our Hello World next-gen sample app.
The Welcome Bot helps create, store, and send friendly welcome messages when a user joins a channel.
Learn how to code functions utilizing the GitHub API, all neatly sequenced in a workflow.
Use TypeScript and Deno to create an announcement bot.
Log runs and view a leaderboard with stats.
Use Typescript and Deno to build a time-off approval workflow.