Notifications¶
Send Workbench delivers real-time notifications to users as risk events occur — for example when a risk action completes, a pipeline fails, or a task is assigned. Notifications appear in the Workbench UI via a persistent bell icon and can be extended to external channels such as Teams or Slack.
This page explains how the notification system works, what a configurator controls, and what requires DevOps involvement.
How notifications work¶
The notification system is built on three components:
- Notification Client — a shared library embedded in every Workbench service. Any service can publish a notification message.
- Apache Pulsar — the message broker that routes notifications between services.
- Notification Service — subscribes to Pulsar topics and delivers notifications to connected browsers via WebSocket.
When a pipeline step completes or a system event fires, the relevant service publishes a NotificationMessage to Pulsar. The Notification Service receives it and pushes it to the correct user's browser session in real time.
Enabling notifications¶
Notifications require Pulsar to be running and the Notification Service to be deployed. The base repository's be_config.json does not contain a pulsarConfiguration block — Pulsar enablement is typically managed at the infrastructure / service-startup level by DevOps rather than via be_config.json. Confirm the exact enablement mechanism for your active core platform version with your delivery lead before assuming a config key name.
The base repository does include taskCreatedNotification and taskCompletedNotification switches under externalCallConfig in be_config.json, which control whether task lifecycle notifications fire to client-specific endpoints.
In local development, Pulsar runs as a Docker container. The standard docker-compose.yml includes:
pulsar:
image: apachepulsar/pulsar:3.1.1
ports:
- "6650:6650" # Pulsar broker
- "8090:8090" # Pulsar admin (port 8090 avoids clash with socket-io on 8080)
What triggers notifications¶
Notifications are fired by the platform automatically for the following events:
| Event | Description |
|---|---|
| Risk action completed | When a pipeline finishes successfully for a risk action |
| Risk action failed | When a pipeline encounters an error |
| Task assigned | When a task is created and assigned to a user |
| Task status changed | When a task moves to a new state |
| Smart Submission processed | When an inbound email is triaged and a risk pre-populated |
| Sanctions check result | When a sanctions screening result is returned |
These are built into the platform and do not require configuration by an implementer.
Notification channels¶
The Notification Service currently supports:
| Channel | Status |
|---|---|
| In-browser (WebSocket) | Live — available to all clients |
| Microsoft Teams | Planned — not yet in production |
| Slack | Planned — SDK included but not yet active |
Future channel support will be configured via be_config.json once released.
Configuring notification recipients¶
The platform routes notifications to the user who owns the risk or task involved in the event. No explicit recipient configuration is required for standard workflow notifications.
For custom pipeline-triggered notifications, you can control recipients by configuring the pipeline component that calls the notification service. Recipient targeting follows these rules:
- By user ID — route to a specific named user
- By role — route to all users holding a given Workbench role (see User Roles & Permissions)
- By risk owner — route to the current owner of the risk record
Local development¶
When running Workbench locally, ensure Pulsar starts before the Notification Service. The recommended startup order is:
- LocalStack (AWS SQS / Lambda)
- Riskwire Hub
- Pulsar
- Riskwire Underwriting
- Notification Service
- All other services
Warning
If Pulsar is not running when services start, notification publishing will silently fail. Risk actions will still complete but users will not receive real-time updates.
Troubleshooting¶
Users not receiving notifications
- Confirm Pulsar is enabled for your environment (mechanism depends on your core platform version — confirm with DevOps or your delivery lead)
- Confirm the Notification Service is running (port 4888 in local Docker)
- Confirm Pulsar is healthy — visit
http://localhost:8090/admin/v2/clustersto verify
Notifications delayed
- Pulsar queues messages if the Notification Service is temporarily unavailable. Messages are delivered when the service reconnects.
No notifications in local development
- Ensure you are using the full
docker-compose.yml, not the minimaldocker-compose-min.yml. Pulsar is excluded from the minimal stack.