Open admin.html and sign in with your email and password. The first screen you see is the Dashboard — a live summary of revenue, upcoming sessions and items needing attention.
ℹIf you can't sign in, check your role has been set to Admin or Superadmin by another admin. Only these roles have full access.
Admin Roles
Role
What they can do
Superadmin
Everything — manage users, system settings, all data
Admin
Full operational access — bookings, sessions, compliance, AI, reports
Operations Admin
Full CRUD on operational data; read-only on users and settings
Booking Agent
Create and manage bookings only — no financial or compliance data
Finance
Read-only across all data including revenue figures
Auditor
Read-only including the full audit trail
Sidebar Navigation
Tab
What it covers
Dashboard
Revenue stats, sessions needing attention, next 14 days
Courses
Create, edit and publish courses; upload resources; map to compliance types
Sessions
Schedule sessions, mark complete, record attendance, trigger certificates
Reports
Revenue, bookings, compliance and certificate reports
Renewal revenue pipeline, at-risk customers, probability scores
Risk & Audit
Risk register — assessments, near misses, COSHH, corrective actions
Assets
Equipment register — inspection and calibration tracking
Comp. Types
Configure compliance categories and reminder schedules
Workforce
Employees across all organisations with compliance gap analysis
Users
Manage user accounts and send portal invites
Settings
System-wide configuration
Management Intelligence
Executive dashboard — revenue, renewals, customer health, AI insights
Setting Up a New Organisation
1
Create the company record
Admin → CRM → Companies → import or add manually. The company name must match exactly what is used on booking forms.
2
Map courses to compliance types
Admin → Courses → edit each course → select the Compliance Type. Without this, no compliance records are created automatically.
3
Add employees
Admin → Workforce → + Add Employee, or they are created automatically when certificates are issued.
4
Set competency requirements
Admin → Compliance → Competency Requirements → + Add Requirement. Define which compliance types each job role needs.
5
Invite the company booker
Admin → Users → Send Portal Invite → enter their email and organisation name.
Management Intelligence Dashboard
Click Management Intelligence at the top of the sidebar (or open admin-intelligence.html directly). This is an executive-level dashboard showing:
KPI cards — current month revenue, booked pipeline, active orgs, delegates trained, certs issued
Renewal pipeline — forecast revenue by 30/60/90/180 day horizon split by confidence tier
Customer Health Index — all four scores (Revenue, Renewal, Relationship, Compliance) in one table with automatic flagging
Revenue Leakage — pipeline minus secured revenue with drill-down by org and compliance type
Customer Relationship Intelligence — engagement score with commercial alerts
Account Opportunity Value — training renewals + cert renewals + compliance gaps per org
Course performance, concentration risk, compliance opportunity, alerts and AI insights
💡If the dashboard shows no data on first use, run these four lines in the Supabase SQL Editor: select public.compute_customer_health(); · select public.compute_customer_relationship(); · select public.compute_account_opportunities(); · select public.compute_management_alerts();
Getting Started
Trainer Guide
Your portal for managing your schedule, viewing who's attending your sessions and accessing course resources.
Go to trainer-portal.html and sign in with your email and password. You'll see your upcoming sessions immediately.
ℹYour account must be linked to your trainer record by an admin before you can sign in. If you see a blank screen or error, contact your administrator.
Your Schedule
The Schedule tab shows all sessions assigned to you. Filter by:
Upcoming — all future sessions
This Week — sessions in the next 7 days
Next 30 Days — planning view
Past — completed sessions
Click any session card to expand it and see the full delegate list — names, email addresses, organisations and any notes.
Delegate Lists
Each expanded session shows all confirmed delegates. You can see:
Delegate name and email
Organisation / employer
Any additional named delegates added by the booker
Session location with Google Maps link
Online meeting link (if applicable)
Course Resources
The Resources tab shows pre-reading PDFs and materials for courses you are qualified to deliver. Resources are grouped by course. You cannot see resources for courses not in your qualifications list.
Setting Up Your Account (for admins)
1
Trainer signs up
The trainer creates a standard account at nurse-training-booking.html.
2
Set role to Trainer
Admin → Users → find the user → change role to Trainer.
3
Link the trainer record
Admin → Trainers → find the trainer card → Edit → scroll to Portal Login Account → enter email → Link Account. A green confirmation appears.
⚠Both steps 2 and 3 are required. Setting the role alone doesn't connect the account to the trainer's sessions and qualifications.
Getting Started
Company Booker Guide
Your organisation's portal for managing training bookings, compliance records, certificates and more.
You will receive an invitation email from GTS MedOH. Click the link, set your password, and you will be taken to the Organisation Hub at company-portal.html.
ℹYou can only see data for your own organisation. No other company's records are visible to you.
Go to my-bookings.html and sign in. If you don't have an account, click Sign Up and use the same email address that was used when your booking was made — your records will link automatically.
What You Can See
Section
What it shows
Stats
Total bookings, upcoming sessions, CPD points earned, total training spend
Upcoming bookings
Date, time, location (with Google Maps link), joining instructions, Teams link for online sessions
Past bookings
All previous training with attendance status
Certificates
Download links, expiry dates and verification links for all your certificates
Downloading Your Certificate
Certificates are issued automatically as soon as a session is marked complete, and emailed to you — you don't need to do anything. Find your certificate under your booking or in the Certificates section. Click Download — it opens as a PDF you can save or print.
💡Each certificate has a unique verification link. Share it with employers to let them verify your certificate is genuine without needing the PDF.
Submitting Course Feedback
After attending a session your certificate is emailed to you automatically. You'll also receive a feedback email — click the link, or use the ⭐ Submit Feedback button on your booking card. Feedback is optional and your certificate is never held back for it, but we'd genuinely love your input.
Rescheduling or Cancelling
Reschedule — click Reschedule Request on your booking. A message is sent to the GTS MedOH team who will contact you with available alternatives.
Cancel — click Cancel Booking on any upcoming confirmed booking. Cancellation policies apply — check your booking confirmation for details.
Operations
Courses
Creating, editing and publishing courses — including the critical compliance type mapping.
Enter name, description, duration, capacity and price.
2
Set the Compliance Type
Select the compliance type this course satisfies. This is what triggers automatic compliance records when a delegate completes the course. Without this, no compliance records are created.
3
Add course content
Fill in overview, learning outcomes, who it's for, prerequisites and what to bring. These appear on the public course detail page.
4
Upload resources
Click Resources on the course card to upload pre-reading PDFs. These appear in the trainer portal for trainers qualified to deliver this course.
5
Publish
Toggle the course to Published. It will appear on the public courses page and in the booking form.
Scheduling a Session
Admin → Sessions → + Add Session. Select the course, date, time, location and trainer. Sessions automatically appear in the booking form as available dates once created.
Marking a Session Complete
1
Find the session
Admin → Sessions → find the completed session (it will appear in Needs Attention on the Dashboard if overdue).
2
Mark delegates attended
Tick each delegate who attended. Unticked delegates are marked Did Not Attend — no certificate is issued to them.
3
Mark complete & issue certificates
Click Mark Complete & Issue Certificates. Each attended delegate's certificate is issued and emailed straight away, and they also receive a feedback request (optional).
💡The compliance pipeline fires when the certificate is issued. Make sure the course has a compliance type set before marking the session complete.
Operations
Certificates
How certificates are issued, verified, voided and reissued.
Certificates are issued automatically — no manual action needed — when:
An admin marks the session complete and ticks the delegate as Attended
Feedback is requested separately and is optional — the certificate is never held back waiting for it.
The certificate is emailed to the delegate as soon as the session is marked complete. It also becomes available in their delegate portal and in the organisation hub.
Certificate Contents
Unique certificate number (format: GTS-2026-00001)
Issue date and expiry date (based on course validity months)
Public verification URL
Downloading a Certificate
Certificates can be downloaded from:
Delegate portal — the delegate downloads their own
Organisation Hub → Bookings — bookers download for their delegates
Admin → Sessions — admins can download any certificate
Verifying a Certificate
Anyone can verify a certificate at certificate.html?token=XXXX. No login required. The page shows the full certificate details and confirms it is genuine.
Voiding a Certificate
Admin → Certificates → find the certificate → Void. You must enter a reason. Voided certificates remain in the system with a void marker and cannot be downloaded. A replacement can be issued by reissuing.
Reissuing a Certificate
After voiding, select Reissue and enter a reason. A new certificate with a new number is generated and linked to the original for audit trail purposes.
Expiry Tracking
Certificates have an expiry date based on validity_months set on the course. Reminder emails fire automatically at:
60 days before expiry
30 days before expiry
Compliance records track expiry separately with additional alerts at 180, 90, 30 and 7 days (configurable per compliance type).
Operations
Compliance
Configuring compliance types, managing records and using the auto-generation pipeline.
When set up correctly, compliance records are created with no manual entry:
Delegate attends course
→ Certificate issued
→ Compliance record created automatically
• Employee matched or created by email
• Expiry computed from compliance type validity
• Status: current / expiring_soon / expired
→ Expiry alerts set at 180 · 90 · 30 · 7 days
Three things must be true for this to work:
The course has a Compliance Type set (Admin → Courses → edit)
The booking has a company_id (automatic for known orgs)
The delegate has an email address on the booking
Compliance Types
Admin → Comp. Types. Each type is a card showing category, validity period and reminder schedule. The platform ships with 20 pre-configured types.
Evidence required — forces upload when recording manually
Competency Requirements
Define what each job role requires. Admin → Compliance → Competency Requirements → + Add Requirement. Set Organisation, Job Role, Compliance Type and whether it's mandatory.
Once set, the gap analysis automatically identifies which employees are missing required certificates.
Recording Compliance Manually
For external certificates or historical records: Admin → Compliance → All Compliance Records → + Add Record. Or use the CSV import button for bulk uploads.
Compliance Heatmap
Organisation Hub → Compliance → Heatmap. Shows a department × compliance type grid. Green ≥80%, amber 60–79%, red <60%. Hover any cell for the exact count.
⚠The heatmap and competency matrix only show data that exists. If employees have no department set, they group under "Unknown Department".
Operations
AI Reports
Asking questions in plain English — how the AI works and what it can answer.
The AI reads your question, selects the most appropriate approved report from a catalogue of whitelisted functions, runs that report against your data, and returns a structured response. It never generates SQL and never has direct database access.
ℹAll AI responses are advisory only. The AI does not make compliance decisions. Verify all recommendations with a qualified occupational health professional.
Where to Access the AI
Admin → AI Assistant tab — full operational AI for all approved reports
Organisation Hub → AI tab — scoped to the organisation only
Management Intelligence dashboard — executive AI with 7 quick prompts
Example Questions
Question
Report used
Show revenue by course this year
Revenue by Course
Which trainers delivered the most sessions last quarter?
Top Trainers
Show expiring certificates in the next 90 days
Expiring Certificates
Which departments have the biggest compliance gaps?
Compliance Gaps
Give me a management summary
Management Summary
Which customers are at risk of not renewing?
At-Risk Customers
Where are we losing renewal revenue?
Revenue Leakage Analysis
Which customers are disengaging?
Relationship Risk Analysis
What is our renewal outlook for the next 90 days?
Renewal Revenue Outlook
Saving Reports
After the AI runs a report, click Save Current. Name the report and set visibility:
Private — only you can see it
Organisation — all users in your org
Admin Global — all platform administrators
Saved reports appear below the chat and can be re-run instantly.
If the AI Can't Find a Report
Try rephrasing. The AI matches natural language to a fixed catalogue of reports. If your question doesn't map clearly, it will offer general advisory guidance. Use the quick prompts on the Management Intelligence dashboard for inspiration.
Operations
Renewals
The renewal intelligence system — pipeline forecasting, customer risk and revenue leakage.
Admin → Renewals. This operational dashboard shows:
Total Pipeline — forecast renewal revenue based on expiring certificates × course price
At Risk (unbooked) — pipeline value with no renewal booking confirmed
Already Booked — renewals already secured
Revenue Leakage — unbooked pipeline as a % of total, colour-coded green/amber/red
Revenue Timeline — week-by-week expiry chart
Expiring Categories by Value — which compliance types drive most revenue
How the Pipeline Is Calculated
For each expiring compliance record, the system finds the cheapest published course price for that compliance type. If no course is mapped, it uses the organisation's average booking value as a fallback.
The pipeline window is set by the time selector (30/60/90/180 days) at the top of the tab.
Renewal Probability Score
Each organisation receives a probability score (0–100) based on:
Historical rebook rate — did they rebook after previous expiries? (50% weight)
Booking recency — how recently did they last book? (30% weight)
Volume — number of expiring certificates (20% weight)
Risk tier
Meaning
Likely to Renew
≥70% historical rebook rate
Monitor
Average probability, no major red flags
Medium Risk
No booking in 180+ days
High Risk
High value, no booking in 365+ days
At-Risk Customers
The At-Risk table shows high-value organisations with expiring compliance and no recent booking. The action priority column shows:
🔴 Urgent — £1,000+ at risk, inactive 180+ days
🟠 High value — contact soon — £500+ pipeline
🟡 Monitor — renewal approaching
AI Recommended Actions
Click 🤖 AI Actions on the Renewals tab. The AI analyses the current pipeline and generates specific account manager recommendations — which organisations to contact, which compliance types to prioritise, and suggested next steps.
Revenue Leakage
Revenue Leakage = Total Pipeline − Already Secured. The traffic light thresholds are:
🟢 Green — less than 20% leakage (most pipeline converting)
🟡 Amber — 20–40% leakage (action recommended)
🔴 Red — more than 40% leakage (significant revenue at risk)
For a full drill-down by organisation and compliance type, go to the Management Intelligence dashboard → Revenue Leakage section.
Downloads
All PDFs
Download any guide as a PDF for offline reading, printing or sharing with your team.
ℹPDFs are generated from audience-specific source guides in the docs/ folder. To regenerate after making changes, run node generate-pdfs.js from the project folder.
Videos
2-Minute Walkthroughs
Short screen recordings of the most common workflows. Videos coming soon.
Coming Soon
Making Your First Booking
Browse courses, select a date and book a delegate in under 2 minutes.
⏱ ~2 min
Coming Soon
Marking a Session Complete
Record attendance, trigger certificates and send review emails.
⏱ ~2 min
Coming Soon
Setting Up Compliance for a New Org
Company record → courses → employees → competency requirements.
⏱ ~2 min
Coming Soon
Using the AI Assistant
Ask questions in plain English and save reports for future use.
⏱ ~2 min
Coming Soon
Reading the Renewal Pipeline
Pipeline tabs, probability scores and at-risk customer actions.
⏱ ~2 min
Coming Soon
Management Intelligence Dashboard
KPIs, customer health index, leakage and relationship scores.
⏱ ~2 min
ℹVideos will be added as screen recordings are produced. Contact support@gtsmedoh.com to request a specific walkthrough.
Videos
Common Tasks
Step-by-step instructions for the tasks you do most often.
Booking form → select course → select date → enter delegate details → pay by card or PO → confirm.
Mark a session as complete and issue certificates
Admin → Sessions → find session → click Manage → tick attended delegates → click Mark Complete & Issue Certificates. Certificates are issued and emailed straight away; a feedback request is also sent (optional).
Download a certificate
Admin → Sessions → session → delegate row → Download Certificate. Or via Delegate Portal → Certificates.
Add a new compliance type
Admin → Comp. Types → + Add Type → fill in name, category, validity months and reminder schedule → Save.
Record an external certificate manually
Admin → Compliance → All Compliance Records → + Add Record → select organisation, employee, compliance type, dates and provider.
Admin → Compliance → Competency Requirements → + Add Requirement → select organisation, job role and compliance type → mark mandatory → Save.
Run a gap analysis for an employee
Admin → Workforce → find employee card → click Gap Analysis button. The system shows every required compliance type they are missing or have lapsed.
Add an asset to the register
Admin → Assets → + Add Asset → fill in name, category, organisation, serial number, location, next inspection date and calibration due date → Save.
Log a near miss or risk assessment
Admin → Risk & Audit → + Add Item → select type (Near Miss, Risk Assessment etc.) → fill in title, description, risk level, owner and due date → Save. A reference number is generated automatically.
Send a portal invitation to a company booker
Admin → Users → Send Portal Invite → enter their email address and organisation name → Send. They receive a set-password email and can access the Organisation Hub immediately.
Link a trainer to their portal account
Admin → Trainers → find trainer → Edit → scroll to Portal Login Account → enter their email → Link Account → save.
Void and reissue a certificate
Admin → Certificates → find certificate → Void (enter reason) → Reissue (enter reason). A new certificate with a new number is linked to the original for audit trail.
Export compliance records to CSV
Admin → Compliance → All Compliance Records → ⬇ Export. The CSV includes organisation, employee, compliance type, category, status, dates, certificate number and provider.
Refresh the Management Intelligence dashboard
Click the ↻ Refresh button at the top of admin-intelligence.html. To force a full cache refresh, run the four compute functions in the Supabase SQL Editor.
FAQs
Frequently Asked Questions
Answers to the most common questions from admins, bookers and delegates.
Check three things: (1) Does the course have a Compliance Type set? (Admin → Courses → edit). (2) Does the booking have a company_id? If not, run select public.migrate_booking_company_ids(); in Supabase. (3) Was a certificate actually issued? Certificates are issued when the session is marked complete with the delegate ticked as attended.
Go to Admin → Compliance → Competency Requirements and add at least one requirement for the job role in question. The matrix only shows data for configured job roles.
On first use the caches are empty until the overnight crons run. Run these manually in the Supabase SQL Editor: select public.compute_customer_health();select public.compute_customer_relationship();select public.compute_account_opportunities();select public.compute_management_alerts();
Try rephrasing. The AI maps natural language to a fixed catalogue of approved reports. If your question doesn't match any report, the AI offers general advisory guidance instead. Use the quick-prompt buttons on the Management Intelligence dashboard for inspiration.
Two common causes: (1) The session hasn't been marked complete yet, or the delegate wasn't ticked as attended — certificates are issued when an admin marks the session complete. (2) The delegate signed up with a different email address to the one used on the booking — they should sign out and create a new account with the correct email, or ask an admin to update the booking email.
The score equals current records divided by total tracked records. If employees have competency requirements set but no records yet, those count against the score. Records that haven't been entered yet are not included in the calculation.
Either all expiring certificates already have confirmed renewal bookings (good news), or there are no compliance records with expiry dates in the current pipeline window. Adjust the renewal window to 90 or 180 days to see a larger view.
This is the key commercial signal. The organisation's compliance is in good shape but they are not actively engaging with GTS MedOH — certificates may be sourced from other providers. Proactive outreach is recommended before renewals approach.
Those categories are seeded in the database but are inactive, pending the Prospect Sub module. They will activate automatically when that module is deployed — no dashboard changes will be needed.
Yes, temporarily. The platform is using Resend's sandbox sender while DNS setup is pending. Once gtsmedoh.com DNS is moved to Cloudflare and Resend is verified, emails will send from bookings@gtsmedoh.com. Contact your administrator for the DNS migration steps.
Ask the new user to create an account at nurse-training-booking.html. Then Admin → Users → find their name → change role to Admin. They will have full access on next sign-in. Only Superadmins can create other Superadmins.
Yes. Alert thresholds are stored in the mgmt_alert_rules table in Supabase. Update the threshold_value column for any rule to change when alerts fire. The daily cron picks up the new values automatically.