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 type —
Text Chat,Video Call, orIn 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.
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
availableflag and staffing). - Inactive queues are hidden from both students and the staff dashboard, but remain editable under Queue Management.
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
assigneeis you and status isopenorin_progress) and Unassigned open requests in queues you’re working.
- Requests I’m Responsible For — split into My Assigned (requests where
Starting and stopping work
Clicking Start Working creates an activehelp_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 thehelp_request_status enum:
| Status | Meaning |
|---|---|
open | Submitted, not yet picked up. Visible in the queue. |
in_progress | A staff member has claimed it and is helping. |
resolved | The request is done. Removed from the queue. |
closed | Closed without resolution (e.g. moderation, abandoned). |
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 toopen). - 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 ahelp_request_resolution_status:
| Value | Label |
|---|---|
self_solved | I solved it myself |
staff_helped | Staff helped me |
peer_helped | A peer helped me |
no_time | No time to wait |
other | Other (with optional free-text notes) |
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.
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, aNotificationPermissionWarning 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.