Skip to content

Submit & track a report (Citizen workflow)

What you’ll do

You will submit a report with: - Location (required) - Category (type of issue) - Title and description - Optional contact details (so the municipality can update you)

Step-by-step: submit a report

  1. Choose the location
  2. The system checks whether the location is inside an active municipality boundary.
  3. If it is not, the submission will be rejected and you’ll be asked to pick a valid location.

  4. Describe the issue

  5. Use a clear title (“Pothole on Main St”) and helpful details.

  6. Pick a category

  7. Categories determine routing, priority, and who can work on the issue.

  8. Check for similar reports

  9. The system may show you similar reports nearby (duplicates).
  10. Depending on municipal policy, you may:

    • be allowed to proceed,
    • be encouraged to confirm it’s not a duplicate,
    • or be blocked if it’s clearly a duplicate.
  11. Submit

  12. After submission, you receive a service request ID (a reference like CITY-000123).

After you submit

  • The issue may be automatically assigned to staff.
  • You may receive an immediate confirmation message if auto-responses are enabled.
  • As staff work on the issue, you may receive updates by email (depending on configuration).

Behind the scenes (grounded in code)

  • Public submission endpoint: apps/occurrences/views.pyOccurrenceViewSet.public_submit
  • Municipality boundary check: WorkflowPolicyService.determine_municipality_from_location
  • Duplicate detection policy: DuplicateDetectionSettings + WorkflowPolicyService.check_duplicates_before_create
  • Service request ID generation happens immediately after create.