commvita
Connected care platform
Staff Portal

The Staff Portal — the whole working life, self-service

One place for a member of staff to run their own employment admin and their governance obligations. Leave, job plan, training and CPD, declarations of interest, signatures, approvals, on-call and speaking up. No forms to chase, and every action lands on a record with an audit behind it. It’s role-aware: a clinician sees a job plan, a board member sees board papers, a silver on-call sees the rota. Reached at /staff-portal.

First to market
Mandatory training completed on a home visit, with no signal. The learning app is offline first: courses download, the assessment runs, and completions sync when the network returns, into the same record the portal shows. No competing staff system we assessed does this.From commvita’s own assessment of this module against the systems it competes with. Our assessment, not an independent one.
Live vs demonstrated: Live — real, API-backed platform logic (wired end-to-end today) Demonstrated — representative control surface with seeded data / illustrative UI mock-up
© 2026 Commvita Digital Health Solutions Ltd. All rights reserved.

1 Thirteen tabs, one person

Most staff systems are a stack of separate logins: one for leave, one for the rota, one for training, one for declarations, one for board papers. Each holds a slice of the same person. The Staff Portal puts the slices in one place, on one identity, so the member of staff does the admin once and the organisation gets the record.

My time

Leave · requests · job plan · team calendar · policy

A live balance for annual leave, time in lieu, study days and sickness. Requests go to the line manager and come back approved or not, against the balance. The job plan shows contracted sessions by type and a weekly timetable.

My learning

Statutory & mandatory · CPD · accreditation · appraisal

Mandatory training rated current, due soon, overdue or not started. Professional registrations with expiry. A CPD log that adds up to the hours an appraisal needs. The same data commvita Learn governs, so there’s one version of it.

My governance and my voice

Interests · signatures · approvals · board · on-call · speak up

Declare an interest into the governed register. Sign what needs signing. Approve what you’re authorised to approve. See your board papers and actions. See when you’re on call. Raise a concern with the Freedom to Speak Up Guardian.

Why it’s one portal and not thirteen links. Every tab writes to the same person record, under the same role and organisation scope the rest of the platform uses. That’s what lets a rota show the training that’s about to lapse, a job plan show the CPD that evidences it, and a signature show up in the board pack it was made for. Split them into separate systems and every one of those joins becomes an interface somebody has to build and pay for.

2 Leave against a live balance

The balance is computed from the record, not typed into it. Entitlement, used, pending and remaining for annual leave; accrued and used for time in lieu; study days; sickness year to date with the Bradford trigger shown plainly.

Staff Portal, My Leave Balance tab for Dr S. Ahmed, GP, 2026 leave year. Five cards: annual leave with entitlement 27 days, used 12, pending 3, remaining 12; time in lieu with 14.5 hours accrued, 6 used, 8.5 available; learning and CPD days with 5 entitlement, 2 used, 3 remaining; sickness year to date with 2 sick days, 1 occasion and Bradford trigger within threshold; other leave with 0 compassionate days used. A quick request panel offers annual leave, time in lieu, learning day and sick leave.
My Leave Balance · GP / ClinicianCaptured from the running system, build B-569 · seeded data
1

Request, then see it decided

A request carries the type, the dates, the days it costs and a reason if one is needed. It shows as pending against the balance until the line manager decides, and the decision and any note come back on the same row. Nothing is re-keyed.

My RequestsPOST /leave-requests
2

Check the team before you book

The Team Absence Calendar shows approved and pending leave across the team, so cover is visible before a request goes in rather than a surprise after it’s approved.

Team Absence CalendarGET /leave-requests
3

The policy is on the same page

Each leave type carries its own rule: two weeks’ notice where possible for annual leave, self-certification up to seven days for sickness, line-manager approval for a study day, fifteen weeks’ notice for paternity. The rule is next to the request, not in a policy document nobody opens.

Leave Policy

3 The job plan, and the CPD that evidences it

For staff with a job plan, the portal shows contracted programmed activities split into direct clinical care, supporting professional activities and additional responsibilities, with the weekly timetable underneath. A plan is drafted, submitted and agreed, and the agreed version is the one everything else reads.

Staff Portal, My Job Plan tab. Five tiles: contracted PAs 8, DCC PAs 6 (75 percent), SPA PAs 1.5 (19 percent), PTA PAs 0.5, status agreed. A weekly timetable Monday to Friday lists sessions such as DCC morning surgery, SPA clinical governance, DCC frailty clinic and PTA PCN lead, with a legend for DCC, SPA, PTA, APA and on-call. A note reads: your SPA sessions should be evidenced by CPD records, you have 31.5 CPD hours this year.
My Job Plan · sessions by typeCaptured from the running system, build B-569 · seeded data

The line at the bottom of that screen is the bit that matters. Supporting professional activity has to be evidenced, and the evidence is the CPD log two tabs away. The portal reads the CPD hours for the year and puts them next to the SPA sessions, so the conversation at appraisal starts from the record instead of from memory.

4 Training, registration and CPD in one passport

Statutory and mandatory training is rated by status, not listed by course. Professional registrations sit beside it with their expiry. CPD is logged by activity and summed for the year. Appraisal shows who and when. All of it’s the same data commvita Learn holds, and it can be downloaded as a training passport.

Staff Portal, My Training and CPD tab. A banner offers commvita Learn Mobile for completing training offline during home visits. Status counts show 6 current, 2 due soon, 0 overdue, 1 not started. A mandatory training table lists information governance, safeguarding adults level 2, safeguarding children level 3, basic life support due soon, moving and handling, infection prevention and control, fire safety due soon, equality diversity and human rights, and Oliver McGowan tier 2 not started, each with an expiry date and status. Professional accreditations show GMC registration 7654321 expiring 2027-04-30 and RCGP membership. A CPD summary reads 31.5 hours this year across 14 activities, followed by a log of dated activities with type, title and hours.
My Training & CPD · mandatory training, accreditation, CPD logCaptured from the running system, build B-569 · seeded data
1

Due soon is a date, not a colour

Each requirement carries its expiry. The portal derives the status from the date, so a course that’s about to lapse shows as due soon weeks before it becomes a compliance problem, and the person can book the refresher from the same screen.

GET /training/itemscommvita Learn
2

Registration is a record, not a tick box

GMC, NMC, HCPC or the local regulator: the registration number and expiry are held against the person and surface here, so a lapsed registration is visible to the individual and to the organisation at the same moment.

GET /training/accreditations
3

Learning that works offline

Community staff don’t always have a signal. The mobile learning app lets them complete training during home visits and syncs the result when they’re back online, into the same record the portal shows.

commvita Learn — Mobile

5 Declare, sign, approve, attend

Four governance obligations that usually live in four places, each with its own login and its own excuse for not being done. Here they’re four tabs.

Register of Interests

Declare · review · conflict view

A declaration goes into the governed register lifecycle: recorded, reviewed against a service level, and visible to a committee before it decides, not after. Nil returns count. The full register is one link away for those who administer it.

POST /interests/register-of-interests

My Signatures

commvita Sign · queue and history

Board packs, policies, letters and certificates that need a signature arrive in one queue. Signing is a one-time-passcode ceremony bound to the document hash, and the signed record carries who, when and what. The history is the audit.

/esignPOST /esign/requests/{id}/sign

My Approvals

Policy to Process · delegated authority

Requests that need this person’s approval, and this person’s own requests, under the organisation’s scheme of delegation. An approval outside the delegated limit is blocked, not warned. The engine that decides is the same one the finance explainer describes.

GET /p2p/my-approvals/policy-to-process
My Board Meetings. A board or committee member sees their upcoming meetings, the published packs, their outstanding actions and their board governance training from the portal. The meetings, packs and actions come from Board Management, which is live; the portal tab that summarises them is a demonstrated surface today and reads seeded content. That distinction is in the status table below not hidden.

6 Speak up, safely

A Freedom to Speak Up concern can be raised anonymously, confidentially or in the person’s own name, in one of six categories, from the same place they manage everything else. It routes to the Guardian’s own module. Nobody else in the line sees it.

Staff Portal, Speak Up tab, headed Freedom to Speak Up. Three ways to raise a concern: anonymous, your identity is not recorded; confidential, your identity is known only to the Guardian; named, your name will be visible to those investigating. Six categories: patient safety, working conditions, bullying and harassment, fraud and financial, policy breach, other. A description box with a ten character minimum, an optional context and evidence box, and a Submit Concern Securely button, with a link to the dedicated FTSU Guardian module.
Speak Up · anonymous, confidential or namedCaptured from the running system, build B-569 · seeded data

The choice of anonymity is made before anything is typed, and it’s enforced by what is stored, not by a promise. An anonymous concern carries no identity. A confidential one carries it for the Guardian alone. That matters more than the form does: the reason staff don’t speak up is rarely the absence of a form, it’s doubt about where the form goes.

7 On-call, and how the organisation reaches you

Two small tabs that stop two common failures: not knowing you’re on call, and being contacted on a channel you don’t read.

Staff Portal, My On-Call and EPRR tab. Shows the next shift: Silver tactical on-call from Saturday 12 September 18:00 to Sunday 13 September 08:00, contacted via Teams, with no active incident roles.
My On-Call & EPRR · next shiftCaptured from the running system, build B-569 · seeded data

My On-Call & EPRR

Gold · silver · bronze

The person’s next on-call shift, the channel they will be reached on, and any live incident role they hold. If they’re on call now, the duty log is writable from here. The rota itself is the Emergency Preparedness module’s.

GET /eprr/my-oncall

My Communications

Preferred channel · quiet hours

Which channel the organisation should use, whether out-of-hours contact is urgent-only, and quiet hours. The CRM honours it. Beneath it, a timeline of what the organisation has sent this person and on which channel, so a missed message can be checked instead of argued about.

/crm/me/preferences/crm/me/timeline

Welsh, and the next language

Jurisdiction-aware

The portal is labelled for the jurisdiction it runs in and switches language where the jurisdiction requires it. In Wales that’s a Cymraeg toggle in the header. It’s configuration, not a separate build.

Jurisdiction Profile

Where it lives in commvita

CapabilityRouteModel / APIStatus
Leave balance and requests/staff-portalAPI /rota/leave-balance/my · /leave-requests● Live
Team Absence Calendar/staff-portalAPI /leave-requests● Live
Job plan and sessions/staff-portalAPI /job-plans · submit for approval● Live
Training, accreditation, CPD, appraisal/staff-portalAPI /training · /learn● Live
Register of Interests/staff-portal · /register-of-interestsAPI /interests · review queue · audit● Live
My Signatures (commvita Sign)/esignAPI /esign/requests · OTP ceremony · certificate● Live
My Approvals (Policy to Process)/policy-to-processAPI /p2p/my-approvals · /p2p/approvable● Live
My Board Meetings (portal tab)/staff-portalReads seeded content; Board Management itself is API-backed at /board/☉ Demonstrated
Speak Up (FTSU)/staff-portalAPI POST /ftsu/staff/raise → Guardian module /ftsu● Live
My On-Call & EPRR/staff-portalAPI /eprr/my-oncall · duty log● Live
My Communications/staff-portalAPI /crm/me/preferences · /crm/me/timeline● Live
Offline learning synccommvita Learn — MobileCompletes offline, syncs to /learn● Live
It isn’t a rostering engine. It isn’t a rostering engine and it isn’t a payroll. The balance it shows is the platform’s own leave record, and it will read an external roster or HR system where one is the source of truth. It isn’t a clinical tool and carries no medical-device claim. Every action it can start, a leave request, a declaration, a concern, a signature, lands with a named person who decides.
© 2026 Commvita Digital Health Solutions Ltd. All rights reserved. NHS Statutory & Mandatory training frameworkGMC · NMC · HCPC registrationFreedom to Speak Up (National Guardian’s Office) UK eIDAS advanced e-signatureScheme of Reservation & DelegationEPRR Framework Non-SaMD