In the last 4,5 years, many companies adopted the collaboration apps like Slack and MS Teams, and working in messaging has become the new norm. Even companies like Salesforce are “rebuilding everything Slack first”. And this happened to us too a few years ago when we fully embraced Slack and communicating in channels.

All action items come out of conversations in our team, so we used Slack threads from the beginning to organize communications in channels better, and we ended up tracking the threads rather than tasks or task lists. Over time we realized that we needed additional thread management capabilities:

  1. Report active threads in a given channel (including private channels).
  2. Allow prioritizing the threads so set the focus for participants.
  3. Set a thread subject where initial comments don’t provide enough description.
  4. Link threads between channels, i.e. a conversation in one channel may continue in another one.
  5. Integrating email threads into Slack. Linking email threads with Slack threads.


Pebbles is a Slack app we developed to allow us manage our internal projects in Slack, using threads. Here is the Pebbles app listing in the Slack app directory.

After installing Pebbles invite it to channels /invite @Pebbles. From this point on Pebbles will notice any new thread comment in the channel and discover your threads this way. Type the /pebbles (or /threads) command to see which threads Pebbles has already discovered and is tracking:


You can set your own priorities to sort this list. The ‘Snooze’ priority option tells Pebbles to forget about a thread. These priorities are just yours, and other people can not see them unless you activate priority sharing /threads priority share. Usually, our team leads or managers do that so that other users could see their input. Click the header menu, and you will see that the list can be sorted by other user’s priority (those that shared their priorities):


You can also quickly navigate to a thread by clicking its #number link.

Actions menu

You also have controls in a thread context. Click the Actions menu and select the Manage thread action


Pebbles will show a dialog that allows you to set the thread subject and your priority:


Child threads

This feature is still experimental, for which we need to provide better reporting, but it has been quite helpful for us internally. Often a conversation starts in one channel (i.e. client support), but later we see that another team needs to be involved (i.e. product), so we want to continue this conversation in another channel, yet keep track of where it originated.

To do so Pebbles reacts to #channel mentions in threads. If you mention another channel in a thread comment Pebbles will start a new “child thread” in that channel:

ChildThread If you report threads in the ‘sync-clients’ channel, you’ll see this new thread now too.

Email feed

Some of our Slack users are customer-facing, actively using email for external communication. They use Pebbles to integrate email into a dedicated private channel. Create a new private channel for yourself, invite @Pebbles into it, and type the command /threads login.

Login use /threads login google to connect Gmail accounts

Once a mailbox account is connected Pebbles starts surfacing incoming emails in the channel, organized by their email threads. Then you can share these emails to other channels, to start Slack threads, and you can even reply right from Slack. We may have to describe the email integration feature in a separate post.


The Pebbles app helped us adopt “working in messaging” even more, to the extent that we have abandoned other project management apps like Basecamp, Asana. This experience also showed us that the inertia of staying in the workplace apps is very strong. Users do not want to switch between apps, and want to be met where they work. No wonder Salesforce CEO says:

We’re going to rebuild all of our technology to become Slack-first.