The Urgency Tier determines delivery speed:
| Tier | Name | Delivery |
|---|
| Tier 1 | Critical | Sent immediately via SMTP |
| Tier 2 | Actionable | Queued, bundled and sent every 10 minutes |
| Tier 3 | Informational | Queued for daily digest |
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Task Assigned | TaskAssigned | User added to task (create or update) | On event | Tier 2 |
| Task Shared | TaskShared | User added to task for awareness | On event | Tier 2 |
| Task Unassigned | TaskUnassigned | User removed from task on update | On event | Tier 2 |
| Task Start Reminder | TaskStarted | Tasks whose start date is today | Daily (12:00 UTC) | Tier 3 |
| Task Due Reminder | TaskDueDateApproaching | Days-out check before due date | Daily at 30 / 15 / 7 / 2 days out (12:04 UTC) | Tier 3 |
| Task Overdue Reminder | TaskOverdue | Tasks past due date | Daily (22:30 UTC) | Tier 3 |
| Task Ready for Approval | TaskReadyForApproval | Task submitted for review | On event | Tier 2 |
| Task Approved | TaskApproved | Approver approves task | On event | Tier 2 |
| Task Rejected | TaskRejected | Approver rejects task | On event | Tier 2 |
| Task Bulk Upload Failure | BulkUploadFailure | CSV import has failed rows | On event | Tier 1 |
Notification preference gate: "Task Reminders", "Task Assigned", "Task Shared"
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Risk Assigned | RiskAssigned | User added to risk (create or update) | On event | Tier 2 |
| Risk Unassigned | RiskUnassigned | User removed from risk on update | On event | Tier 2 |
| Risk Due Reminder | RiskDueDateApproaching | Days-out check before due date | Daily at 30 / 15 / 7 / 2 days out (12:18 UTC) | Tier 3 |
| Risk Overdue Reminder | RiskOverdue | Risks past due date | Daily (12:16 UTC) | Tier 3 |
| Risk Bulk Upload Failure | BulkUploadFailure | CSV import has failed rows | On event | Tier 1 |
Notification preference gate: "Risk Reminders", "Risk Assigned"
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Questionnaire Assigned | QuestionnaireAssigned | User added to Questionnaire (create, update, or delegate) | On event | Tier 2 |
| Questionnaire Unassigned | QuestionnaireUnassigned | User removed from Questionnaire on update | On event | Tier 2 |
| Questionnaire Start Reminder | QuestionnaireStarted | Questionnaires whose start date is today | Daily (12:36 UTC) | Tier 3 |
| Questionnaire Due Reminder | QuestionnaireDueDateApproaching | Days-out check before due date | Daily at 30 / 15 / 7 / 2 days out (12:42 UTC) | Tier 3 |
| Questionnaire Overdue Reminder | QuestionnaireOverdue | Questionnaires past due date (role-aware: submitted → reviewers only; unsubmitted → non-reviewers only) | Daily (12:40 UTC) | Tier 3 |
| Questionnaire Submitted | QuestionnaireReadyForApproval | Questionnaire submitted for review | On event | Tier 2 |
| Questionnaire Accepted | QuestionnaireAccepted | Reviewer accepts Questionnaire | On event | Tier 2 |
| Questionnaire Question Rejected | QuestionnaireQuestionRejected | Reviewer rejects a specific question or control | On event | Tier 2 |
| AI Processing Complete | QuestionnaireProcessingComplete | AnswerAssist AI finishes processing | On event | Tier 1 |
Notification preference gate: "Assessment Reminders", "Assessment Assigned", "Assessment Submitted" , "Assessment Accepted", "Control Rejected" (control or question rejected)
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Audit Assigned | AuditAssigned | User assigned to audit (create or update; Auditors + Auditees) | On event | Tier 2 |
| Audit Unassigned | AuditUnassigned | User removed from audit on update | On event | Tier 2 |
| Auditee - Audit Upcoming (Start Date) | AuditUpcoming | Auditees reminded before audit start date (30-day suppressed if created same day) | Daily at 30 / 15 / 7 / 2 days out (07:32 UTC) | Tier 3 |
| Auditor - Audit Upcoming (Observation Start) | AuditUpcoming | Auditors reminded before observation period (30-day suppressed if created same day; unactivated users get account-setup nudge) | Daily at 30 / 15 / 7 / 2 days out (07:34 UTC) | Tier 3 |
| Audit End Approaching (End Date) | AuditApproaching | Auditees reminded before audit end date | Daily at 15 / 7 / 2 days out (07:30 UTC) | Tier 3 |
| Audit Complete Reminder | MarkAuditComplete | Auditors reminded to mark overdue audit complete (every other day after end date, capped at 14 days) | Daily on odd-day offsets: day 1, 3, 5, 7, 9, 11, 13 (12:32 UTC) | Tier 2 |
| Audit Marked Complete | AuditMarkedComplete | Audit marked complete by auditor | On event | Tier 2 |
| Auditor Request Created | AuditorRequestCreated | Auditor creates an evidence request for auditees | On event | Tier 2 |
| Auditor Request Responded | AuditorRequestResponded | Auditee responds to an evidence request | On event | Tier 2 |
| Audit Bulk Upload Failure | BulkUploadFailure | CSV import has failed rows | On event | Tier 1 |
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Contract Assigned | ContractAssigned | User added to contract (create or update) | On event | Tier 2 |
| Contract Unassigned | ContractUnassigned | User removed from contract on update | On event | Tier 2 |
| Contract Renewal Reminder | ContractRenewal | Days-out check before end date (active contracts, StatusID=2) | Daily at 90 / 60 / 30 / 15 / 7 / 2 days out (12:26 UTC) | Tier 3 |
| Contract Expiration Reminder | ContractExpired | Expired contracts past end date (StatusID=2) | Daily (12:28 UTC) | Tier 3 |
| Contract Termination Reminder | ContractTermination | Termination notice window (end date minus notice period; only contracts with a termination period) | Daily at 28 / 14 / 7 days before deadline (12:24 UTC) | Tier 3 |
| Contract Bulk Upload Failure | BulkUploadFailure | CSV import has failed rows | On event | Tier 1 |
Notification preference gate: "Contract Renewal Reminders", "Contract Assigned", "Contract Expiration Reminders", Contract Termination Reminders"
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Policy Owner Assigned | PolicyOwnerAssigned | Owner set on policy | On event | Tier 2 |
| Policy Approver Assigned | PolicyApproverAssigned | Primary or secondary approver set | On event | Tier 2 |
| Policy Contributor Assigned | PolicyContributorAssigned | Contributor added to policy | On event | Tier 2 |
| Policy Ready for Approval | PolicyReadyForApproval | Policy submitted for approval | On event | Tier 2 |
| Policy Approved | PolicyApproved | All approvers approved | On event | Tier 2 |
| Policy Declined | PolicyDeclined | Approver declines policy | On event | Tier 2 |
| Policy Renewal Reminder | PolicyRenewal | Days-out check before renewal date (sent to policy owner) | Daily at 90 / 60 / 30 / 15 / 7 / 2 days out (00:45 UTC) | Tier 3 |
| Policy Signature Requested | PolicySignatureRequested | Signing link sent to external recipient (DispatchExternalAsync) | On event | Tier 1 |
| Policy Signed | PolicySigned | External recipient signed policy (DispatchExternalAsync) | On event | Tier 1 |
| Policy Signature Reminder | PolicySignatureReminder | Elsa cron + manual admin trigger (DispatchExternalAsync); server-side 24h cooldown | Daily (01:15 UTC) + on-demand | Tier 1 |
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Third Party Assigned | ThirdPartyAssigned | User added to vendor (create or update) | On event | Tier 2 |
| Third Party Unassigned | ThirdPartyUnassigned | User removed from vendor on update | On event | Tier 2 |
| Third Party Research Complete | ThirdPartyResearchComplete | Deep research / vendor insights scan finishes | On event | Tier 1 |
| Third Party Bulk Upload Failure | BulkUploadFailure | CSV import has failed rows | On event | Tier 1 |
Notification preference gate: "Third Party Assigned"
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Client Assigned | ClientAssigned | User added to client (create or update) | On event | Tier 2 |
| Client Unassigned | ClientUnassigned | User removed from client on update | On event | Tier 2 |
| Client Bulk Upload Failure | BulkUploadFailure | CSV import has failed rows | On event | Tier 1 |
Notification preference gate: "Client Assigned"
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Incident Assigned | IncidentAssigned | User added to incident (create or update) | On event | Tier 2 |
| Incident Unassigned | IncidentUnassigned | User removed from incident on update | On event | Tier 2 |
| Incident Overdue Reminder | IncidentOverdue | Incidents past due date | Daily (12:20 UTC) | Tier 3 |
| Incident Bulk Upload Failure | BulkUploadFailure | CSV import has failed rows | On event | Tier 1 |
Notification preference gate: "Incident Reminders", "Incident Assigned"
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Asset Assigned | AssetAssigned | User added to asset (create or update) | On event | Tier 2 |
| Asset Unassigned | AssetUnassigned | User removed from asset on update | On event | Tier 2 |
| Asset Bulk Upload Failure | BulkUploadFailure | CSV import has failed rows | On event | Tier 1 |
Notification preference gate: "IT Asset Assigned"
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| Results Available | BlueprintResultsAvailable | Scheduled query run completes (sent to recipients) | On schedule completion | Tier 2 |
| Results Ready for Review | BlueprintResultsReadyForReview | Scheduled query run completes (sent to approvers); also manual batch reminder | On schedule completion + on-demand | Tier 2 |
| Results Failed | BlueprintResultsFailed | Scheduled query run fails | On schedule completion | Tier 2 |
| Notification | Event Type | Trigger | Cadence | Tier |
|---|
| User Mentioned (Comments) | UserMentioned | User @-mentioned in a discussion comment | On event | Tier 2 |
| User Invite | UserInvite | Admin invites a new user to the platform | On event | Tier 1 |
| Report Exported | ReportExported | User exports a report from Report Designer | On event | Tier 1 |
| Form Entry Submitted | FormEntrySubmitted | Dynamic form entry submitted | On event | Tier 1 |