Volunteer submits time off (with name, dates, reason)
Volunteer claims an open shift
Shift drops below minimum capacity (one alert per threshold breach)
Trainee completes 2 shifts and becomes eligible for promotion (informational)
Delivery
Email only for MVP; SMS is post-MVP
Each Admin can configure which notification types they receive (TBD: toggle list vs. more complex)
Open Decisions
Default acknowledgement state when volunteer never responds to monthly email
Whether monthly email should include a direct link to the time-off page
Understaffing alert timing (how many days before shift)
Implement all email notification flows for volunteers and admins.
## Spec
See `docs/features/notifications.md`
## Requirements
### Monthly Schedule Publish (FR-N01–N03)
- Each assigned volunteer receives one summary email listing all their shifts for the month
- Email includes a single 'I've seen my schedule' acknowledgement button (covers the whole month)
- Admin sees acknowledged vs. unacknowledged status per volunteer; unacknowledged are visually flagged
### Shift Reminders (FR-N04–N07)
- 24-hour and 1-hour reminders sent to all assigned volunteers
- 24-hour reminder includes 'I'll be there' and 'Cannot Attend' actions
- 'Cannot Attend' requires a mandatory reason: Sick, Emergency, Work conflict, Other (free text)
- On 'Cannot Attend': shift spot marked open, reason recorded, Admin notified immediately
### Other Volunteer Notifications (FR-N08–N10)
- Published shift edited → assigned volunteers notified, acknowledgement status reset
- Volunteer added mid-month → that volunteer notified
- Month unpublished → all assigned volunteers notified
### Admin Notifications (FR-N11–N15)
- Volunteer clicks 'Cannot Attend' (with name, shift, reason)
- Volunteer submits time off (with name, dates, reason)
- Volunteer claims an open shift
- Shift drops below minimum capacity (one alert per threshold breach)
- Trainee completes 2 shifts and becomes eligible for promotion (informational)
## Delivery
- Email only for MVP; SMS is post-MVP
- Each Admin can configure which notification types they receive *(TBD: toggle list vs. more complex)*
## Open Decisions
- Default acknowledgement state when volunteer never responds to monthly email
- Whether monthly email should include a direct link to the time-off page
- Understaffing alert timing (how many days before shift)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Implement all email notification flows for volunteers and admins.
Spec
See
docs/features/notifications.mdRequirements
Monthly Schedule Publish (FR-N01–N03)
Shift Reminders (FR-N04–N07)
Other Volunteer Notifications (FR-N08–N10)
Admin Notifications (FR-N11–N15)
Delivery
Open Decisions