Roles and permissions
Trialflare uses role-based access control (RBAC) so you can decide exactly what each staff member can see and do. There is no single “role” enum baked into the product for every customer; instead, named roles (optional) bundle permissions, and you can also assign individual permissions at the right scope (whole trial, a site, or a participant group).
This page lists the permission keys the Trialflare web app uses when you configure collaborators, sites, and groups. The descriptions match the in-product permission chooser.
How it fits together
- Team — Users belong to your organisation’s team. Only team members can be added as trial collaborators. Team-level permissions (
users.*,trials.*,team.*) control invitations, trial creation, and account administration separately from trial scope. - Trial — Most capabilities are controlled with
trial.*permissions on that trial. - Sites — For multi-site studies,
site.*permissions can limit access to one site’s participants, files, and packs. - Groups — Study arms or cohorts can use
group.*permissions so someone only sees (or edits) participants in that group.
Roles are reusable bundles of these permissions (configured under trial personnel / roles). Assigning a role is a shortcut; the effective access is still expressed as a set of permission keys.
Baseline trial access
When someone is first added as a collaborator, the system may grant a minimal baseline such as trial.access so they can open the trial at all. That key is treated as a system-style gate and is not listed in the chooser alongside the fine-grained permissions below—but other permissions still govern what they can actually do once inside.
PII and sensitivity
Several descriptions call out PII (personally identifiable information) or restricted study fields. Trialflare separates “ordinary” study data from more sensitive views so you can comply with least-privilege and delegation norms (e.g. monitors who must not see direct identifiers).
Trial permissions (trial.*)
These apply to the trial as a whole (unless combined with site- or group-scoped grants).
| Permission | Description |
|---|---|
trial.admin |
Trial administrator (full access) (no-PII) |
trial.read |
Trial-wide admin view access (no-PII) |
trial.write |
Trial-wide admin write access |
trial.readParticipants |
List all participants in the trial |
trial.registerParticipants |
Register new participants into the trial |
trial.writeParticipants |
Edit participant details (name, email, phone, ID) |
trial.allocateParticipants |
Mark participants as allocated or unallocated |
trial.archiveParticipants |
Archive and unarchive participants |
trial.withdrawParticipants |
Mark participants as withdrawn |
trial.deleteParticipants |
Permanently delete participants and their data |
trial.tagParticipants |
Add and remove participants from groups (tags) |
trial.rescheduleParticipants |
Manually reschedule participant stages and tasks on the timeline |
trial.readParticipantPersonalInformation |
View participant personal profile and contact details (PII) |
trial.readParticipantConsent |
View a participant’s consent information (PII) |
trial.readTrialConsents |
List all trial consents (PII) |
trial.readConsentSettings |
View-only access to consent settings (availability and informed consent forms) |
trial.readTrialSettings |
View-only access to trial settings and the About tab |
trial.readDataTypes |
View-only access to the Data Types configuration |
trial.readStages |
View-only access to the Stages configuration |
trial.readParticipantNotes |
View participant notes and communication logs |
trial.writeParticipantNotes |
Add notes to participants |
trial.readParticipantStudyData |
View participant study data (excluding restricted and PII fields) |
trial.readParticipantStudyDataRestricted |
View restricted participant study data fields (restricted) |
trial.readParticipantStudyDataPii |
View PII participant study data fields (PII) |
trial.writeParticipantStudyData |
Create and update participant study data |
trial.exportData |
Export / bulk-download trial data from the Results tab |
trial.readFiles |
View all files in the eTMF |
trial.readApprovedFiles |
View approved files only in the eTMF |
trial.readFileVersions |
View file versions in the eTMF |
trial.writeFiles |
Create new files and versions in the eTMF |
trial.deleteFiles |
Delete all files and versions in the eTMF |
trial.requestFileApproval |
Request eTMF file approval |
trial.approveFiles |
Approve all eTMF files |
trial.readUsers |
View trial users |
trial.support |
Send and receive support messages |
trial.readTasks |
List all trial tasks |
trial.writeTasks |
Create and manage trial tasks |
trial.readQueries |
List all trial queries |
trial.writeQueries |
Raise trial queries |
trial.readAutomaticQueries |
View automatic trial queries |
trial.writeAutomaticQueries |
Create automatic trial queries |
trial.readSites |
View trial sites |
trial.writeSites |
Create and update trial sites |
trial.listPacks |
List and view packs |
trial.writePacks |
Create and update packs |
trial.deletePacks |
Delete packs |
trial.assignPacks |
List and assign available packs to participants |
trial.createParticipantMeetings |
Create online video call meetings with participants |
trial.readParticipantMeetings |
View online video call meetings with participants |
trial.joinParticipantMeetings |
Join participant video call meetings |
trial.deleteParticipantMeetings |
Delete online video call meetings with participants |
trial.manageWallet |
Manage (view and top-up) the trial wallet |
trial.useAssistant |
Use the trial assistant |
trial.readInsights |
View trial and participant insights |
trial.readSiteMessages |
Read all site message boards in the trial |
trial.writeSiteMessages |
Post to any site message board and broadcast to all sites |
Configuration: view-only, write, and admin
Trial configuration — stages, stage groups, and data types — is editable with trial.write (admin-level write access). Only top-level governance actions require trial.admin: locking/unlocking the trial or database, editing trial settings, managing consent settings, and deleting the trial.
If someone should see configuration without changing it, grant the matching view-only key instead: trial.readStages, trial.readDataTypes, trial.readTrialSettings, or trial.readConsentSettings. Each is implied by trial.read, so a trial-wide viewer already has them.
Study data: viewing vs. exporting
Study data has three layers, and viewing is separate from exporting:
trial.readParticipantStudyData— view study data (excluding restricted and PII fields). This governs both a participant's Responses tab and the trial-wide Results tab (Dashboards and Explore). Addtrial.readParticipantStudyDataRestrictedandtrial.readParticipantStudyDataPiifor those field layers.trial.exportData— the additional, more sensitive bulk export/download action (the Export tab in Results, and raw data exports). It falls through totrial.read, so existing trial-wide readers keep export; grant it explicitly to give export without fulltrial.read.
Because they're separate, trial.readParticipantStudyData on its own means "can view Results but cannot export"; add trial.exportData for a role that should also download. Export still requires the relevant study-data read permission for the data being exported.
Site-scoped staff (site.readParticipants + site.write) can view and edit the study data of participants in their site without any of these trial-wide keys — that access follows the participant, not the trial-wide Results/export surface.
Messaging: site boards vs. participant support
Two separate features both involve “messages”, and they use different permissions:
- Site message boards (staff-to-staff, per site) —
trial.readSiteMessages/trial.writeSiteMessages(trial-wide, all boards) andsite.readSiteMessages/site.writeSiteMessages(a single site’s board). - Participant support messaging (staff-to-participant) —
trial.support.
Site permissions (site.*)
Use these when someone should only operate within one site (participants, files, packs scoped to that site).
| Permission | Description |
|---|---|
site.access |
Be a site member (recommended for any site roles) |
site.read |
Site-wide admin view access |
site.write |
Site-wide admin write access |
site.readParticipants |
List all participants at the site |
site.registerParticipants |
Register new participants and add them to this site |
site.readFiles |
Read site files |
site.readApprovedFiles |
View approved site files only |
site.readFileVersions |
View site file versions |
site.writeFiles |
Create new site files and versions |
site.deleteFiles |
Delete site files and versions |
site.requestFileApproval |
Request site file approval |
site.approveFiles |
Approve site files |
site.readUsers |
View site personnel |
site.listPacks |
List and view packs |
site.writePacks |
Create and update packs |
site.assignPacks |
List and assign available packs to participants |
site.readSiteMessages |
Read this site’s message board |
site.writeSiteMessages |
Post to this site’s message board |
Group permissions (group.*)
For study arms / groups of participants:
| Permission | Description |
|---|---|
group.read |
Read group participants and data |
group.write |
Read and change group participant data |
Practical tips
- Start narrow — Grant
trial.readParticipantStudyDatawithout PII/restricted keys until a user truly needs those layers. - Use sites — Combine
site.accesswith read/write participant and file permissions so local staff only see their own site’s cohort. - Separate approvers — Split
trial.writeFiles/trial.requestFileApprovalfromtrial.approveFileswhere regulations require independent QC. - Wallet and meetings —
trial.manageWalletand the participant-meeting permissions are distinct; a coordinator who runs visits need not be able to top up incentives (or vice versa).
For workflow context on adding collaborators and sites, see Part 10 — Team members, collaborators and sites.