Volunteer Management¶
Overview¶
Volunteer Management is an ops hub under /events/volunteers/ with pill tabs for overview, applications, teams, shifts, assignments, check-in, CRM/reports, messages, and custom questions. It covers recruitment, scheduling, QR check-in/out, hours, messaging, and attendance insights.
Purpose¶
Staff large events with structured volunteer recruitment, shift scheduling, day-of attendance, and CRM reporting.
Who should use it¶
- Volunteer coordinators
- Department / team leads
- Volunteers seeking opportunities
- Operations Suite organizers
Benefits¶
- Pill-navigated hub with event filter that persists across tabs
- Public or private application forms (invite token)
- Unlimited custom application questions
- Preferred shifts, waiver upload, capacity meters
- Departments (teams) with roster and capacity bars
- Shift change approval workflow
- QR check-in/out and break-aware hours
- VIP / blocklist flags, CRM CSV, cross-event history
- Volunteer email blast audiences with attachments
Navigation path¶
| Action | Path |
|---|---|
| Volunteers hub | /events/volunteers/?tab=overview |
| Applications / Teams / Shifts / … | /events/volunteers/?tab=<name>&event=<id> |
| Opportunities | /events/volunteers/opportunities/ |
| Apply | /events/volunteers/apply/<pk>/<tag>/ (add ?token= when private) |
| Event dashboard | /events/<pk>/<tag>/volunteers/ |
| Application review | /events/volunteers/applications/<pk>/review/ |
| Volunteer portal | /events/volunteers/portal/<pk>/ |
| Portal QR image | /events/volunteers/portal/<pk>/qr.png |
| Check-in dashboard | /events/<pk>/<tag>/volunteer-checkin/ |
| Profiles / departments / shifts | /events/volunteers/profiles/, .../departments/, .../shifts/ |
Prerequisites¶
- Subscription: Operations Suite (
volunteerstool key) - Event:
volunteers_enabled=True - Wizard step
volunteerscompleted - Volunteer accounts (free) for applicants
Step-by-step — Configure volunteer program¶
- Enable Volunteers on the event.
- Wizard: prospectus, deadline, total needed, benefits, min age, skills.
- In the hub Teams and Shifts tabs, create departments and shifts with caps.
- On Questions, add custom questions and toggle public/private applications.
- Share the public apply URL or private invite link.
Step-by-step — Volunteer lifecycle¶
- Volunteer browses opportunities → applies (custom answers, preferred shifts, optional waiver upload).
- Organizer reviews on Applications / review page: approve / reject / waitlist; reject promotes the next waitlisted applicant.
- Volunteer completes portal onboarding (waiver + orientation); portal shows check-in QR (
NIGALL:VOL|…). - Organizer assigns on review or Assignments (capacity enforced).
- Day-of: open Check-in tab → desk; checkout rolls hours and can issue certificates when configured.
- Use CRM / Reports for hours, no-shows, VIP/blocklist; Messages for blasts.
[SCREENSHOT: Volunteer hub overview pills]
Field descriptions¶
| Event field | Description |
|---|---|
volunteer_prospectus |
Public recruiting copy |
volunteer_total_needed |
Headcount goal |
volunteer_benefit_* |
Free access, meals, t-shirt, certificate |
volunteer_min_age |
Default 16 |
volunteer_skills_required |
One per line |
volunteer_check_in_location |
Desk location |
volunteer_approval_type |
auto / organizer / admin |
volunteer_applications_public |
When false, apply requires invite token |
volunteer_invite_token |
Opaque invite token for private forms |
| Profile / assignment | Description |
|---|---|
is_vip / is_blocked / block_reason |
CRM flags; block checked on apply and assign |
preferred_shifts |
Multi-select shift preferences on apply |
is_team_lead |
Assignment flag for department lead |
| Custom Q&A | VolunteerCustomQuestion / VolunteerCustomAnswer |
Assignment timing¶
actual_check_in_time, actual_check_out_time, and break times → break-aware hours_worked.
Business rules¶
| Rule | Detail |
|---|---|
| Waitlist promote | Reject / cancel assignment can promote next waitlisted |
| Capacity | Shift and department caps enforced on assign_volunteer |
| Blocklist | Blocked email/profile cannot apply or be assigned |
| Private apply | Invite token required when applications are not public |
| Certificates | Issued after checkout when volunteer_benefit_certificate |
| Reminders | python manage.py send_volunteer_reminders |
Validation rules¶
- Min age on application
- Required custom questions
- Shift / department capacity on assignment
- Onboarding complete before assignment
User permissions¶
| Role | Apply | Review | Check-in |
|---|---|---|---|
| Volunteer | ✅ | ❌ | Portal QR |
| Host | Hub (tool gated) | ✅ | ✅ |
| Staff | ❌ | ✅ admin | ✅ |
Workflow¶
Messaging audiences¶
Email blasts support:
- Approved volunteers
- Assigned volunteers
- Waitlisted volunteers
- Custom selected volunteers
Compose from the hub Messages tab (optional attachment).
Examples¶
Music festival: 200 volunteers, teams (Parking, Stage, Medical), shift caps, private invite for specialty crews, CRM no-show tracking.
Best practices¶
- Set caps on teams and shifts before opening applications
- Use private forms for invite-only roles
- Flag VIP / blocklist in CRM before the next event
- Run shift reminders via management command or scheduler
Tips¶
- Event filter at the top of the hub persists across pills
- Primary CTA changes per tab (one main action)
- Portal QR matches desk scan format
NIGALL:VOL|<volunteer_id>
Common mistakes¶
| Mistake | Result | Fix |
|---|---|---|
| No shifts created | Nowhere to assign | Create shifts first |
| Caps ignored in UI | Over-assign attempts fail | Watch capacity meters |
| Private form shared without token | Applicants blocked | Share invite link from Questions tab |
FAQs¶
Do volunteers need paid plans?
No — organizers need Operations Suite; volunteers use free accounts.
Can applications be invite-only?
Yes — turn off public applications on the Questions tab and share the invite URL.
Troubleshooting¶
| Symptom | Cause | Fix |
|---|---|---|
| Opportunity hidden | Module off / past deadline / private | Check toggles, dates, public flag |
| Check-in fails | Wrong QR / assignment | Verify NIGALL:VOL|… and active assignment |
| Assign fails | Capacity or onboarding | Complete waiver/orientation; free a slot |
Related features¶
Screenshot placeholders¶
[SCREENSHOT: Volunteer hub overview pills][SCREENSHOT: Custom questions + private invite][SCREENSHOT: CRM hours and VIP flags][SCREENSHOT: Portal check-in QR]
Administrator notes¶
- Notifications:
events/volunteer_notifications.py - Workflow:
events/volunteer_workflow_services.py - Hub views:
events/volunteer_hub_views.py - Reminders:
events/management/commands/send_volunteer_reminders.py
Developer/API notes¶
Models: VolunteerProfile, VolunteerDepartment, VolunteerShift, VolunteerAssignment, VolunteerCustomQuestion, VolunteerCustomAnswer in events.models.
Blast audiences: volunteers_approved, volunteers_assigned, volunteers_waitlisted, volunteers_custom on EmailBlast.
See also: Events & Registration