Composr Tutorial: Notifications

Written by Chris Graham
Composr includes a highly-configurable notification system for members to be alerted on what is going on.


Choosing notifications

Image

Setting notifications

Setting notifications

(Click to enlarge)

There are a wide number of notifications that members can receive.
Some are set to be enabled by default, and some are only available based on privileges or configuration.

Some notifications allow fine-grained control, allowing you to choose to receive them only for certain notification categories. For example, with forum topic notifications you can choose to receive them only for certain forums. This is similar to what some forum software calls 'tracking'.

Double notifications

If you enable notifications on a particular type, but also categories of that type, you will get doubled up notifications. As Composr allows fine-grained control of different kinds of notification we don't want to add overwhelming complexity by trying to do 'smart de-duplication'. Therefore if you get duplicated notifications check your settings.


Forms of receipt

You can receive notifications through a number of means:
  • E-mail
  • Digest e-mail (i.e. in delayed batches; requires the system scheduler to be set up and the 'Enable digest notifications' setting to be enabled in Admin Zone > Setup > Configuration > Messages)
  • Private topics (requires the 'Enable private topic notifications' setting to be enabled in Admin Zone > Setup > Configuration > Messages)
  • SMS (maintenance status) (if configured, requires payment for each text message sent)
  • Web notifications

Note that private topic receipt is disabled for topic-derived notifications, in order to stop massive growth in database size.

Web notifications

Web notifications are particularly useful. If you have the website open (or pinned open, which some browsers support), then visitors will be notified directly through the Composr user interface within a matter of seconds. From the list of recent/unread notifications, you can view an overlay with the full notification details, or a full page detailing all enabled web notifications from the last period of days.

Additionally, most platforms will allow native notification display:
  • in the Windows notification center
  • in the Mac OS notification center
  • in a browser's site notification area
  • in the main notification area of iPhone or Android phones – This might not work on all devices

(If you don't want the interface to support this, you can remove the top_notifications block from the default GLOBAL_HTML_WRAP.tpl template and disable web notifications.)

Automatically monitor content you've touched

This option works to automatically set up a member to receive notifications on content they have interacted with. This happens at the point of them making an interaction – it automatically sets up a monitor. It is not retroactive.

Members have this set automatically if the global "Auto-monitor posted content" configuration option (Admin Zone > Setup > Configuration > Messages > Notifications) is enabled.

Smart Topic notification

The "Smart Topic notification" option works to stop members being flooded with notifications for a topic, until they've caught up. It sends them just one notification until they have read it again.

Debugging

You may wish to see what notification e-mails are being sent out.

The best way to debug notifications is to view the e-mail log, from Admin Zone > Audit > E-mail queue/log. You can see exactly what e-mails were sent out.

To see if someone is set up for notifications on some content, use the SU feature (see the Testing access and privileges tutorial, Access control and privileges section) to pretend to be them. You will see their settings reflected in the interface.

There's a config option, "Carbon-copy e-mail address". This address receives a copy of most e-mails the system sends out.
Note that it will only CC a notification e-mail to this address once, not once per notification.

Limits

If the number of categories for a notification exceeds the value of the "Safety listing limit" configuration option (Admin Zone > Setup > Configuration > Content editing options > Advanced) then a full selection tree will not be provided under the advanced notification settings.
For example, if you have a large number of download categories, the Download notification will not show a full download category tree.
Instead, only the IDs of notification categories that the user has already monitored will show. New notifications may be set via clicking Monitor buttons when browsing through content in the normal fashion.

Defaults

Image

Setting notification defaults

Setting notification defaults

(Click to enlarge)

Many notifications have inbuilt defaults which are set for all members until or unless they change their settings or they are changed in the “Notification defaults”. Site staff can change the notification defaults (Admin Zone > Setup > Notification defaults).

You will see the following columns:
  • Notification title (the column title is actually unlabelled, but this is what it is)
  • "Privileged / Restricted" – this is Yes or No, and shows the general access for this notification in Composr (it is non-configurable, shown for informative purposes only)
  • "Use inbuilt default" – this is a checkbox, defaulting to 'On'. If you uncheck it then the members will have the default settings that you choose in the interface. If it stays checked, the rest of the checkboxes have no effect. Hovering over this checkbox will also show a tool-tip explaining the inbuilt default for that notification.
  • (All the different ways of receiving notifications) – the checkbox selections here determine specifically which notifications will be enabled or disabled by default.

Lock-down

Image

Setting notification lock-downs

Setting notification lock-downs

(Click to enlarge)

In the Admin Zone you can define what notifications are "locked-down". You can use this to:
  • Stop any member from receiving particular notifications
  • Force members to receive particular notifications types

This is particularly useful if you want to prevent your site from sending a bunch of mail when you have outgoing mail limits on your webhost.

Locked-down notifications will show on a member's notification settings, but the checkboxes cannot be changed. This is so members are informed which notifications they may or may not receive which they cannot change.

Set lock-downs from Admin Zone > Setup > Notification lock-down.

You will see the following columns:
  • Notification title (the column title is actually unlabelled, but this is what it is)
  • "Privileged / Restricted" – this is Yes or No, and shows the general access for this notification in Composr (it is non-configurable, shown for informative purposes only)
  • "Not locked down, free choice" – this is a checkbox, defaulting to 'On'. If you uncheck it then the members will have the settings that you choose in the interface (i.e. they can no longer choose their own settings). If it stays checked, the rest of the checkboxes have no effect. Hovering over this checkbox will also show a tool-tip explaining the inbuilt default for that notification.
  • "Member's typical notification type" – specifies that a notification will be forcibly sent out in the member's average way they've set to receive notifications
  • (All the different ways of receiving notifications) – the checkbox selections here determine specifically how members will forcibly receive this notification (you will not typically use this in combination with "Member's typical notification type").

If no checkboxes are checked then the members will not be able to receive the notification at all. This is quite a common configuration, essentially allowing you to turn off a notification for the whole website.

Note that the settings apply to all members (while respecting the notification permissions). We do not support usergroup-based notification lock-downs. It is a feature that may be requested and sponsored if you would like to see it.

Security

Notifications broadly fall into 3 classifications:
  1. Notifications sent directly to a specific member, relating to them
  2. Privilege-affected notifications, e.g. monitoring a download category, and hence needing access to that category to receive the notification
  3. Staff notifications

To stop Composr becoming bloated/over-complex, there is no configurable granularity with Staff notifications. Any one with the "May listen to notifications intended for staff" privilege may receive them.

However, you may come into a situation where you do want some granularity. A nice workaround is to have a staff account with a gmail address, and use gmail forwarding rules to forward to others based upon subject line. Then deny regular staff the "May listen to notifications intended for staff" privilege.

Digests

Digest e-mails provide combined summaries of activity.

It is possible digest e-mails could become very long. In this case, Composr would struggle to parse their Comcode, or the mail client may struggle with such large e-mails. Composr therefore implements a 256kb limit per digest.

Members are informed if the limit is exceeded (while still given the subjects of each digest item). The member may then choose to change their settings to something more manageable (such as more regular, or smaller, digests).

Digest e-mails are also typically viewable in the web browser in their full form providing that e-mail logging is enabled and the e-mail has not yet been cleaned up from the logs. A web version link is provided in the e-mail. This is, of course, subject to the web server's ability to handle the size of the e-mail and render it without reaching the PHP memory limit.

Debugging

Digests are sent out via the system scheduler. A member can only choose to receive digests if the system scheduler is set up, if 'Enable digest notifications' is enabled in Messages configuration, and if they have configured an e-mail address.

Digests are not sent out at any specific time (to avoid overloading outbound e-mail each night), but rather each member's digests are individually time-tracked using the digestives_consumed table. For each member there is a timestamp in that table representing when each of their digest's was last sent. When the system scheduler runs it looks to see what digests are due and sends them if there's any content for them.

Actual digest content is queued up in the digestives_tin table.

See also


Feedback

Please rate this tutorial:

Have a suggestion? Report an issue on the tracker.