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.
| Role | Access | Granted by |
|---|---|---|
| Owner | Everything, including granting access. | An owner |
| Admin | Admin, Students, Campus, Reporting for everyone, the roster, and marking. | An owner |
| Campus | The Campus page for their campuses. Cannot submit tutor attendance and does not see Reporting. | An owner or admin |
| Tutor | Marking 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:
- An admin can't change another admin's or an owner's access. Only an owner can; an admin sees Owner only on those rows.
- The last owner can't be demoted. Grant Owner to someone else first.
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.
It is a valid setting, not an incomplete one, and the app will save it. An unscoped Campus user reviews all campuses.
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.
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.
| Card | Does |
|---|---|
| Sync attendance | Writes 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 registry | Reloads 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 rolls | Re-reads student lists for classes whose roll is missing or out of date. Monday only; it can pause for Monday's rate limit. |
| Sync workshops | Runs the HubSpot attendance sync (the same as Sync attendance set to HubSpot), which includes approved workshop attendance. Disabled while Workshops is off. |
| Run operations check | Checks the sync backlog and heartbeat and runs the reconciliation overdue sweep. |
| Validate production setup | Runs 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 profiles | Matches people to their Slack accounts and caches their photos. |
| Send interim / final reconciliation | Emails the current pay fortnight's report. See Academic Ops. |
| Download a reconciliation | Any 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.
| Control | What it sets |
|---|---|
| Your attendance system | Which CRM owners and admins see: Monday, HubSpot or Both. Affects admins only. Default Both. |
| Everyone else | Which 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 writes | Whether 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 writes | Whether 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. |
| Workshops | Shows workshop rolls and the Workshops tab. |
| Homework marking | Shows the homework controls on class rolls. |
| Meet matching | Offers live Google Meet participant matching on rolls with a Meet link. |
| Booklet types | The 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).
| Action | Use it when |
|---|---|
| Retry | The write failed for a reason that has since been fixed, such as an expired token. |
| Release & retry | An item has been stuck in syncing for more than 15 minutes. |
| Cancel | The 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.
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
- Read the stateSubmitted is waiting on a campus count, not on a person's approval. Check whether Campus has entered one.
- 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.
- 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.
- Check the sync queueAn Approved class that never became Marked is a queue problem, not a marking problem.
- Trace itIf the queue looks clear and the CRM still has nothing, Trace shows what was actually sent.
Things only an admin can do
- Open Admin, Students, the whole of Reporting, and the roster without a grant.
- Resolve a class whose two sides can't agree, with a recorded reason.
- Supply a campus count for a class you marked yourself. It is recorded under its own audit action and raises a warning, so those classes can be found later. Use it only when there is genuinely nobody else.
- See both CRMs, depending on Your attendance system.
- Set the site banner, record class notes on a roll, and export Reporting and Students.
Built and maintained by YattaRewritten for the Tutor Portal · 25 Sep 2026 · v3.0 · Written for the Tutor Portal at tutor.contour.com.au.