{% extends "base.html" %} {% block title %}Notification Matrix{% endblock %} {% block extra_css %} {% endblock %} {% block content %}
{# ── Page header ── #}

Notification Matrix

Control which roles receive email notifications for each event. Assignee, followers, and customer portal recipients are handled automatically where marked.

Back to Users
{# ── Legend ── #}
Enabled by default Disabled by default implicit Always notified — not controlled here
{# Row 1: spanning group headers #} {# Row 2: individual role headers #} {% for role_key, role_label in matrix_roles if role_key != 'custom' and role_key != 'customer' %} {% endfor %} {% for event_key, event_label in matrix_events.items() %} {% set event_state = state.get(event_key, {}) %} {# Internal role checkboxes (admin, supervisor, inspector, project_manager) #} {% for role_key, _ in matrix_roles if role_key not in ('custom', 'customer') %} {% set row = event_state.get(role_key) %} {% if row is not none %} {% set checked = row.enabled %} {% else %} {% set checked = defaults.get((event_key, role_key), false) %} {% endif %} {% endfor %} {# Customer checkbox #} {% set cust_row = event_state.get('customer') %} {% if cust_row is not none %} {% set cust_checked = cust_row.enabled %} {% else %} {% set cust_checked = defaults.get((event_key, 'customer'), false) %} {% endif %} {# Custom emails text input #} {% set custom_row = event_state.get('custom') %} {% if custom_row is not none %} {% set custom_val = custom_row.get_custom_emails() | join(', ') %} {% else %} {% set custom_val = '' %} {% endif %} {% endfor %}
Event Internal Recipients Customer Custom Recipients
{{ role_label }}Customer Email addresses
(comma-separated)
{{ event_label }} {# Show implicit labels where assignee/followers are always notified #} {% if event_key in ('issue_assigned', 'issue_reassigned', 'issue_unassigned', 'issue_status', 'issue_comment') %} assignee {% endif %} {% if event_key == 'issue_follow_update' %} followers {% endif %} {% if event_key == 'sla_alert' %} assignee followers {% endif %}
Reset Changes take effect immediately for all subsequent notifications.
{# ── Notes card ── #}

Internal: Admin, Supervisor, Inspector, and Project Manager users receive in-app notifications and emails based on their individual preference settings.

Customer: Customer-portal users are notified only for facilities they are assigned to via their contract/facility assignments.

Custom Recipients: Additional email addresses (e.g. external managers) receive a plain email. They do not get in-app notifications and are not affected by individual user preference settings.

{% endblock %}