Heating Up

Somebody posited a great idea on one of my Slack teams today:

I need to fix my notification settings so I’m not late to the party all the time, but there’s nothing between “everything” and “mentions only” and what I really want is “hey this channel’s blowing up.”

There is something kind of in-between. You can be notified based on a list of keywords, so every time a person posts a message including “photo”, for example, I get notified. But I’m using Slack (and I suspect an increasing number of folks are, too) for social purposes. This means that keyword-based notifications have a more limited use in practice. One of my teams has a “Camera Talk” channel, so why do I need to be notified every time somebody uses the word “camera” or “photo”? I don’t want to be notified for EVERYTHING in that channel, do I?

So I’m thinking of something more specific now, and here’s what I have in mind – whether implemented as a bot or some other custom integration to each team that I’m part of:

Hot Channel

Using Slack’s API, you can retrieve up to 100 messages in an array. Each message entity includes a Unix time stamp. My thought is to determine some sweet spot here – like, 10+ messages posted in 10 minutes or less means the conversation is moving, and might be worth watching. Unix time stamps are in seconds, so you could collect the latest 10 messages and subtract the oldest time stamp from the newest. If the difference is less than or equal to 600, then take some action. If all this is handled by some kinda bot integration, then every 5 or 10 minutes it would poll the channel and post a message to the channel. Slack lets you choose a phrase to trigger a notification, so perhaps this bot posts “The channel is heating up!” or something. You get the picture.

There are ways to make this more sophisticated, like allowing individuals to have their own preferences. Maybe a friend only cares if there are 30+ messages in 10 minutes, for example. I dunno.

I want to try building this myself, but I’m not developer, so it could take me a while. If anybody thinks this is a useful idea, please run with it, or point me to existing work if it’s out there.