Skip to main content

Notification levels

From Better Messages 3.1, each member chooses how much a group conversation or chat room notifies them, instead of only muting or unmuting it. A busy room can stay quiet until someone mentions the member or replies to them, and a conversation can be muted for an hour or a week and come back by itself.

The levels#

LevelNotifies about
All messagesEvery new message
Mentions and repliesMessages that mention the member, replies to their messages, and @all
NothingNothing, until the member changes it or the mute runs out

A notification is the sound, the pop-up on the site, the browser push, the mobile app push and the email. The level decides all of them at once. Messages still count as unread at every level, so nothing goes missing: the unread count of a conversation that is not on All messages shows in a grey badge instead of the accent colour.

Each conversation starts at its default, the level an administrator chose for that kind of conversation. A member who picks Default follows it, and changes with it if the administrator changes it later.

Private conversations between two people always notify about every message, since every message there is for the member. They can still be muted.

Choosing a level#

Members choose from the menu of a conversation, in the conversations list or in its header, or from Notifications in the conversation details panel. The dialog lists Default, All messages, Mentions and replies and Nothing.

Choosing Nothing also asks for how long:

  • 1 hour
  • 8 hours
  • 1 day
  • 7 days
  • Until I turn it back on

When the time runs out, the conversation goes back to the level it had before. In the conversations list a muted conversation shows the muted icon, with the time it notifies again in its tooltip, and a conversation on Mentions and replies shows an @ icon.

End-to-end encrypted conversations

The site cannot read the messages of an end-to-end encrypted conversation, so it cannot see who they mention. There, Mentions and replies notifies about replies to the messages of the member.

Defaults for each kind of conversation#

Navigate to WP Admin → Better Messages → Settings → Notifications → Conversation Notifications.

SettingApplies to
Member Notification LevelsWhether members can choose a level for themselves. Choices members already made keep applying if this is turned off
Group ConversationsConversations with three or more participants, started from the messenger
Group ChatsThe group chats of BuddyPress, BuddyBoss, PeepSo and the other community plugins
Course ChatsThe chats of LMS courses
Chat RoomsSet for each chat room in its settings, under Notifications

All of them start at All messages, as notifications worked before 3.1.

When a default becomes louder, members are notified about new messages from then on, never about the backlog: nobody gets an email about a week of old messages because a room was switched to All messages.

Chat rooms#

Each chat room has a Notifications section in its settings:

  • Notification level: the default of the room for its members.
  • Mention Everyone: who may use @all in the room, or the site default.
  • Group Call Alerts: whether a group call started in the room alerts its members, or the site default.

A room that had notifications turned off before 3.1 starts at Mentions and replies, so its members still hear when someone mentions them. Hidden chat rooms, the ones hidden from the conversations list or with participants who are only the people present, never notify.

Mentions and replies#

A reply to a message of a member, in a group conversation, notifies them like a mention and marks the conversation in the list the same way. A reply to your own message does not notify you.

Force Notifications for Mentions and Replies, under Notifications → Mentions and Alerts, makes a mention or a reply always notify, by push and email too, even when the member chose Nothing or the room or group has notifications off. It never emails a member who turned email off for themselves, and it never notifies in hidden chat rooms.

Mention everyone with @all#

Typing @ in a group conversation or chat room offers @all after the people, so Enter still picks a person, and first once you type @all. It notifies every member who has not chosen Nothing, and it counts as a mention for each of them.

Mention Everyone (@all), under Notifications → Mentions and Alerts, decides who may use it:

  • Nobody
  • Conversation moderators and site administrators (the default)
  • Every participant

Each chat room can choose otherwise. A participant who is not a moderator can use @all once every 10 minutes in a conversation. When someone who may not use it types @all, the message is sent as plain text and notifies nobody.

Group call alerts#

On the WebSocket version, Group Call Alerts under Notifications → Mentions and Alerts turns a group call starting into a notification: a pop-up, a push and an email to the members of the conversation.

The pop-up shows who started the call, with a call badge on their picture, the name of the conversation, how many people are in the call right now, and a Join button that opens the call. Once everyone has left, it says the call has ended and the button goes away.

The pop-up plays a sound of its own, a short chime, in place of the new message sound. Group Call Alert Volume and Group Call Alert Sound under Notifications → Sounds set its volume, 0 to turn it off, and a custom MP3. Like the ring of a private call, it plays even when a member turned message sounds off, but not in Do not disturb.

Like the pop-up of an incoming private call, it shows wherever the member is on the site, also while the conversations list is on screen, and also when they turned message pop-ups off. The one place it does not show is the conversation itself, since the banner above the messages offers the same Join.

  • Members on All messages and Mentions and replies get the alert. Members on Nothing and the person who started the call do not.
  • The email goes only to members who receive email about all their notifications.
  • A conversation alerts at most once every 30 minutes by default. Group Call Alert Cooldown, under the same setting, changes that time in minutes, up to a day, and 0 removes it.
  • One member can start at most three alerts an hour, across all conversations. Group Call Alerts per Member changes that number, up to 100, and 0 removes the limit.
  • Over either limit, the call still shows in the conversation, without the alert.
  • Guests and AI chat bots never start an alert.

The alert comes with the Group call started notice, so that system message has to be on, under Messaging → System Messages.

New reactions to your messages#

When someone reacts to one of your messages, the conversation shows a heart in the conversations list. Inside the conversation, a heart button at the bottom of the messages counts the reacted messages you have not scrolled to yet, and jumps to each of them in turn, highlighting it. The heart goes away once you have seen the messages.

Email#

Members choose what they are emailed about in their messenger settings:

  • All my notifications
  • Only one-to-one conversations, mentions and replies
  • Off

Default Email Scope, under Notifications → Email Notifications, decides it for members who have not chosen. It needs a Notification Interval above 0.

A conversation notifies by email only at the level the member chose for it: a conversation on Mentions and replies emails about mentions and replies, never about every message. See Email notifications for the interval and the offline delay.

For developers#

HookUse
better_messages_thread_default_notification_levelThe default level of a conversation
better_messages_thread_notifications_lockedLock a conversation so it never notifies and members cannot choose a level
better_messages_notification_recipientsThe members a message notifies, by push, mobile push or email
better_messages_mute_durationsThe durations offered for a timed mute, in minutes
better_messages_can_mention_allWhether a member may use @all in a conversation
better_messages_mention_all_cooldown_secondsThe wait between two @all of a participant who is not a moderator
better_messages_group_call_alert_allowedWhether a group call starting alerts the members
better_messages_notification_level_changedFires when a member changes the level of a conversation

The level of a member is changed over REST with POST /wp-json/better-messages/v1/thread/{id}/notifications, with level (default, all, mentions or none) and, for none, an optional minutes.

See also#