PHPackages                             i-lateral/silverstripe-notifier - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. i-lateral/silverstripe-notifier

Abandoned → [dft/silverstripe-notifier](/?search=dft%2Fsilverstripe-notifier)Silverstripe-vendormodule[Mail &amp; Notifications](/categories/mail)

i-lateral/silverstripe-notifier
===============================

Configurable notifications system for sending notifications based on data object activity

1.0.5(3y ago)0525BSD-3-ClausePHP

Since Oct 6Pushed 1y ago2 watchersCompare

[ Source](https://github.com/Dean-Forest-Tech/silverstripe-notifier)[ Packagist](https://packagist.org/packages/i-lateral/silverstripe-notifier)[ Docs](https://github.com/i-lateral/silverstripe-notifier)[ RSS](/packages/i-lateral-silverstripe-notifier/feed)WikiDiscussions 2 Synced 4w ago

READMEChangelogDependencies (5)Versions (8)Used By (0)

SilverStripe Notifications System
=================================

[](#silverstripe-notifications-system)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/b2724761b18b574697e913d4cf78d63ab7699a3eb89392956108649b3388b586/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f692d6c61746572616c2f73696c7665727374726970652d6e6f74696669636174696f6e732f6261646765732f7175616c6974792d73636f72652e706e673f623d31)](https://scrutinizer-ci.com/g/i-lateral/silverstripe-notifications/?branch=1) [![Build Status](https://camo.githubusercontent.com/de867fbe8ef08c5bb0415da2db34b818ebf9756438410988b96ae0de762130da/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f692d6c61746572616c2f73696c7665727374726970652d6e6f74696669636174696f6e732f6261646765732f6275696c642e706e673f623d31)](https://scrutinizer-ci.com/g/i-lateral/silverstripe-notifications/build-status/1)

Module to allow creation of custom notifications for object changes that can be managed via the admin.

Install
-------

[](#install)

Install this module via composer:

```
composer require dft/silverstripe-notifier

```

Once installed run `dev/build` to add additional database tables

Configuration and Setup
-----------------------

[](#configuration-and-setup)

Once installed, you will have to register the DataObjects you want to be monitored for notification with `Notifier`. This can be done via fairly simple config:

```
---
Name: notificationsconfig
---
# allow configuring of notifications to users and a custom page type
DFT\SilverStripe\Notifier\Notifier:
  registered_objects:
    - SilverStripe\Security\Member
    - App\Model\MyCustomPage

```

Once this configuration is added (and you flush the cache), navigate to SiteConfig ("Settings" in the admin).

Now there will be a "notifications" tab allowing you to add new notifications

Adding notifications
--------------------

[](#adding-notifications)

When you add a new notification you will be able to choose the object to monitor (from the list of registered objects above). You can then also choose:

`StateCreated`: Should a notification be sent on object creation

`StateUpdated`: Should a notification be sent if an object is ever updated

`StateDeleted`: Should a notification be sent if an object is deleted

### Adding Rules (optional)

[](#adding-rules-optional)

You can also add more granular rules for each notification. These allow you to specify:

`FieldName`: The name of the data field on the object that will be checked

`Value`: If set, when an object has a field that is set to this value, send a notification

`WasChanged`: If you leave `Value` blank, then you can check `WasChanged` and then any change to this field will send a notification

### Disallow Notification Rules (optional)

[](#disallow-notification-rules-optional)

You can disallow notification rules on specific notifications via the `disallow_rules` config variable. This needs to be a list of rule classnames that this notification type will not allow. This can be set in YML as follows:

```
---
Name: notificationsconfig
---
# Disallow basic notification rule
DFT\SilverStripe\Notifier\Model\Notification:
  disallow_rules:
    - DFT\SilverStripe\Notifier\Model\Notification\NotificationRule

```

### Adding Notification Types

[](#adding-notification-types)

Once you have specified an object to monitor and what will trigger notifications you then need to specify how these notifications will be sent.

By default this module includes an `EmailNotification`, which will send an email to the desired recipient using the provided subject and content.

You can add multiple versions of the each `NotificationType` to the same `Notification` (for example, if you want to email multiple people in the event of a change).

### Disallow Notification Types (optional)

[](#disallow-notification-types-optional)

You can disallow notification types on specific notifications via the `disallow_types` config variable. This needs to be a list of rule classnames that this notification type will not allow. This can be set in YML as follows:

```
---
Name: notificationsconfig
---
# Disallow email notification type
DFT\SilverStripe\Notifier\Model\Notification:
  disallow_types:
    - DFT\SilverStripe\Notifier\Types\EmailNotification

```

### Content Rendering

[](#content-rendering)

Notification content (and email subjects) support using SilverStripe variables When a notification is sent, the context with regards to variables will be the current object that is being monitored.

*EXAMPLE* If sending an email when a new `Member` is created, you can add `{$FirstName}`, `{$Surname}`, `{$Email}` etc to your Content area, and these will be rendered using the newly created `Member`.

New Notification Types
----------------------

[](#new-notification-types)

The system is designed to fairly easily add new notification types (for example SMS notifications) You simply have to extend `NotificationType` and add your own `send` method to handle sending the notification.

Dynamic senders and recipients
------------------------------

[](#dynamic-senders-and-recipients)

Instead of using a predefined sender and recipients, you can instead specify fields on the monitored object to use.

Before you can do this though, you have to inform Notifier that you want to use custom fields. For example, if you have the following object:

```
class MyMonitoredObject extends DataObject
{
  private static $db = [
    'Sender' => 'Email',
    'Recipient' => 'Email'
  ];

  private static $extensions = [
    'DFT\SilverStripe\Notifier'
  ];
}
```

You can add custom config:

```
DFT\SilverStripe\Notifier\Types\NotificationType:
  alt_from_fields:
    MyMonitoredObject:
      - Sender
  alt_recipient_fields:
    MyMonitoredObject:
      - Recipient
```

Now, when you log into your admin area and visit: `Settings > Notifications` and setup a new notification you will see alternate dropdowns that let you select the field you would like yo use.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~170 days

Recently: every ~283 days

Total

8

Last Release

481d ago

Major Versions

1.x-dev → 2.x-dev2025-01-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/c7d4998767cb41bf0048a65158559384fbab33751b26c996d6367019c68c4f8b?d=identicon)[DFT](/maintainers/DFT)

---

Top Contributors

[![mlewis-everley](https://avatars.githubusercontent.com/u/687143?v=4)](https://github.com/mlewis-everley "mlewis-everley (34 commits)")

---

Tags

emailsilverstripenotifications

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/i-lateral-silverstripe-notifier/health.svg)

```
[![Health](https://phpackages.com/badges/i-lateral-silverstripe-notifier/health.svg)](https://phpackages.com/packages/i-lateral-silverstripe-notifier)
```

###  Alternatives

[markguinn/silverstripe-email-helpers

Silverstripe extension containing SMTP mailer class and some other classes for HTML emails

3145.4k1](/packages/markguinn-silverstripe-email-helpers)[unclecheese/silverstripe-permamail

Adds database storage of emails and CMS definition of email templates.

2014.8k](/packages/unclecheese-silverstripe-permamail)[symbiote/silverstripe-notifications

Send CMS editable system notifications from code

155.8k3](/packages/symbiote-silverstripe-notifications)[camfindlay/apes

The Automated Provision of Email Services (APES) module will allow you to set up an automated sync mechanism between the SilverStripe Member DataObject and MailChimp.

122.6k](/packages/camfindlay-apes)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
