Skip to content

Users and access

Manage EDFlow staff accounts: invites, roles and the full permission matrix, approvals for privileged roles, deactivation, unlock and MFA reset, bulk import and SCIM, and the quarterly access review.

Users

Users: staff with roles, status and last sign-in, with filters and Invite.
WebCaptured from build 7c7f41f on September 27, 2026

The users list shows name, email, roles, clinician type, status (invited, pending approval, active, deactivated, locked), sites, last sign-in, MFA status, SSO link, provisioning source and flags. Search by name or email prefix; filter by role and status.

With users.manage you can:

  • edit roles and clinician type (privileged roles need approval);
  • deactivate or reactivate (deactivation revokes sessions and unused credentials the user issued at once);
  • unlock a locked account, reset MFA, force a password reset, sign out all sessions;
  • edit EHR identity links (with confirmation; alerts the privacy officer);
  • mark someone hidden from patients, approve a photo or display-name change, and mark a clinical approver.
User detail: roles, site memberships, MFA status and sessions, with Deactivate and Reset MFA.
WebCaptured from build 7c7f41f on September 27, 2026

You can't remove your own manager role if you're the site's last manager. Every change is audited with before and after values.

Invites

Invites: pending staff invites with role, expiry and Resend or Cancel.
WebCaptured from build 7c7f41f on September 27, 2026

Invite up to 20 emails at once with roles, clinician type and an optional message (500 characters, no links or phone numbers). Invites expire after 72 hours; Resend invalidates the previous link. Addresses outside the site's staff email domains need a second manager's approval before anything is sent.

security.staffEmailDomains (default [])

Roles and permissions

The full matrix, generated from the product's permission catalogue:

PermissionR-TRIAGER-NURSER-PHYSICIANR-CHARGER-CLERKR-SUPPORTR-MANAGERR-PRIVACYR-INTEGRATIONR-INTEGRATION-DEVELOPERR-SUPER
board.viewGrantedGrantedGrantedGrantedConditionalNot grantedGrantedNot grantedNot grantedNot grantedNot granted
patient.viewGrantedGrantedGrantedGrantedConditionalNot grantedGrantedConditionalNot grantedNot grantedNot granted
patient.unmaskGrantedGrantedGrantedGrantedGrantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
patient.registerGrantedNot grantedNot grantedGrantedGrantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
patient.stateGrantedGrantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
patient.overrideNot grantedNot grantedNot grantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
patient.lifecycleNot grantedNot grantedNot grantedGrantedConditionalNot grantedGrantedNot grantedNot grantedNot grantedNot granted
careteam.assignGrantedGrantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
zones.assignNot grantedNot grantedNot grantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
results.releaseNot grantedNot grantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
tasks.manageGrantedGrantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
avs.composeNot grantedGrantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
avs.medicationsNot grantedNot grantedConditionalNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot granted
access.cardGrantedGrantedGrantedGrantedGrantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
access.revokeNot grantedNot grantedNot grantedGrantedGrantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
share.manageGrantedGrantedGrantedGrantedNot grantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
privacy.flagGrantedNot grantedNot grantedGrantedGrantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
patient.restrictGrantedGrantedGrantedGrantedNot grantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
updates.pauseNot grantedNot grantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
patient.callbackGrantedGrantedGrantedGrantedGrantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
request.viewGrantedGrantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
request.actGrantedGrantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
request.bulkGrantedGrantedNot grantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
code.callNot grantedNot grantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
code.clearNot grantedNot grantedGrantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
code.noticeGrantedGrantedGrantedGrantedGrantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
support.queueNot grantedNot grantedNot grantedGrantedNot grantedGrantedGrantedNot grantedNot grantedNot grantedNot granted
volume.setNot grantedNot grantedNot grantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
analytics.viewNot grantedNot grantedNot grantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
analytics.selfNot grantedConditionalConditionalConditionalNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot granted
analytics.clinician_blindedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedConditionalNot grantedNot grantedNot grantedNot granted
analytics.clinician_namedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedConditionalNot grantedNot grantedNot grantedNot granted
analytics.exportNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
users.viewNot grantedNot grantedNot grantedGrantedNot grantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
users.manageNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
users.importNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
settings.manageNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
config.manageNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
stations.manageNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
approvals.decideNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedConditionalConditionalNot grantedNot grantedConditional
training.manageNot grantedNot grantedNot grantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
content.manageNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
content.approveNot grantedNot grantedConditionalConditionalNot grantedNot grantedConditionalNot grantedNot grantedNot grantedNot granted
announcements.manageNot grantedNot grantedNot grantedGrantedNot grantedNot grantedGrantedNot grantedNot grantedNot grantedNot granted
integration.viewNot grantedNot grantedNot grantedGrantedNot grantedNot grantedGrantedNot grantedGrantedConditionalNot granted
integration.manageNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot granted
audit.viewNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
audit.exportNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot granted
privacy.legal_holdNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot granted
privacy.incidentNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot granted
privacy.emergency_revokeNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
outbox.viewNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedGrantedGrantedNot grantedNot granted
access_review.runNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedGrantedNot grantedNot grantedNot granted
simulator.useNot grantedNot grantedNot grantedConditionalNot grantedNot grantedConditionalNot grantedConditionalNot grantedConditional
seed.resetNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedConditionalNot grantedNot grantedNot grantedConditional
platform.manageNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGranted
developers.viewNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedConditionalGrantedGrantedNot granted
developers.manageNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedGrantedNot granted
developers.credentialsNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedConditionalNot granted
developers.approveNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedGrantedNot grantedNot granted
developers.attest_piaNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedNot grantedNot granted
developers.accept_affiliationNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedGrantedNot grantedGrantedNot grantedNot granted
ai.safety_reviewNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedNot grantedConditionalNot grantedNot grantedNot granted

Separation of duties: a privacy officer can't also hold a manager or clinical role. Granting manager, privacy or integration roles creates an approval request that a different eligible person approves.

Approvals

Approvals lists pending, approved, rejected and expired two-person requests: privileged role grants, external-domain invites, audit and visit-record exports, trust-anchor changes (like the main phone), patient-facing announcements and tenant offboarding. Requests expire after 72 hours. Nobody can approve their own request, and approving needs a fresh sign-in check.

Bulk import and directory provisioning

  • Import: upload a CSV (email, given name, family name, roles, clinician type, zone). Every row is validated; if any row fails, nothing is created.
  • Provisioning: a SCIM 2.0 endpoint for Microsoft Entra ID or another IdP, with a site-scoped token revealed once. A user disabled in the directory is deactivated within 5 minutes.

Quarterly access review

Quarterly access review: each user with roles and last sign-in, and Keep or Remove decisions recorded.
WebCaptured from build 7c7f41f on September 27, 2026

Review every active membership (roles, last sign-in, MFA, source), mark each keep, change or remove, then attest with your name and date. The page shows Overdue 90 days after the last attestation.

Last updated on

Was this page helpful?

On this page