Contour Contour Tutor Portal docs Open the portal

For admins

Admin console

Admin in the header, for owners and admins. Eight tabs: Directory is the one you'll use weekly, Health is the one to check when someone says the portal is broken (and the one that holds the manual jobs and the system switches), and Trace is where a specific mark's history lives.

Roles

One role per person. Setting a role replaces whatever they had, so there is no way to hold two.

RoleAccessGranted by
OwnerEverything, including granting access.An owner
AdminAdmin, Students, Campus, Reporting for everyone, the roster, and marking.An owner
CampusThe Campus page for their campuses. Cannot submit tutor attendance and does not see Reporting.An owner or admin
TutorMarking classes, their own figures in Reporting, Announcements and Me. The default, and stored as no role at all.An owner or admin

Rules the app enforces and won't be talked out of:

Team Leader and Head are not roles

They come from the org chart. It is what gives someone Reporting for their team, the Leaders' board, posting announcements, running meetings and their team's sit-ins. Don't make someone an admin so they can see their team. The org chart does not open the roster (that needs a grant), Students or Admin.

Directory

Every account that can sign in: Who can sign in, what they may see, and which campuses they are scoped to. Access is by directory entry, so a new starter with a working Contour Google account still can't get in until they are here. Search by name, email, role or campus, filter by status, 20 to a page.

Add userFull name, Contour email, status, role and notes. Admins are only offered Campus and Tutor: Only an owner can grant Admin or Owner. Email invite opens a pre-written message.
Import from registryAdds a directory entry, able to sign in, for every tutor named on any class session the portal holds: both CRMs, past and present, whatever the button's tooltip says. It never changes an existing entry. Then check their names and campus scope, and deactivate anyone who shouldn't be there.
Campus scopeOnly for the Campus role. Tick the campuses they review.
DeactivatingSet the status to Inactive. They keep their row and their history and can't sign in. Use this rather than deleting, so the audit trail still resolves their name.
Leaving every campus unticked means every campus

It is a valid setting, not an incomplete one, and the app will save it. An unscoped Campus user reviews all campuses.

Give a role change a few seconds

A change reaches the person on their next request, normally within about 15 seconds. If a row still looks wrong after that, reload rather than saving again.

Assignments

Pinning a class to a tutor's Assigned to you list, independent of the Monday board. Ordinary covering doesn't need this: any tutor can search for a class and mark it. Use it when you want a cover in place up front, such as a long-term replacement.

Assign classes takes the tutor, a Week (1 to 50, or * for every week), a Role (primary or secondary) and the classes; archived classes aren't offered. A primary assignment also fills in the class's primary tutor where the roster has none. Manage changes or removes them.

An assignment survives a registry refresh, which a tutor typed onto the class record by hand would not. Like the rest of Assigned to you it counts for the current teaching week only, so a week-specific assignment shows up in that week.

Class registry

Read-only: The teaching week as the CRM has it, refreshed nightly. Every running HubSpot class with its subject, campus, day, time, region and both tutors, searchable by region and campus. Use it to confirm a class exists or check its exact code. Monday classes come from the Monday Class Schedule board, and a wrong tutor there is fixed on the board, not in the portal.

Health

What to check first when someone reports a problem.

PendingApproved marks waiting to be written to the CRM.
Validation failuresWrite attempts that failed in the last 24 hours.
Dead lettersMarks whose write has failed and stopped retrying on its own. See Sync queues.
Running classesHow many distinct class codes the portal has sessions for, across every CRM and all history. A size check, not a list of what is running this week.
Homework waitingHomework marks not yet written. HubSpot homework has no writer and is counted separately. Only shown when there are some.
Overdue reconciliationClasses where one side has been in for more than 24 hours and the other hasn't, almost always a roll waiting on its campus count.

Under the tiles: when the last sync ran, whether HubSpot and Monday writes are on, the time zone, whether old audit records are being archived, and the state of the class-issue sheet and tickets.

Run now

Manual runs. The nightly job and the ten-minute sweep cover the rest. Where you can see both CRMs, the cards with a Monday / HubSpot switch run against whichever you pick.

CardDoes
Sync attendanceWrites approved marks to the CRM now: a handful straight away, the rest handed to the queue. Reports how many were claimed, written, failed and queued.
Refresh class registryReloads the current teaching week's classes, sessions and rolls from the CRM. HubSpot runs as a job and shows its progress; Monday runs straight away.
Refresh class rollsRe-reads student lists for classes whose roll is missing or out of date. Monday only; it can pause for Monday's rate limit.
Sync workshopsRuns the HubSpot attendance sync (the same as Sync attendance set to HubSpot), which includes approved workshop attendance. Disabled while Workshops is off.
Run operations checkChecks the sync backlog and heartbeat and runs the reconciliation overdue sweep.
Validate production setupRuns every configuration check (database, HubSpot token, mail, Slack, schema, owner, registry, class-roll and week-mark coverage, archive, sync backlog) and shows evidence for each. Run it after any credential change. Production only.
Sync Slack profilesMatches people to their Slack accounts and caches their photos.
Send interim / final reconciliationEmails the current pay fortnight's report. See Academic Ops.
Download a reconciliationAny of the last 12 fortnights as a spreadsheet, without emailing it or marking it sent.

System controls

Under Manual operations. Switches take effect immediately and every change is audited. The preview and production each keep their own.

ControlWhat it sets
Your attendance systemWhich CRM owners and admins see: Monday, HubSpot or Both. Affects admins only. Default Both.
Everyone elseWhich CRM tutors and Campus Experience see. Default Monday. It asks first, and refuses a CRM with no sessions in it, because pointing everyone at an empty CRM would empty the portal.
Live HubSpot writesWhether approved attendance is written to HubSpot. On by default whenever HubSpot is connected; turning it off takes effect straight away, and turning it back on means typing ENABLE HUBSPOT WRITES.
Live Monday writesWhether approved attendance is written to the week column on the Monday subject boards. Off unless switched on; typing ENABLE MONDAY WRITES. Reads Setup incomplete without a Monday connection.
WorkshopsShows workshop rolls and the Workshops tab.
Homework markingShows the homework controls on class rolls.
Meet matchingOffers live Google Meet participant matching on rolls with a Meet link.
Booklet typesThe booklet codes a tutor picks from when reporting a printing issue, comma separated. Empty restores the built-in list.

At the bottom, Needs follow-up lists up to 20 overdue classes the reconciliation sweep is currently chasing. The Overdue reconciliation tile has the full count.

Sync queues

Everything waiting to reach the CRM, and everything that failed on the way. The summary says how many items need attention, how many are queued or syncing and will clear on their own, and how many synced in the last 24 hours (Show synced lists them).

ActionUse it when
RetryThe write failed for a reason that has since been fixed, such as an expired token.
Release & retryAn item has been stuck in syncing for more than 15 minutes.
CancelThe write should not happen at all. Asks why and records it.

Tick rows to Retry selected or Cancel selected, up to 200 at a time. Each row links to its sync run and to Trace. Every action is audited with your name against it.

Trace

Follow one submission end to end, from the roll to the CRM write. Search a student's name, a Contour Student ID, a class code, a tutor's email, a session or any ID, and everything that happened to it appears in order, newest first: what was submitted, every write attempt, the audit trail and any health events, with a verdict at the top. This is the tab for "did this student's mark actually reach the CRM".

Filter by All, the last 7, 14 or 30 days, a From and To date or a subject. It looks back 120 days unless you tick Search all history (slower). It fetches nothing until you search; Recent sync runs underneath opens a run on its own.

Leaderboard

Marking scores across the whole tutor body, all time. Every tutor's score, on-time and accurate counts, marked classes and on-time rate, using the same rule as the weekly marking leaderboard. Rolls imported from the old operations workbook are left out.

Assistant

What people asked the in-app assistant, and where it had no answer. Every question, what it answered and which parts of this documentation it used, with counts of questions, gaps, unmatched questions and people asking. A question that matched no section, or that got no answer, is a gap already labelled as one, and gaps sort to the top. The panel of questions asked more than once, and not answered is the strongest signal on the tab: fix those first.

It is there to improve the documentation

Admin only, and it shows who asked. Questions are deleted after 90 days. Read it for what the guides don't explain, and fix the guide rather than answering the same question again.

When a class is stuck

  1. Read the stateSubmitted is waiting on a campus count, not on a person's approval. Check whether Campus has entered one.
  2. Check for a disagreementA class that came back is waiting on the tutor or on Campus, not on you. If they can't settle it, Resolve as admin on its Campus row releases it: look at both sides, decide which is right, and give the reason.
  3. Check the roll existsA class with no students can't be marked, and the fix is on the Monday board or in the CRM. Refresh class rolls re-reads missing rolls.
  4. Check the sync queueAn Approved class that never became Marked is a queue problem, not a marking problem.
  5. Trace itIf the queue looks clear and the CRM still has nothing, Trace shows what was actually sent.

Things only an admin can do

Built and maintained by YattaRewritten for the Tutor Portal · 25 Sep 2026 · v3.0 · Written for the Tutor Portal at tutor.contour.com.au.