Skip to content

Notifications

Ascendly delivers in-app notifications when scorecard events affect you or your team. The same inbox and delivery rules apply on web and the Windows desktop app.


Where to find them

ClientBellFull inboxDelivery preferences
WebHeader nav/notificationsAccount / settings
DesktopTitlebar (next to window controls)/notificationsSettings → Notifications

Unread count appears on the bell. New items can also show as toasts while you are signed in. Desktop can optionally mirror toasts as native OS notifications (user preference).


What triggers notifications

Scorecard entries (seven submission types)

When someone submits an entry for you (as the evaluated employee), you receive an in-app notification such as scorecard.atw.submitted_for_you. Types follow the pattern scorecard.{kind}.submitted_for_you for SBS, Non-SBS, ATW, Attendance, Productivity, Additional Points, and Incidents.

When a manager soft-deletes an entry that affects you, you receive scorecard.{kind}.deleted_for_you with who deleted it and a short summary. Deletes are recoverable from the web recycle bin while the entry month is open — see Scorecard § Recently deleted.

ATW entry requests (employees)

Employees can submit ATW entry requests from the desktop app (or web when enabled). Managers receive review notifications; employees receive approved or rejected outcomes.

Scheduled reminders (worker)

The background worker can emit:

  • scorecard.evals.missing_team — managers when direct reports have evaluation gaps in the current month. Schedule and timezone are configured by admins.
  • scorecard.weekly_lock.approaching — when weekly locking is enabled and a week’s scheduled lock is within the configured reminder window (remind_hours_before, default 24h). See Scorecard § Weekly locking.

Admin configuration

Super admins (access level 5) manage notification types at System → Notifications (/system/notifications):

  • Enable or disable each type
  • Edit title/body templates
  • Configure scheduled types (time + IANA timezone; UI shows local time)

Users control delivery per type: in-app and email on/off independently (when email is enabled on the server).

Email delivery (Gmail)

When NOTIFICATION_EMAIL_ENABLED=true and Gmail delegation is configured on the API, eligible notifications can also send email to the employee's work address (personal_data.email_address).

RuleBehavior
User prefsPer-type in-app and email toggles on the delivery preferences panel
Quiet hoursEmail suppressed during configured quiet window (user timezone)
Type catalogAdmins can restrict which channels a type supports
ImpersonationMirror notifications to the impersonator's inbox skip email

Super admins can send a test email from System → Notifications (POST /v1/system/notifications/email-test).

Env vars: NOTIFICATION_EMAIL_ENABLED, NOTIFICATION_EMAIL_IMPERSONATE, NOTIFICATION_EMAIL_FROM, NOTIFICATION_APP_BASE_URL. See engineering api/.env.example.


Web and desktop parity

Both clients call the same REST API (GET /v1/notifications, mark read, delivery prefs). Shared behavior:

ConcernRule
TimestampsAPI stores UTC; relative labels (“5m ago”) parse datetimes as UTC
Hooks & formattingDesktop imports web/src/notifications/* — do not maintain separate copies
Scorecard side-effects (desktop)When a scorecard.* notification arrives, desktop Home / BSC cards refetch so ATW points and BSC % stay in sync after deletes

If you add a notification type on the API, wire it in the shared web module; desktop picks it up automatically.