Go to Slack

Deep linking into Slack clients

Your application might live outside of Slack. Perhaps it includes a website, or a mobile application.

Ever wish you could send a user back to their Slack app, to a meaningful location?

Try slack:// now

With these URI patterns you can deep link to:

Supported Slack client applications

This URI scheme can be used to deep link into a user's native Slack client on the following operating systems:

Desktop clients

  • Macintosh
  • Windows

Mobile clients

  • iPhone
  • Android

Supported URIs

Sending a user to Slack can be as easy as linking users to these simple URI templates.

To make the best use of these URL patterns, make sure you're keeping tabs on team IDs, channel IDs, user IDs, and file IDs — these schemes do not support workspace subdomains, channel names, or user names. Not even filenames.

For best results, properly URL-encode your query parameters. Unrecognized paths will fall back to slack://open.

Open Slack

slack://open

Open the native Slack client on behalf of the user's default workspace.

slack://open?team={TEAM_ID}

Open Slack and switch workspaces to the specified team. The provided TEAM_ID should be a string, like T12345.

Open a channel

slack://channel?team={TEAM_ID}&id={CHANNEL_ID}

Open the channel specified by the CHANNEL_ID provided in the id field, like C024BE91L. You must also specify the team with a TEAM_ID.

Open a direct message

slack://user?team={TEAM_ID}&id={USER_ID}

Open a direct message with the presented USER_ID value of the id field. You must also specify a team with a TEAM_ID.

Open a file

slack://file?team={TEAM_ID}&id={FILE_ID}

Open the file specified by FILE_ID value of the id field. Don't forget to also specify a team with a TEAM_ID.

Search

You can even send the user directly to a specific search query from your application.

Find information on how to build your queries in this guide on search queries as well as our super advanced search guide.

Simple queries

Open the specified team (by TEAM_ID) and search for the given query (STRING_QUERY).

slack://search?team={TEAM_ID}&query={STRING_QUERY}

Suppose we wanted to know the location of the stolen microfilm, we might simply open the following URL:

slack://search?team=T12345&query=microfilm%20found

Advanced search

On some platforms, you may also deep link to a more advanced form of search, offering control over pagination and sorting.

slack://search?team={TEAM_ID}&query={STRING_QUERY}&sort={STRING_TIMESTAMP}&highlight={BOOL}&count={INT}&page={INT}`

You already know about the team and query parameters previously introduced. To perform an advanced search, you can also provide:

  • sort - specify an epoch time value or message timestamp and we'll narrow the history to around that time.
  • highlight - specify 0 (false) or 1 (true) to control whether matching terms should be highlighted.
  • count - paginate results this many results at a time
  • page - navigate to this specific page of results

Sorry, performing advanced searches with slack://search is not yet available on Android.

Example workflows

  • Your company's internal wiki includes a "getting started" guide for new employees. Encourage them to easily join the right channels with slack://channel and find canonical discussions with slack://search.
  • Your app highlights topical content and includes a link to slack://search for discussions about a percolative article or emergent internet sensation.
  • Your app's conversational UI lives in Slack, so you use slack://user to open your ongoing direct message correspondence with your user.