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.randomiseParticipants |
Randomise participants into a study arm, from the sequence set up under Participants > Randomisation (also allowed for trial admins; on its own it doesn't show which arm) |
trial.breakCode |
Break the code in an emergency: see one participant's study arm, once, with a reason. Recorded in the event log, marked on the participant and emailed to the trial admins, in a study that conceals its allocation (not implied by trial admin) |
trial.readAllocation |
See which study arm a participant is in, and put participants into an arm or take them out, in a study that conceals its allocation; download the allocation record (not implied by trial admin) |
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), and — with trial.read — the consent sessions behind them |
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 study data for every participant in the trial |
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 (without it, people see only the tasks assigned to them) |
trial.writeTasks |
Create and manage trial tasks, including reading them |
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.readLogs |
View and export the trial's event log (Settings > Audit > Logs) without being an administrator. What the entries show of participants' personal information and of restricted/PII field values still follows the viewer's own keys |
trial.signResponses |
Electronically sign responses and casebooks as the investigator. Not implied by trial.admin — grant it to the investigator explicitly |
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. Reading the event log needs trial.admin or trial.readLogs.
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.writeParticipantStudyData) 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. site.write also allows this, along with the site's tasks, its message board and adding or removing its participants, so prefer site.writeParticipantStudyData for someone who only enters data. Don't give site staff trial.writeParticipantStudyData for this: it isn't limited to their site, and lets them write to any participant in the trial.
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.
Tasks: the whole board vs. one site's tasks
trial.readTasks/trial.writeTaskscover every task in the study.site.readTasks/site.writeTaskscover the tasks for one site. A task can be for one or more sites; tasks for queries take the participant's sites, and tasks for site monitoring issues take the issue's site. Someone withsite.writeTaskscan only create tasks for the sites they hold it on, and can only assign them to staff of the task's sites they hold it on: members (site.access), and anyone givensite.read,site.write,site.readTasksorsite.writeTasksthere. A task with no site is seen only by people with the trial-wide keys.site.readandsite.writeinclude the site's tasks.- Anyone else with access to the study sees only the tasks assigned to them. They can move and complete them, but not reassign or delete them.
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, including the site's files and their version history |
site.write |
Site-wide admin write access. Includes everything site.read does, but changing files still needs the file keys below |
site.readParticipants |
List all participants at the site |
site.writeParticipantStudyData |
Create and update study data for 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. Don't combine it with site.read or site.write, which show every file at the site |
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 |
site.readTasks |
View the tasks for this site |
site.writeTasks |
Create and manage the tasks for this site |
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.