Notifications
ulams has three ways of telling people that something happened:
| Kind | What it is | Where it is managed |
|---|---|---|
| Templated messages | Emails, SMS and PDFs generated from templates when an event fires | Templates |
| In-app notifications | A record of each event, stored for the user it concerns | this page, and Analytics → Notifications |
| Push messages | Messages an administrator writes and sends to mobile devices | Users → Notifications (this page) |
In-app notifications
Section titled “In-app notifications”The notifications package listens to every event of the
Ulams\… packages and stores it as a database notification for the user the event concerns
(for example CourseAssigned for the learner who was assigned). Events listed in the
package’s configuration are not stored.
- Learners read their own notifications through
GET /api/notificationsand mark them as read (POST /api/notifications/{id}/read,POST /api/notifications/read-all). - In the admin panel, the bell in the top bar shows your own notifications, with a Read all action.
- Analytics → Notifications (
/analytics/notifications) lists the notifications of all users. It needs thedashboard-app_notification-list_accesspermission and is described in Reports and analytics.
The list of event names is available at GET /api/admin/notifications/events; the events
themselves are listed in Events and notifications.
Push messages
Section titled “Push messages”Users → Notifications sends push messages through Firebase Cloud Messaging with the
bulk-notifications package. Only users whose
device has registered a push token receive them: a mobile or web app registers the token with
POST /api/notifications/tokens after the user signs in (permission device-token_create).
| Screen | Route | Permission needed to see it |
|---|---|---|
| Sent push messages | /users/notifications, /users/notifications/push |
bulk-notification_list |
| New push message | /users/notifications/push/new |
bulk-notification_create |

The list shows each delivery: ID, the recipient’s user ID, the title and the content.
Sending a push message
Section titled “Sending a push message”- Open Users → Notifications and click New.
- Enter the Title and the Content.
- Choose Users, or leave the field empty to send to every user with a registered device.
- Optionally add a Redirect URL (opened when the message is tapped) and an Image URL.
- Click Submit. The message is sent immediately; it cannot be scheduled or recalled.
With users selected the panel calls POST /api/admin/bulk-notifications/send; without, it
calls POST /api/admin/bulk-notifications/send/multicast.
Configuration
Section titled “Configuration”Set these keys on the Package Bulk Notifications tab of Settings:
ulams_bulk_notifications.push.service_account: the Firebase service account JSON of the project your apps use.ulams_bulk_notifications.push.base_redirect_url: the base URL for redirect links.