Sign up


The Slack Notifications Flowchart Explained

Hana Mohan

Last updated on

In just a few short years, Slack has gone on to become an indispensable work tool in our always-on often mobile work life.

A big part of the workflow improvements they offer is the fine-grained control of notifications you receive from them. Not only can you choose to be notified on email, desktop and mobile, but you can also set a notification schedule and adjust intervals between getting the same Slack notification on the desktop and on your mobile.

This is a complex problem to solve engineering-wise. A few years back, Slack shared the flowchart of how they decided to notify you.

Let's dissect that flowchart in this article.

Channel Notifications

You can be notified for messages on the channels you are part of, unless you mute a channel.

That's the first thing Slack checks in its flowchart.

Check if the user has muted the channel

Do not disturb (DnD)

The next thing they check is if the user has enabled DnD. Users can enable it at any time or setup a schedule to toggle DnD automatically.

Slack users can mute their notifications

However, Slack also offers the sender an option to override your DnD setting, thereby resulting in the next section of the Flowchart

Check if the user has setup DnD and if the send overrode DnD

If you are not in DnD or if DnD was ignored by the sender, Slack checks if this message is in fact a @channel, @everyone or @here mention and if you have disabled notifications for those (for this channel).

You can stop @channel/@here from being mentions for you

This is checked in the next part of the flowchart

Check what kind of mention this is and if it should create a notification

Notice the part about this message being part of a thread? Slack let's you set a global preference for notifying you of replies to threads

A global preference for replies in threads you are following

However, it's interesting that even if this setting is turned on but you have disabled notifications entirely for the channel, you won't get notified. See this part of the Flowchart (the leftmost branch leads you to the big RED NO).

The channel preference overrides the global thread notification preference

Mobile-specific notification preferences

Before we go on any further, let us talk about Slack's ability to set a different preference for mobile notifications. They allow you to do this globally, as well as per channel. It looks something like this:

Assuming that the notification candidate has made it so far (and so have you!), Slack checks for mobile-specific notification preference for this channel. If none has been set up, they check if you have a preference globally.

Check if a mobile-specific notification preference exists for this channel or globally

If you have chosen not to be notified of anything, it's a straight line to the big RED NO. However, if you have chosen to be notified, based on your preferences, you may lead down to the big GREEN YES. However, you may reach here on the desktop or on the mobile. In the Flowchart, they talk about checking for "past mobile push timing threshold", but I wasn't able to find this as an option in their UI. Perhaps this is something to check for in their backend without it being a user-adjustable property.

As you can see, building a sophisticated notification system is fairly complex. It doesn't have to be. MagicBell can take care of all of this for you while you focus on the core functionality of your product.

Here is a quick Slack integration tutorial in case you'd like to add Slack notifications to your product.

Related articles: