Skip to main content
Office hours in Pawtograder are a real-time queue system for live help. Students submit help requests into a queue, course staff start working a queue to indicate they’re available, claim requests, and chat with students by text or video until the request is resolved. This page is the staff reference. The student-facing view is documented under Office Hours for Students.

Queues

A course can have any number of help queues. Common patterns include a queue per campus, separate text and video queues, or a queue per assignment during a busy week. Each queue has the following configuration (set in Manage > Office Hours > Settings > Queue Management):
  • Name and description — shown to students when picking where to request help.
  • Queue typeText Chat, Video Call, or In Person. Determines how staff and students communicate.
  • Active flag (is_active) — see Active vs inactive queues below.
  • Available flag (available) — when unchecked, the queue stops accepting new requests but remains visible.
  • Demo flag (is_demo) — demo queues are labelled “DEMO - NOT A REAL QUEUE” in the UI, send no notifications, and do not require active staff to accept requests. Use them for training.
  • Ordinal — controls display order. Lower numbers appear first; ties break alphabetically by name.
  • Max concurrent requests — optional cap on the number of open requests in the queue at once.
  • Closing time — optional timestamp at which the queue automatically closes.
  • Color — optional accent color used in queue badges.
Queues can be linked to Discord channels and to calendar events. When a calendar event’s queue name matches a queue (or is explicitly linked), it appears as the staffed time for that queue on the dashboard.

Active vs inactive queues

The active flag controls whether a queue participates in the live office-hours experience:
  • Active queues appear on the student “Browse Queues” view and on the staff dashboard. Students can submit new requests to them (subject to the available flag and staffing).
  • Inactive queues are hidden from both students and the staff dashboard, but remain editable under Queue Management.
Mark a queue inactive when it isn’t currently in use — for example, an assignment-specific queue that’s outside its window. You don’t need to delete it; toggling is_active keeps history intact.

The staff dashboard

Open Manage > Office Hours. The page has two modes depending on whether you’re currently working a queue:
  • Not working any queue — you see the TA Dashboard, listing all active queues with their depth, currently-working staff, and current/upcoming scheduled staff times pulled from the office-hours calendar. Click Start Working on a queue to join it.
  • Working at least one queue — you see the Working view, listing:
    • Requests I’m Responsible For — split into My Assigned (requests where assignee is you and status is open or in_progress) and Unassigned open requests in queues you’re working.
The header bar provides quick navigation to Working, All Requests, and Settings (Queue Management, Assignment Management, Templates, Moderation, Student Karma, Student Activity, Time Tracking, and — for instructors — Feedback).

Starting and stopping work

Clicking Start Working creates an active help_queue_assignments row tying you to that queue. Other staff and students see you listed as currently staffing it. Click Stop Working (per queue, or the count button in the header to stop all at once) to end the assignment. You can be working multiple queues simultaneously. The header shows a green badge with the queue name (or count) for any queues you’re currently working.

Resolving requests

Help requests move through four statuses, defined by the help_request_status enum:
StatusMeaning
openSubmitted, not yet picked up. Visible in the queue.
in_progressA staff member has claimed it and is helping.
resolvedThe request is done. Removed from the queue.
closedClosed without resolution (e.g. moderation, abandoned).
From an open request, a staff member clicks Start Helping to take it. This sets assignee to the current staff profile and the status to in_progress. The student sees the assignee’s name and a “Helping” badge with a running timer (based on updated_at). While helping, the assignee can:
  • Send text chat messages. Unsent text remains in the input if the connection drops so messages aren’t lost.
  • Click Start Video Chat to open a video call with screen sharing. After the staff member starts the call, the student sees a Join Video Chat button.
  • Click Stop to release the request back to the queue (clears assignee, returns status to open).
  • Resolve the request when finished.

Who can resolve

Either the assigned staff member or the student can mark a request as resolved. When a student resolves their own request, they pick a help_request_resolution_status:
ValueLabel
self_solvedI solved it myself
staff_helpedStaff helped me
peer_helpedA peer helped me
no_timeNo time to wait
otherOther (with optional free-text notes)
Students may also optionally provide thumbs-up/thumbs-down feedback with a comment when they resolve. Staff resolve requests directly from the request view; the resolution status will reflect that staff closed the request.

Help request templates

Instructors and graders can create help request templates under Settings > Templates. A template is a pre-filled help request body that prompts students to include specific information (steps tried, what they expected vs. observed, links to discussion posts, etc.). Each template has:
  • Name — what the template is called in the picker.
  • Category — used to group templates in the picker (defaults to General).
  • Description — optional short explanation of when to use this template.
  • Template content — the body inserted into the student’s new request, including any placeholder prompts.
  • Active flag — inactive templates are hidden from students but kept for reference.
The template list shows a usage count per template, so you can see which prompts students are actually picking up. Use templates to enforce a “have you tried X” checklist before students join the queue.

Referenced submissions and files

Students can attach a submission, specific submission files, and even line numbers to a help request. When a submission or file is attached, the request is automatically marked private (visible only to the student and staff) — the system enforces this when refs are added or removed, so private code doesn’t accidentally end up on a public request. Staff helping the request see those file references inline in the chat view.

Notifications

The office-hours UI surfaces multi-channel notifications (browser notifications, page-title updates, sound alerts, and a favicon badge) so participants don’t have to keep the page focused. If browser-notification permission isn’t granted, a NotificationPermissionWarning banner appears on the dashboard with a button to request permission. You can test notifications from your help request page. These notifications behave the same for staff and students. The student-facing details — including the persistent Get Help button and the active-request widget — live in Office Hours for Students.

AI assistance

When viewing a help request or a discussion thread, instructors and graders see an AI Help button that generates a Model Context Protocol (MCP) context URL. Connect that URL to any MCP-compatible AI client (Claude Desktop, Cursor, etc.) and the assistant can pull in the request, the student’s referenced submission, test results, and build output to help you diagnose the issue. AI assistance is restricted to instructors and graders; student-identifying data is not exposed to the AI. Configuration details, supported clients, and the available MCP tools are documented in AI Assistance.

Other settings

The Settings menu in the Office Hours header also exposes:
  • Assignment Management — manage staff queue assignments and shift records.
  • Moderation — moderation actions taken on disruptive students.
  • Student Karma — adjust per-student karma used for request prioritization.
  • Student Activity — per-student activity summary across help requests.
  • Time Tracking — staff time spent working queues.
  • Feedback (instructor-only) — student feedback collected at resolution time, used to monitor quality of help.

See also

  • Office Hours for Students — the student-side experience (Get Help button, help drawer, active-request widget).
  • AI Assistance — setting up and using the MCP server and AI Help button.
  • Discussion — for asynchronous help that doesn’t need a live queue.