The new Slack platform and the features described below are in beta and under active development.
Beginner

Welcome to our future-generation platform!

Our new platform is all about:

  1. Coding functions and workflows to encapsulate your capabilities
  2. Using the Slack CLI to develop, test, and deploy your functions and workflows with ease
  3. Empowering users to remix and recombine your functions in Workflow Builder

You'll need to imagine a future for number three, a future where everything your app can do may be recontextualized by others users and developers alike.

Working on this new platform is different from traditional HTTP-based APIs. If you’ve developed for Slack before, you’ll find some things you remember 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. Things are just fundamentally different.

Slack is an event-oriented system and the new platform puts your integrations directly into the visible and unseen fabric of what happens every micro-moment on Slack. Now unique capabilities are brought to life at the right time and place. 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.

Modular building blocks

Clip art depicting a stack of multi-colored blocks, representing Slack functions Functions represent the distinct useful things your integration can do, taking specific inputs and producing defined outputs.
Here we see arrows bouncing between workflow sandwiches in clip art representing workflows Workflows are a sequenced set of steps, interactions, and functions chained together.
This clip art suggests a marble culprit knocking down sandwiches arrayed like dominoes, certainly evoking how we think about triggers and you should too. Triggers are how workflows begin, whether via automation or direct user interaction.
This clip art shows what looks like a stack of miniature computer hard drives you might find on a desk in another era. This symbolizes where you can store data for functions and workflows on Slack. Datastores are optional, secure places to stash and retrieve data you need during runtime.
This image shows a neat little box with the Slack logo on it. You can run your apps on Slack, the image seems to suggest. Run on Slack lets you optionally execute everything on Slack infrastructure, code and all.

At this phase of the beta, 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. Welcome to the club!

Before you begin

You might not read all the docs. You may come from the past of developing on Slack in other ways. Maybe you're new and just want someone to cut through the slack. Here's what you need to know.

You need a workspace.

For now, you need a Slack workspace on a paid plan you can work on. The free tier won't work with these features yet. 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” or “deploy” in a managed workspace -- "run" means testing things out from your own computer and "deploy" means using Run on Slack to interpret and execute your instructions in real time.

Learning about Typescript and Deno will help you out.

If you don't already know Typescript (a strongly typed evolution of Javascript) or Deno (a limited runtime environment inspired by Node.js), you might struggle a bit with various conventions, configurations, and confabulations. Here's what we have found especially useful when developing in this new environment:

  • Use 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.
  • Get to know Typescript and even the history of Deno and why it exists. Just as Typescript evolved out of Javascript and Deno evolved out of Node, so too does this new platform evolve out of the old one.
  • Take some time to look at sample code and tutorials around building end-to-end functions and workflows. If you just get right started on programming, you might feel like you’re in a swirling vortex of symbols and ceremony and it may be impossible to grok what quite is configuration and what is code. The line is certainly blurred.
  • The beta platform uses app manifests to define your app's capabilities, but 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.

If this all sounds like work and you just want to have some fun, start with a template and just look for the things you know and love from other languages. You can find your way through this even without knowing what you're doing.

We are heartily working on support for other languages and environments, including using our line of Slack Bolt SDKs to build "remote functions." Stay tuned.

You’ll spend time on the command line.

From your first steps in getting started to deploying to production, you'll be interfacing with a command-line interface to build on the beta platform. Good news: modern operating systems like Microsoft Windows, GNU/Linux, and even MacOS offer terminal access, allowing you to use the tools we've crafted specifically for this developer experience.

  • The app management UI on api.slack.com/apps doesn’t support configuring future generation apps at this time.
  • Developing on the future generation platform requires switching between editing code and configuration files, running CLI commands, and using Slack itself. You'll spend a lot of time on the command line.

Begin again again.

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 the platform during the beta 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.

Consider the future today.

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 app already posts today. Why wait to join the future when it's so low effort today?
  • 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.

Ready?

Begin with our quickstart

Then try our tutorials

Beginner
Explore the 'Hello World' app

Take a tour around our 'Hello World' sample app

Beginner
Building approval workflows using Typescript and Deno

Use Typescript and Deno to build a time-off approval workflow using our future generation platform.

Beginner
Create a GitHub issue with a Workflow

Learn how to code functions utilizing remote APIs, all neatly sequenced in a workflow. We'll use the GitHub API for this one.

Beginner
Create your own bot to welcome users

The Welcome Bot helps create, store and send friendly welcome messages when a user joins a channel.

Beginner
Navigate the app development experience

Learn the ropes of building a Slack app before you dive into development.