1 The two notification systems
HearPeers currently runs two parallel notification systems. They are independent — an event can trigger one without the other.
| System |
What it does |
Where users see it |
| In-platform notifications |
Alerts that appear inside the platform |
Bell icon (top navigation) + notification count badge |
| Email notifications |
Emails sent to the user's inbox |
User's email address |
User control: Users can control their email notification preferences in Account Settings. In-platform notifications cannot currently be turned off individually.
2 Notification triggers — what exists today
Social actions
| What happens |
Who gets notified |
In-platform bell |
Email sent |
| Someone likes your post |
Post author |
Yes |
No |
| Someone comments on your post |
Post author |
Yes |
Yes |
| Someone replies to a comment |
Comment author |
Yes |
Yes |
| You @mention someone in a post or comment |
Mentioned user |
Yes |
Yes |
| You save a post |
No one |
No |
No |
Connection actions
| What happens |
Who gets notified |
In-platform bell |
Email sent |
| You receive a connection request |
Recipient |
Yes |
Yes |
| Your connection request is accepted |
Requester |
Yes |
Yes |
| Your connection request is rejected |
No one |
No |
No |
| You cancel a connection request |
No one |
No |
No |
Group actions
| What happens |
Who gets notified |
In-platform bell |
Email sent |
| You are invited to a group |
Invited user |
Yes |
Yes |
| Someone requests to join your group |
Group admin |
Yes |
Yes |
| Your membership request is approved or rejected |
Requester |
Yes |
Yes |
| Group details are updated |
All group members |
Yes |
Yes |
| A backend admin adds a user to a group |
All group members ⚠️ |
Yes |
No |
| You are promoted to group admin |
Promoted user |
Yes |
Yes |
⚠️ Known issue: When an admin adds a user to a group via the backend (not through the community interface), all existing group members receive a bell notification — not just the newly added user. This creates unnecessary noise. See Section 5 for the proposed fix.
Direct messages
| What happens |
Who gets notified |
In-platform bell |
Email sent |
| You receive a direct message |
Recipient |
Yes |
Yes |
System / account emails
These emails are transactional — they are always sent and cannot be turned off by users.
| What happens |
Who receives it |
Email sent |
| Account created |
New user |
Yes (welcome email) |
| Invitation to join the platform |
Invited user |
Yes |
| Password reset requested |
User |
Yes |
| Password reset completed |
User |
Yes |
| Profile verification |
User |
Yes |
Note: These emails live in a separate code path from the notification system. They are not controlled by the notification preferences in Account Settings.
3 Notifications, the feed, and the daily digest
The activity feed
The activity feed (home page) is separate from notifications. It shows a stream of community activity — posts, joins, profile updates — but does not generate notifications. Users discover this content by visiting the feed; nothing is pushed to them for feed activity.
How they relate
| What triggers it |
Feed |
Bell |
Email |
| Post or comment by someone you follow |
Yes |
No |
No |
| Someone likes your post |
No |
Yes |
No |
| Someone comments on your post |
No |
Yes |
Yes |
| Group update |
No |
Yes |
Yes |
| New direct message |
No |
Yes |
Yes |
| New connection request |
No |
Yes |
Yes |
The daily digest not yet built
The daily digest is a proposed feature (FR-24) — a single daily email summarizing all low-urgency notifications from the past 24 hours, sent at 08:00. It does not exist in production today. Details in Section 6.
6 Proposed strategy
The following section presents our recommendation for how notifications should work going forward. This is a proposal for discussion — nothing here is final until agreed with MED-EL.
The problem with the current approach
Today, the platform treats all notifications the same. Any event that can send an email does so immediately, and users cannot distinguish urgent from non-urgent. This leads to two failure modes:
- Volume fatigue: Area Managers and Mentors receive frequent emails for low-urgency group updates and end up disabling all notifications — missing connection requests from Candidates.
- Missing granularity: Users who want fewer emails have only one option: turn off entire categories (e.g., "all group emails"), rather than reducing frequency.
Proposed: two-track delivery model
We propose organizing all notifications into two tracks based on urgency.
Events that require prompt attention — where a delay would break the user's workflow or leave someone waiting.
| Event |
Who receives it |
Rationale |
| New direct message |
Recipient |
Personal and time-sensitive |
| New connection request |
Mentor / Area Manager recipients |
A Candidate is waiting for support |
| First comment on your post |
Post author |
Primary social feedback signal |
| @mention in post or comment |
Mentioned user |
Direct address — requires response |
| Promoted to group admin |
Promoted user |
Role change — should be immediate |
Events that are informational or low-urgency — where batching reduces noise without missing anything important.
| Event |
Who receives it |
Rationale |
| Connection request (Candidate recipient) |
Recipient |
Lower volume; no immediate action needed |
| Connection request accepted |
Requester |
Confirmatory; no action required |
| Group membership request (to admin) |
Group admin |
Admin task; daily cadence is sufficient |
| Membership request approved/rejected |
Requester |
Confirmatory |
| Group invite |
Invited user |
Discovery; not time-sensitive |
| Group details updated |
Group members |
Informational; currently high volume |
| Subsequent comments on a post (2nd and beyond) |
Post author |
Batched as "N people commented on your post" |
Not sent by email — in-platform notifications only.
| Event |
Rationale |
| Post likes |
High volume, low urgency |
| Profile updates by others |
Activity feed is sufficient |
| Group joins/creates by others |
Activity feed is sufficient |
Before and after, by role
The matrix below shows every notification event and how its delivery changes for each role. Today, there is no digest — everything that sends an email does so instantly. The proposed model introduces the digest track and redirects low-urgency events into it.
Candidate Candidate / Caregiver
Self-registered user — newly diagnosed, candidate for implant, or caregiver. Low-volume user profile.
| Event |
Today |
Proposed |
Change? |
| New direct message |
Instant |
Instant |
No change |
| @mention in post or comment |
Instant |
Instant |
No change |
| First comment on your post |
Instant |
Instant |
No change |
| Subsequent comments on your post |
Instant (each) |
Digest (batched) |
Reduced |
| Connection request received |
Instant |
Digest |
Reduced |
| Connection request accepted |
Instant |
Digest |
Reduced |
| Group invite |
Instant |
Digest |
Reduced |
| Group details updated |
Instant |
Digest |
Reduced |
| Membership request approved/rejected |
Instant |
Digest |
Reduced |
| Post like received |
Bell only |
Bell only |
No change |
| Welcome / system emails |
Instant |
Instant |
No change |
Candidates are low-volume users. The main gain is tidying up group noise and batching secondary comments.
Recipient Recipient
Confirmed cochlear implant recipient. Moderate volume user.
| Event |
Today |
Proposed |
Change? |
| New direct message |
Instant |
Instant |
No change |
| @mention in post or comment |
Instant |
Instant |
No change |
| First comment on your post |
Instant |
Instant |
No change |
| Subsequent comments on your post |
Instant (each) |
Digest (batched) |
Reduced |
| Connection request received |
Instant |
Digest |
Reduced |
| Connection request accepted |
Instant |
Digest |
Reduced |
| Group invite |
Instant |
Digest |
Reduced |
| Group details updated |
Instant |
Digest |
Reduced |
| Membership request approved/rejected |
Instant |
Digest |
Reduced |
| Post like received |
Bell only |
Bell only |
No change |
| Welcome / system emails |
Instant |
Instant |
No change |
Similar to Candidates. Moderate volume; the digest reduces email frequency without losing anything urgent.
Mentor Mentor
Trained volunteer mentor. High-volume user with group responsibilities.
| Event |
Today |
Proposed |
Change? |
| New direct message |
Instant |
Instant |
No change |
| @mention in post or comment |
Instant |
Instant |
No change |
| First comment on your post |
Instant |
Instant |
No change |
| Subsequent comments on your post |
Instant (each) |
Digest (batched) |
Reduced |
| Connection request from a Candidate |
Instant |
Instant |
Preserved ★ |
| Connection request from a Recipient |
Instant |
Digest |
Reduced |
| Connection request accepted |
Instant |
Digest |
Reduced |
| Group invite |
Instant |
Digest |
Reduced |
| Group details updated |
Instant |
Digest |
Reduced |
| Membership request approved/rejected |
Instant |
Digest |
Reduced |
| Post like received |
Bell only |
Bell only |
No change |
| Welcome / system emails |
Instant |
Instant |
No change |
This is where the most value is. Mentors currently receive instant emails for every group update — high volume that leads them to disable notifications entirely. The proposed model keeps the one event that matters most (a Candidate reaching out) instant, and moves everything else to the digest. Mentors stay reachable without being overwhelmed.
Area Manager Area Manager
Regional manager — oversees users and groups within an area. Highest individual notification volume.
| Event |
Today |
Proposed |
Change? |
| New direct message |
Instant |
Instant |
No change |
| @mention in post or comment |
Instant |
Instant |
No change |
| First comment on your post |
Instant |
Instant |
No change |
| Subsequent comments on your post |
Instant (each) |
Digest (batched) |
Reduced |
| Connection request received |
Instant |
Digest |
Reduced |
| Connection request accepted |
Instant |
Digest |
Reduced |
| Group membership request (admin action required) |
Instant |
Digest |
Reduced |
| Membership request approved/rejected |
Instant |
Digest |
Reduced |
| Group invite |
Instant |
Digest |
Reduced |
| Group details updated |
Instant |
Digest |
Reduced |
| Promoted to group admin |
Instant |
Instant |
No change |
| Post like received |
Bell only |
Bell only |
No change |
| Welcome / system emails |
Instant |
Instant |
No change |
Highest volume role. Area Managers manage multiple groups and currently receive an instant email for every group update across all of them. The digest consolidates all group activity into one daily summary — the single biggest noise reduction in the whole proposal.
Super Admin Super Admin / MED-EL Backend Users
Highest-privilege community governance role. Not currently differentiated in the notification system.
| Event |
Today |
Proposed |
Change? |
| All notification events |
Same as other roles |
To be defined by MED-EL |
To be agreed |
Super Admins are not currently differentiated from other roles in the notification system. We recommend MED-EL define their notification needs separately — they may want no email notifications at all, or a different digest cadence.
What needs to be built
| Item |
What it is |
Status |
| Fix notification badge (real count, reset on visit) |
Frontend fix |
Not built |
| Fix "mark all as read" |
Frontend + backend fix |
Not built |
| Fix backend group additions (notify added user only) |
Backend fix |
Not built |
| Daily digest queue |
Backend — new queue for batched events |
Not built |
| Daily digest cron job |
Backend — daily sweep, sends one email per user |
Not built |
| Daily digest email template |
Email — one summary template with conditional sections |
Not built |
| Digest preference toggle in Account Settings |
Frontend + backend |
Not built |
One open research question
Why did you turn off email notifications?
This question confirms whether frequency is the problem (in which case the digest solves it) or whether the issue is content irrelevance or platform distrust (which require different solutions). This research should run before development begins on FR-24.