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

Beta FAQ

If you came here expecting an answer to a question that you did not find, please let us know.

FAQs

What does beta platform mean, exactly?

During this openly accessible beta period, we will continue to evolve and add to the new Slack platform. We'll also try to ensure we don't make any significant breaking changes that require large amounts of refactoring of your work.

However, this is still a beta, and you should be forewarned that things can and probably will change, and those changes could be major.

What are the requirements to join the beta?

Slack customers on any paid plan can participate in the beta. Before you begin, an admin or owner of your workspace needs to have accepted the Slack Platform and Beta Service Terms here.

How do I set up my developer environment?

First, make sure an admin or owner of your workspace has accepted the Slack Platform and Beta Service Terms here. This will get your workspace ready to participate in the beta.

Once your workspace is ready, head to the Quickstart guide to use our automated installer script— or download the latest version of the slack CLI and follow instructions to install it manually.

Using a combination of your favorite text editor, the slack CLI tool, and the included future generation SDK, you will program in TypeScript for a Deno-based runtime.

Start with our Quickstart to go through the entire process.

Which hosts are involved in the creation and execution of apps created with the CLI?

The new Slack platform is closely tied to specific language runtimes and SDKs. As you install and utilize your developer tools, you should expect requests from your network to the following non-exhaustive list of hosts:

  • api.slack.com, configuration information and documentation resources
  • downloads.slack-edge.com, where binaries and other static resources are hosted by Slack
  • slack.com, where most of the individual APIs reside called by the CLI and your app
  • slackb.com, general logging for your triggers, functions, and workflows
  • slackd.com, where we send information about errors, warnings, and other special conditions
  • deno.land, where the Typescript runtime, Deno, resolves & retrieves dependencies and versions

How do I add the slack CLI to my path?

If you're on Mac or Linux, consider using the automated installer script in the Quickstart guide to get your workstation ready to start using slack right away.

To add the program to your path manually:

Mac/Linux: Copy the CLI into any folder that is already in your path—such as /usr/local/bin—or add a new folder to your path by listing whatever folder you installed the CLI to in /etc/paths.

Windows: Copy the CLI into any folder that is already in your path, or add a new folder to your path by listing whatever folder you installed teh CLI to in your Environment Variables. You may not have access to edit System variables, so you might need to add it to your account's User variables.

On Windows, you can open the Environment Variables dialog by pressing the Win+R keys to open the Run window, and entering the following command: rundll32.exe sysdm.cpl,EditEnvironmentVariables.

How can two or more developer collaborate on an app?

Let's say there are two developers, Luke and Alexis. Luke is the initiator who creates the original app, but they want Alexis to be able to work on the app as well.

Here's how Luke and Alexis can collaborate on their next-generation app:

  1. Luke deploys the app once with slack deploy, which will create a .slack/apps.json file that should be checked in to version control.
  2. Luke adds Alexis as a collaborator with slack collaborator add.
  3. Alexis clones the repo on their workstation, then runs slack deploy.

At this point, both Luke and Alexis can develop locally with slack run; they have unique (dev) instances of the app on their workspace.

In this above example, there are three instances of the app:

  • The production version of the app
  • Luke's development version of the app that they can work on with slack run
  • Alexis's development version of the app that they can work in with slack run

Each developer's local project files will have a .slack/apps.dev.json unique to them. This file should not be checked in to version control.

How do I build a slash command in the future generation platform?

Slash commands as they've been known in previous generations of the platform are not part of the new platform. We're working on a variety of invocation trigger types, some that are launched very similarly with / keystrokes via the the Shortcut menu. We may refer to this clever way of executing a shortcut as a slash command, especially to end users, so fear not fellow slash commandos.

But at this time, users must invoke workflows via link triggers. There are more link trigger types for more programmatic triggering.

Which languages are supported for Run on Slack?

At this time, apps that run on Slack are built with Typescript in a Deno runtime environment.

What's the difference between slack run and slack deploy?

When you use slack run the development version of your app connects to Slack via socket mode directly from where you're developing. As you use Slack (or other tools) to interact with your app's triggers, workflows, and functions, data is sent back and forth against your latest saved code. Use this while you're still tweaking things. Your development app is generally only shared with other collaborators, though you can test the full range of trigger options anyway.

When you use slack deploy the production version of your app is used and the code and instructions you've written are packaged up and stored on Slack. As users use Slack (or other tools) to interact with your app, data is swiftly and securely sent back and forth between Slack servers. Treat this instance of your app with care, especially as your userbase grows.

Errata

Deployment and installation

  • Workspace owners and administrators cannot run slack deploy to deploy apps when a workspace has admin-approved apps turned on. Use an alternative non-admin or non-owner account to build, test, and deploy beta apps.
  • JSON or YAML-based app manifests are no longer how your app's configuration is canonically defined. Instead, both your app's configuration and your function definitions will reside in manifest.ts.

Have 2 minutes to provide some feedback?

We'd love to hear about your experience with the new Slack platform. Please complete our short survey so we can use your feedback to improve.