Understanding Brief Connect notifications
Brief Connect's notification system helps users stay informed about important changes and events within their records while maintaining control over what notifications they receive and how they receive them.
What are Brief Connect notifications?
Brief Connect notifications are automated messages sent to users when specific events occur within the system. These notifications can be delivered through either Teams or email, depending on user preferences.
How do notifications work?
The notification process follows five main steps:
- Event Trigger - An event occurs in the system (e.g., new task assigned, status change)
- Template Selection - The system determines which notification template(s) apply
- Initial Audience Calculation - The system identifies who the audience is for a given template - e.g.: The 'NewTaskCommon.html' email is sent to all "Named roles" on a record
- Audience filtering - The system removes any recipients who have disabled that notification subscription type
- Notification Queue - Notifications are added to the queue and processed (sent to users)
Proxy Notifications
If a user is an active proxy for another user, the proxy is typically incuded as a CC on any notifications. Proxies won't receive a CC however if they have customised their proxy notification and disabled the relevant notification trigger.
User Notification Settings
Users have two levels of notification control:
- Global Settings: Default preferences that apply to all records
- Full notifications for all events
- Task-only notifications
- Custom selection of triggers
- No notifications
-
Choice of delivery channel (Teams or email)
-
Record-Level Settings: Override settings for specific records
- Users can customize notification triggers for individual records
- Useful for receiving extra notifications on important records
- Can override muted or limited global settings
Who receices a notification
Most notifications are sent to 'Named Users' of a record. That means when an event occurs on a record that corresponds with a notificiation rigger (such as Record status changed), all Named Users on that record and their proxies are sent this notification, subject to their own subscription preferences.
Notification Processing
When a notification event occurs, Brief Connect:
- Identifies applicable notification templates
- Determines the intended audience based on template type
- Expands audience to include user proxies
- Filters recipients based on notification preferences
- Queues notifications for delivery
For example, when a new task is assigned: - The system sends a personal notification to the assigned user - A common notification goes to all named roles on the record (except the assignee) - Proxies for eligible users are included - Users' notification preferences are checked before sending
Available Notification Templates
Brief Connect uses different templates for various events. Notifications templates are stored a .html files within the Email Templates library of the Brief Connect SharePoint site.
HTML templates can be modified, but note that:
- HTML syntax that is compatible with email clients is limited. We don't advise significant layout changes
- Images should be inlined as base64, although compatibility with all email clients is not guaranteed. Inlined images are well supported by Outlook clients
- Token availability (such as {{recordId}}) are determined per record template. Tokens are not interchangeable between templates - for example, if a template does not already use an {{AssignedTo}} token in the base layout, it is likely not available for the given template.
- Template filenames must not be changed
- There is no support to configure new notification types currently. We recommend using our APIs and Webhooks to deliver additional notification types
Notification Template Reference
| Notification Subscription type | System event trigger | Intended Audience | Template file | Subject |
|---|---|---|---|---|
| Roles changed on a record | On record update, when new user assigned to key role | Each user who was allocated a role | RoleAllocated.html | Concat("Role allocated - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Roles changed on a record | On record update, when user removed from key role | Each user who was removed from a role | RoleChanged.html | Concat("Role changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed, Record sent on or back to another role | On record update when transition flag CanRecordRecommendations=true and next state flag CanManageSignatures=true | Named users | StageManageSignatures.html | Concat("Decision made (manage signatures) - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed to OnHold | Named users | RecordOnHold.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed to NoFurtherAction | Named users | RecordNoFutherAction.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed to Cancelled | Named users | RecordCancelled.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed to Withdrawn | Named users | RecordWithdrawn.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | When record superseded | Named users | RecordSuperseded.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed to Closed | Named users | RecordClosed.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record update when stage changed from Initiate to any other stage | Named users | StagePrepareAndReview.html | Concat("Record is being prepared - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record update when transition flag CanRecordRecommendations=true and next state flag CanManageSignatures=false | Named users | StageImplementAndClose.html | Concat("Decision made (implement and close) - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed from OnHold to any other value | Named users | RecordRemoveOnHold.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed from Withdrawn to any other value | Named users | RecordRemoveWithdrawn.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed from NoFutherAction to any other value | Named users | RecordRemoveNoFutherAction.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record status changed | On record status changed from Cancelled to any other value | Named users | RecordRemoveCancelled.html | Concat("Status changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record sent to me to action | New Record created (initial tasks) | The user the current task is assigned to (Initiator) | NewTaskPersonal.html | Concat("You have been assigned a task - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record sent to me to action | New Task assigned | The user the current task is assigned to | NewTaskPersonal.html | Concat("You have been assigned a task - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record sent to me to action | Task assignee changed | The user the current task is assigned to | NewTaskPersonal.html | Concat("You have been assigned a task - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record sent to me to action | On record update, when task closed not by assignee | The user(s) who were previously assigned a task that was closed by someone else | TaskClosedNotByAssignee.html | Concat("Your review task has been closed by another person - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record sent on or back to another role | New Record created (initial tasks) | Named Users - excluding the any user currently assigned a task | NewTaskCommon.html | Concat("Key details changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record sent on or back to another role | New Task assigned | Named Users - excluding the any user currently assigned a task | NewTaskCommon.html | Concat("Key details changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record sent on or back to another role | Task assignee changed | Named Users - excluding the any user currently assigned a task | NewTaskCommon.html | Concat("Key details changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record details changed | On record update when Record details changed (Title, ReplyType, ReplyFormat, DateWritten, DateReceived, From.Email, Contacts, DecisionCategory, Organization all levels) | Named users | KeyDetailsChanged.html | Concat("Key details changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Record details changed | On record update when Roles changed | The user allocated a role, and any user removed from a role | KeyDetailsChanged.html | Concat("Key details changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| N/A - Sent to 'Sender' of Correspondence record based on Auto-response timeframe | Record created with correspondence with AutoResponseTemplate | The "From" Sender of the Correspondence item | CorroAutoResponse.html | "BMCP Notification" |
| N/A - Sent automatically | Runs once a day at 630AM to notify users of proxy expiration | Any proxy user + the user they proxy for where the proxy assignment is due to expire a week from when the email is sent (between 6 and 7 days from the current date) | ProxyExpiring.html | Concat("Expiring proxy access - ", stringExec, " - ", proxiesStringExec) |
| N/A - Always received by requesting user | When export pdf pack is ready | The user who requested the PDF Pack | PdfPack.html | "BMCP - Your PDF Pack Export is here" |
| Key date changed | On record update when key dates changed | Named users | KeyDetailsChanged.html | Concat("Key details changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Key date changed | On record update when Access Level changed | Named users | KeyDetailsChanged.html | Concat("Key details changed - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Comment added to a record activity | Submit external request | Named users | CommentAdded.html | Concat("New activity feed message - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Comment added to a record activity | User add comment to activity log from UI | Named users | CommentAdded.html | Concat("New activity feed message - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
| Comment added to a record activity | Record status changed with comments (status OnHold, Cancelled... etc.) | Named users | CommentAdded.html | Concat("New activity feed message - ", notificationData.RecordId, " - ", notificationData.RecordTitle) |
Glossary
Named Users: Any user who has been explicitly named on a record through role assignment. For example, if John Doe is assigned the Collaborator role on BMIN-1234, he is considered a named user for that record.