Slack platform overview

The Slack platform offers many tools to aid you in enhancing your workspaces. At a high level, they can be viewed through the lens of workflow automations and non-workflow Slack apps.

Workflow automations

These comprise both workflow apps and Workflow Builder. Workflows are built upon functions. These functions can include Slack-native actions, custom actions, or actions involving third-party apps.

For example, you can:

  • create coded workflows written in TypeScript using the Slack Deno SDK.
  • make coded functions available for users in Workflow Builder with either the Deno Slack SDK or the Bolt SDKs.
  • connect a Workflow Builder-created workflow to a coded workflow via Workflow Buttons (as long as the second workflow is a link trigger).

However, note that you cannot:

  • bring entire coded workflows into Workflow Builder β€” you can only bring in custom functions.
  • run a workflow on an event (for example, "Workflow A executed").
  • run non-link triggers in Workflow Buttons.
  • use a custom function that has object types for either input or output properties within Workflow Builder, as it is not supported at this time.
  • use a custom function that has an interactivity_pointer input within Workflow Builder, as it is not supported at this time.

Non-workflow Slack apps

These can use a wide variety of APIs to access deep levels of customization. They can be built using our range of Bolt SDKs.

For example, you can:

  • develop using a Free plan.
  • choose which programming language you want to build your app, and create apps using the Python, JavaScript, or Java Bolt SDKs.
  • self-host your app.
  • access a larger variety of APIs such as the Admin, Discovery, and Audit Logs APIs.
  • list your apps in the App Directory.

Feature comparison tables

With so many feature sets and tools available β€” many of which overlap with one another β€” it can be a little daunting to decide which path is right for you.

You are in a maze of twisty little passages, all alike.

The following tables compare the features and some common development goals of these tools. May they offer additional guidance as you choose your own adventure.

Developing automations requires a paid plan. Don't have a paid plan? Join the Developer Program and provision a sandbox with access to all Slack features for free.

Development

Goal/feature Workflow Builder Non-workflow app Workflow app Minimum Plan Details
I want to choose which programming language I use to build my app. - βœ… - Free Slack API methods are accessible over HTTP, so the world is your oyster. Also worth noting is that Slack maintains official libraries for Python, JavaScript, and Java, as well as the Bolt suite of application frameworks.
I want to integrate with third-party services (e.g. Google, JIRA) using APIs or webhooks. βœ… βœ… βœ… Free Code integrations with non-workflow apps any way you like. Connector functions for integrating with third-party services are available for workflow apps or via Workflow Builder.
I want to empower co-workers to automate Slack and integrations with other software without having to code. βœ… - - Paid For no-code solutions, use Workflow Builder.
I want to interact with Slack APIs over HTTP (by using the Web API). βœ… βœ… βœ… Free You can use the Web API with both the Bolt SDK and the Deno Slack SDK. You can also call API methods within Workflow Builder.
I want to respond to events happening within Slack (by using the Events API). - βœ… βœ… Free This feature is compatible with non-workflow apps. A subset of the Events API is available for workflow apps via event triggers, but is not required.
I want to send messages with incoming webhooks. - βœ… βœ… Free
I want my app to be able to respond to webhooks. βœ… βœ… βœ… Free
I want my app to have an App Home. - βœ… - Free
I want to use slash commands. - βœ… βœ… Free Non-workflow apps can use slash commands in a variety of ways. Workflow apps can only be invoked with slash commands.
I want to send files and images to users. βœ… βœ… βœ… Free
I want users to be able to send files. βœ… βœ… βœ… Free
I want to respond to Slack messages with embedded metadata. βœ… βœ… βœ… Free
I want users to be able to interact with my apps. βœ… βœ… βœ… Free Any app will do, but the way you code interactivity will be different for each solution.
I want to retrieve data from or store data to a database. - βœ… βœ… Free Code database operations in non-workflow apps any way you like. For workflow apps, you can store data in a Datastore hosted by Slack.
I want my app to be shareable and added to a message within Slack, bookmarked, or embedded in a Slack Canvas. βœ… - βœ… Paid Share workflow apps or apps built via Workflow Builder with link triggers.
I want to develop an app as an additional service to our external website, which allows users to chat with a bot from inside of Slack. - βœ… - Free The automation platform doesn't support installing an app by others on their workspace (unless they are able to do so themselves via the Slack CLI). For example, if your app was open sourced on GitHub this would be possible, as another developer could clone it and install it in their workspace.

Environment

Goal/feature Workflow Builder Non-workflow app Workflow app Minimum Plan Details
Works across multiple workspaces βœ… βœ… βœ… Enterprise Grid
Develop on Free plan - βœ… - Free Both workflow apps and Workflow Builder require that you be on a paid plan. Don't have a paid plan? Join the Developer Program and provision a sandbox with access to all Slack features for free.
Tokens - βœ… βœ… Free Both non-workflow apps and workflow apps make use of access tokens. Refer to Token types for more information about the types available.
Admin API - βœ… - Enterprise Grid
SCIM API - βœ… - Business+ or Enterprise Grid
Discovery API - βœ… - Enterprise Grid
Legal Holds API - βœ… - Enterprise Grid
Audit Logs API - βœ… - Enterprise Grid

Host and deploy

Goal/feature Workflow Builder Non-workflow app Workflow app Minimum Plan Details
Host or distribute app myself - βœ… - Free For self-hosted apps, you'll want to go with the Bolt SDK.
Slack-hosted app βœ… - βœ… Paid For Slack-hosted apps, you'll want to go with the Deno Slack SDK, or build your app using Workflow Builder.
List app in App Directory - βœ… - Free

Security

Goal/feature Workflow Builder Non-workflow app Workflow app Minimum Plan Details
OAuth authentication - βœ… βœ… Free For non-workflow apps, refer to Installing with OAuth. For workflow apps, refer to External authentication.
Role-based access control for different user levels - βœ… βœ… Free
Compliant with security standards and regulations βœ… βœ… βœ… Free
Customizable UI - βœ… βœ… Free For non-workflow and workflow apps, you can use Block Kit to customize your app.
Control of outgoing domains - - βœ… Paid

Still not sure where to begin? That's okay! We recommend following our guide on starting a workflow to send a message. It'll give you an idea of what the Slack platform can do, and get those cogs in your head spinning.