Notification noise problem
1. Avoid the fate of email notifications
Slack replaces email for most internal communication for its customers. In the past, it was not uncommon for users to filter email notifications from apps and simply ignore or delete them. App notifications in Slack are different in the sense they are usually actionable. However app developers should still avoid the trap of annoying notifications by ensuring every notification enhances the experience of team collaboration by bringing important information in context.
2.@mentions are universally hated
Users dont like being @mention-ed very much. Be very cautious about determining notifications that deserve a @mention. When in doubt, dont @mention. In Troopr we use silent mentions as an alternative. More on that below.
At Troopr we are building the new Slack first way to manage software projects and standups for remote teams. Troopr delivers notifications about your tasks, sprints and standups in personal and group channels in Slack. Troopr works standalone or as conversational layer over Jira.
Here is Troopr’s approach to building an effective notification delivery mechanism that has worked for us.
Troopr’s approach to notifications
Before delivering any notification take consent from the user about the notification events he should expect from your app. This can be done at the time of install or at the time of enabling notifications. When a user action triggers a notification to other users, it may make sense to take consent in context. Example: unfurling in group channels, setting up recurring standup in team channel, etc. Seeing is believing. Users appreciate when the app presents a preview of the notification that will be delivered at the time of setup or trigger.
2. Set Optimal Defaults
For personal notifications, start with events that explicitly request the attention of the user. Example: new meeting request, @mention in a task etc. Allow users to customize from there. When possible allow admins to setup optimal personal defaults for their team members. For channel notifications, default to events that require “team” attention. Example: New unassigned task (someone in the team may pick it up), Sprint started/closed (let the team celebrate milestones), daily Standup report.
Box groups of events into priority buckets so that events of similar priority can be delivered differently from others. In Troopr we classify events into “Important”, “Most” and “Custom”. By default when user enables notifications only “Important” events will be delivered near-realtime.
4. Schedule and Group
Notification events need to be grouped together when possible. Troopr automatically groups events happening in a delivery cycle. Default delivery cycle is 1 minute, meaning all notifications are grouped and delivered in 1 min intervals. Users can update this to realtime delivery or schedule longer cycles (upto 8 hours).
Multiple related events per cycle are grouped into one “notification event” and multiple notification events are grouped into one paginated “notification message”. This ensures that the user receives ONLY ONE Slack message per delivery cycle.
Notification messages should be compact by default. It is usually a good practice to let the users pick from different notification formats between most compact and detailed. Implementing some of the grouping suggestions described earlier along with a compact packing option can dramatically reduce channel real estate your app notifications need.
7. Quiet mention by default
Most notifications are about one or more users. @mention-ing the relevant user will alert them via a push notification. The catch here is no one likes frequent @mentions. So when we learnt about the silent mention option we adopted it across Troopr as default behavior. Silent mention is @mention so you can click on the link to initiate discussion with the user but without the push notification associated with regular @mention. Read the 2018 blog post by Tim Pettersen for more details on how to implement them in your Slack app.
8. Fallback to Apphome
Not every new app event needs a notification. With Slack’s new Apphome surface, developers can deliver rich content on demand and friction free. This is a great way to deliver recent user content like meeting agenda, pending tasks etc that can wait until user visits the app in Slack. At Troopr we love Apphome and the unique value it brings, we wrote about it here.
9. Allow easy switch off
Allow users to easily disable notifications. We take this seriously at Troopr. We add a link to unsubscribe from personal/channel notifications in every notification message we send. We also add a prominent notification settings button in App home for easier discovery.
10. Use Slack notification options
Educate customers about effective ways to customize notifications in Slack beyond what the app provides. Slack has cool features that allow you to turn on keyword notifications, mute specific channels, setup a global DnD and more. Read about it here.
Building an effective notification delivery mechanism can go a long way in improving user engagement and retention. Hope some of the tips here come in handy for developers building the next delightful Slack app experience for their users.