Skip to content

Slack ​

Slack is a collaboration platform for team communication, channels, messages, files, and apps. Protocol Launcher allows you to generate deep links to open Slack workspaces, channels, users, apps, and files.

Usage ​

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

Notes ​

Slack's slack:// URI templates use Slack IDs for workspaces, channels, users, apps, and files. They do not support workspace subdomains, channel names, user names, or filenames. Use Slack's app_redirect URL when you need the official channel-name redirect form.

Open Slack ​

Open the native Slack client. Passing team switches to a specific workspace.

On-Demand
ts
import { open } from 'protocol-launcher/slack'

const url = open({
  team: 'T12345',
})

App Redirect ​

Create a Slack app_redirect URL that opens a direct message with an app or bot.

On-Demand
ts
import { appRedirect } from 'protocol-launcher/slack'

const url = appRedirect({
  app: 'A123ABC456',
  team: 'T12345',
})

Channel Redirect ​

Create a Slack app_redirect URL that opens a channel by ID or by name.

On-Demand
ts
import { channelRedirect } from 'protocol-launcher/slack'

const url = channelRedirect({
  channel: 'release-notes',
  team: 'T12345',
})

Open App Home ​

Open a Slack App Home by workspace ID and app ID. The optional tab value can be home, about, or messages.

On-Demand
ts
import { openApp } from 'protocol-launcher/slack'

const url = openApp({
  team: 'T12345',
  id: 'A123ABC456',
  tab: 'home',
})

Open Channel ​

Open a Slack channel by workspace ID and channel ID.

On-Demand
ts
import { openChannel } from 'protocol-launcher/slack'

const url = openChannel({
  team: 'T12345',
  id: 'C123ABC456',
})

Open Direct Message ​

Open a direct message with a Slack user by workspace ID and user ID.

On-Demand
ts
import { openUser } from 'protocol-launcher/slack'

const url = openUser({
  team: 'T12345',
  id: 'U123ABC456',
})

Open File ​

Open a Slack file by workspace ID and file ID.

On-Demand
ts
import { openFile } from 'protocol-launcher/slack'

const url = openFile({
  team: 'T12345',
  id: 'F123ABC456',
})

Share File ​

Open Slack's file sharing dialog by workspace ID and file ID.

On-Demand
ts
import { shareFile } from 'protocol-launcher/slack'

const url = shareFile({
  team: 'T12345',
  id: 'F123ABC456',
})

Official Documentation ​