The Slack chat tool by default sends email notifications saying "You were mentioned ..." when in fact it was @channel and not you. The only way I can find to turn these off is to go into each channel setting.
-
3yeah, having it default on and turning it off for every channel is really annoying. finding a way to default it to off and turning it on for only a couple of channels would be better (or just mute theme entirely would be fine for me). – lamont Feb 08 '16 at 23:26
-
I don't think its possible, but you may want to ask the Slack support. They are pretty good. – Erik Kalkoken Apr 01 '16 at 08:12
4 Answers
I was looking for the same and I saw that nobody answered, so this is what I've found: you cannot and you won't ever be able to.
@channel: everybody in a channel, it's a kind of contract with the user and everybody inside a channel should receive a notification.
The point is that Slack has a netiquette, and users would have to know it. Alternatives to @channel keyword are @everyone and @here, the first one working only in "big" channels, the second one only for people currently active. You can disable notifications for these keywords.
https://get.slack.help/hc/en-us/articles/202009646-Make-an-announcement
![](../../users/profiles/6779114.webp)
- 1,687
- 1
- 18
- 30
-
4Can you elaborate a bit what is meant by `contract`? Or where that is specified? – David Schumann Mar 12 '18 at 09:55
-
I mean that if Slack tell you that "channel" is a keyword which sends a notification to everybody inside that channel, you cannot disable notification for that keyword, otherwise it would mean breaking the contract. So when you want to make an announcement to everybody, and you want to be sure that everybody receive a notification, you use "channel". If you are just asking for support (for instance) you can use the other keywords. – Mauro Piccotti Mar 12 '18 at 10:36
-
14But what about the "contract" that if I mute a channel, I don't get a notification from it? I'd like that contract to not be broken – David Schumann Mar 12 '18 at 13:26
-
If I remember well you receive a notification for "channel" and direct mentions even if the channel is mutated. But perhaps my memory lacks :) – Mauro Piccotti Mar 12 '18 at 14:24
-
1@DavidNathan if you met a channel and somebody quote you, you receive a notification, I've just tried. Really I don't understand why 2 negative votes to my answers... – Mauro Piccotti Jul 23 '18 at 15:23
-
4I downvoted because this answer seems to be saying you can't disable @channel at all, which is incorrect. You can do it in the menu in your screenshot, but if you're in the #general settings it says "@everyone" instead of "@channel" because they're the same in that channel. – tagurit Feb 10 '19 at 23:18
-
1
-
@jtheletter it changed a bit but it's still available. If in your team there is the channel general, you can go to the section preferences => notifications and at the end you can see channel-specific notifications, clicking on general you can change those settings. – Mauro Piccotti Apr 08 '20 at 18:42
-
This becomes especially annoying if you get auto-joined into many channels that you didn't explicitly join (and have a moment to manually disable `@here` and etc) only to end up with someone then abusing that. – chunk_split Apr 09 '20 at 19:05
I've had this same problem for a while and manually tweaking prefs is too time-consuming. I've written a script to automate it for me.
For a more in-depth explanation, please visit my blog post:
https://mobeigi.com/blog/programming/disable-slack-channel-and-here-notification-for-all-channels/
Otherwise, the full solution ahead.
Prerequisites
First download this script:
https://gist.github.com/mobeigi/8e5372f1e14e2a302e186d1753f9a649
Or copy and paste it from here:
// Slack User Notification Preference Bulk Update
// By Mo Beigi
const slackTeamId = "EXAMPLE17";
const localConfigJson = JSON.parse(localStorage.localConfig_v2);
const slackUrl = localConfigJson.teams[slackTeamId].url;
let channel_ids = [];
// client.boot contains list of channel ids user is subscribed to amongst other things
await fetch(slackUrl + "api/client.boot?" +
"_x_id=noversion-1598950616.732" +
"&_x_version_ts=noversion" +
"&_x_gantry=true",
{
method: 'post',
credentials: 'include',
headers: { "Content-type": "application/x-www-form-urlencoded; charset=UTF-8" },
body: "token=" + localConfigJson.teams[slackTeamId].token +
"&only_self_subteams=1" +
"&flannel_api_ver=4" +
"&include_min_version_bump_check=1" +
"&version_ts=1598934919" +
"&_x_reason=deferred-data" +
"&_x_sonic=true",
},
)
.then(result => result.json())
.then(result => channel_ids = result.channels);
// iterate channel id list and set notification prefs asynchronously
let fetchPromises = [];
for (i = 0; i < channel_ids.length; ++i) {
console.log("Setting user notification prefs for channel id: " + channel_ids[i].id + " ...");
fetchPromises.push(
fetch(slackUrl + "api/users.prefs.setNotifications?" +
"_x_id=c189c956-1598949859.880" +
"&_x_csid=7dP2GCgBJsY" +
"&slack_route=" + localConfigJson.teams[slackTeamId].enterprise_id + ":" + slackTeamId +
"&_x_version_ts=1598934919" +
"&_x_gantry=true",
{
method: 'post',
credentials: 'include',
headers: { "Content-type": "application/x-www-form-urlencoded; charset=UTF-8" },
body: "name=suppress_at_channel" +
"&value=true" +
"&channel_id=" + channel_ids[i].id +
"&global=false" +
"&sync=false" +
"&token=" + localConfigJson.teams[slackTeamId].token +
"&_x_reason=prefs-store/setChannelNotificationOverride" +
"&_x_mode=online" +
"&_x_sonic=true"
}
)
.then(result => result.json())
.then(console.log("Done (" + channel_ids[i].id + ")"))
);
// Generous delay to get around rate limit
await new Promise(r => setTimeout(r, 250));
}
Promise.all(fetchPromises).then(function() {
console.log("Successfully set user notification prefs for " + channel_ids.length + " channels.");
});
Steps
- Visit the React web app which powers the React native Slack client at: http://app.slack.com/client
- Sign in and switch to the workspace of interest and wait for the page to fully load.
- Open your browsers developer console
- Execute the following line:
JSON.parse(localStorage.localConfig_v2).teams
- Replace the
slackTeamId
in the Javascript script with your id from Step 4. - Copy and paste the edited Javascript script into the developer console and execute it. The script may take a few minutes to run depending on the number of channels you have joined.
And that's it!
You should now have turned every channels @channel and @here notification preference off.
![](../../users/profiles/1800854.webp)
- 1,159
- 2
- 22
- 44
If you can't find the option to uncheck "Also include @channel and @here" you may first need to unmute the channel, then in the channel-specfic options you can uncheck "Also include @channel and @here".
I'm not sure the checkbox has an effect when the channel is muted, but the setting is preserved through being muted and unmuted.
![](../../users/profiles/771768.webp)
- 4,571
- 2
- 34
- 35
You can use this: You can select `Notifications > your notification preferences > Nothing.
When the user selects Nothing
that means user disabled all kind of notifications.
![](../../users/profiles/11391118.webp)
- 113
- 5
-
There's a difference between desktop notifications and such, and Slack showing the notification icon for being "mentioned". This does nothing to suppress the issue, just disables notifications in general. – Janne Enberg Jan 22 '20 at 11:54