Triage & manage occurrences (Staff workflow)
This page is for staff who work on incoming reports.
Your goals
- Make sure the right team sees the right work.
- Keep citizens informed with consistent updates.
- Move issues through the configured workflow until they are resolved and closed.
1) Find new work
Typical signals that a report needs attention: - New “open” occurrences - Items assigned to you - Items nearing SLA due dates (if enabled)
2) Confirm category and details
- Validate the category (occurrence type). Categories affect routing, priorities, and which staff are allowed to work the case.
- If the report lacks details, add an internal note.
3) Assign ownership
Occurrences can be assigned to a staff member (manually), or auto-assigned by municipality policy.
4) Add notes and updates
You can add: - Internal notes (not visible to citizens) - Public updates (visible to citizens, and may trigger email notifications)
Use templates to move faster and avoid inconsistent messaging.
5) Change the workflow state
If custom workflow states are enabled for your municipality: - You can transition to allowed next states only. - The system enforces any configured role restrictions on transitions.
Changing state can also trigger automatic responses (if configured).
6) Resolve and close
When work is complete: - Transition to a terminal/resolved/closed state per municipal rules. - Optionally add a final public update.
Duplicate handling (when relevant)
If duplicate detection is enabled: - Some submissions may already be linked automatically. - If you identify duplicates later, you can create links between occurrences.
Behind the scenes (grounded in code)
- Staff state transition endpoint:
apps/occurrences/views.py→OccurrenceViewSet.transition_state - Staff filtering by category permissions:
StaffOccurrenceFilterMixin+MunicipalityUser.allowed_occurrence_types - SLA tracking fields on the occurrence:
Occurrence.first_response_due_at,Occurrence.resolution_due_at,Occurrence.first_responded_at