Workflow
Email system (confirmation + notification)
Serve System sends confirmation emails to volunteers and notification emails to recipients configured per opportunity. Both use Rock System Communications with merge fields provided by the sign-up service.
Flow summary
Volunteer signs up
|- confirmation path -> system comm on opportunity -> send to volunteer
| |- optional ContentTemplate (hierarchical template match)
|- notification path -> filter signups by recipient campus/role -> send to people/groups
Template hierarchy
Content template resolution is implemented in
ServeOpportunityNotificationContentTemplateService.GetMostSpecificTemplate
with this order:
- Role + Campus
- Role only
- Role Category + Campus
- Role Category only
- Campus only
- Default template (no role/category/campus)
Key merge fields
| Field | Confirmation | Notification |
|---|---|---|
Person |
Volunteer who signed up | Email recipient person |
ServeOpportunity |
Yes | Yes |
ServeOpportunityInstance |
Yes | Yes |
ServeOpportunityRole |
Selected role | Role from grouped sign-ups |
Campus |
Selected campus | Campus from grouped sign-ups |
ShiftDetails |
List of shift items | Grouped shift objects with people/signups |
ContentTemplate |
Yes (if matched) | No |
NotificationRole / NotificationCampus |
No | Yes, based on recipient filters |
People / SignUps |
No | Yes |
Implementation source
serve-system/org.tpcc.ServeSystem/Model/ServeOpportunityInstanceSignUp/ServeOpportunityInstanceSignUpService.csserve-system/org.tpcc.ServeSystem/Model/ServeOpportunityNotificationContentTemplate/ServeOpportunityNotificationContentTemplateService.csserve-system/org.tpcc.ServeSystem/ServeHelper.cs
Canonical long-form documentation is mirrored at reference/TPCC_ServeSystem_Email_Documentation.md.
Troubleshooting quick list
- Missing confirmations: verify
ConfirmationSystemEmailIdand active System Communication. - Missing notifications: verify
NotificationSystemEmailIdand recipient filters. - Empty template output: add at least a default content template for fallback.
- Unexpected template: verify role/category/campus specificity precedence.