User flows

Journeys that are tested end to end today

Each journey below is an automated Playwright test that drives the real web app in a browser against the real server, PostgreSQL and a mail catcher, clicking the links in the emails it receives. The test ids come from the E2E plan in docs/23; the build checks that each one exists in the test packs.

For youPolicyAcknowledgeAnnouncement

Onboarding: invite, account, workspace

An owner brings a colleague in. No admin console tricks, no shared passwords: an invitation email and a sign-up page.

  1. Invite from Members. The owner opens Members, chooses Invite people and enters an email address.
  2. Open the email. The invitee gets the invitation email and opens the link.
  3. Create the account. They choose a password (confirmation checked) and land on Home in the workspace.
  4. The link is spent. Opening the same invitation again no longer works.
  5. Confirm it worked. The owner sees the new member as Active and opens their person page.

Verified by automated browser tests E2E-R1-FLOW-01, E2E-R1-FLOW-02, run against the real server, database and mail catcher. The variant for someone who already has an account (sign in, come back, join with one click) is E2E-R1-FLOW-02.

Members: a sortable, filterable table of people with roles, titles and status, with Import directory and Invite people actions

Policy to campaign to acknowledgement to evidence

The core loop for any team with policies: publish it, ask people to read it, prove they did.

  1. Write and publish. The owner writes a policy in the editor and publishes it.
  2. Launch a campaign. From the policy, the owner launches an acknowledgement campaign.
  3. The task appears. A colleague sees the request on Home and gets an email.
  4. Acknowledge on the document. They open the email link and acknowledge on the policy itself.
  5. See progress. The owner sees them Done: 1 of 2.
  6. Export evidence. The owner downloads the evidence CSV.

Verified by automated browser tests E2E-R1-FLOW-03, E2E-R1-07, run against the real server, database and mail catcher. E2E-R1-07 scales it up: a major version re-asks 51 people, 50 acknowledge (10 at phone size) and the CSV lists the version hash and sign-in method for each.

An acknowledgement campaign showing acknowledged, pending and overdue counts, progress by department, and per-person status with an Evidence CSV button
Procera on a phone: Home lists an announcement and a policy to read and acknowledge

Review loop with separation of duties

Controlled documents need a second pair of eyes. Procera makes that a rule, not a habit.

  1. Submit for review. The owner submits a controlled policy.
  2. Self-approval is refused. The author's own Approve is blocked (separation of duties).
  3. Request changes. The reviewer gets the review email, opens it and requests changes with a comment.
  4. Edit and resubmit. The owner is notified with the comment quoted, edits and resubmits.
  5. Approve with step-up. The reviewer approves from Home and confirms it's them.
  6. Publish. The owner is told it is approved and publishes, or schedules it for the effective date.

Verified by automated browser tests E2E-R1-FLOW-05, E2E-R1-06, run against the real server, database and mail catcher. E2E-R1-06 covers the blocked self-approval, step-up after an aged sign-in, scheduled publication and the superseded previous version.

A published policy, Acceptable Use of IT, with its status, version, owner, review date, applicability and content fingerprint above the policy text

Announcement to a location, with confirm-by and escalation

A notice for one office that people must confirm by a date, with managers told about anyone who doesn't.

  1. Compose. An admin writes the announcement and marks it as needing confirmation.
  2. Target a location. The audience is the Bangalore location from the directory, with a confirm-by date three days out.
  3. Only they receive it. Members in Bangalore get it; nobody else does.
  4. Confirmations count. The announcement's campaign counts each confirmation, by department.
  5. Escalate once. Past the deadline, the manager of anyone who didn't confirm is told, exactly once.

Verified by automated browser tests E2E-R1-09, E2E-R1-FLOW-04, E2E-R1-10, run against the real server, database and mail catcher. E2E-R1-FLOW-04 covers a critical post opened from email while signed out; E2E-R1-10 covers approval before publishing and expiry.

Manage announcements: a table of posts with status, audience, author and reach
The announcements feed with a pinned critical post that needs acknowledgement and a welcome post

Startup day one: template pack to 20 acknowledgements on phones

A ten-person company with no policies at 9 a.m. and signed-off acknowledgements before lunch.

  1. Starter profile. The workspace runs on the Starter configuration profile.
  2. Install a pack. From Home, Browse templates and install the Employee handbook pack: five drafts.
  3. Publish the handbook. Adapt it, then publish.
  4. Launch the campaign. Start the suggested acknowledgement campaign for everyone.
  5. 20 people acknowledge. Each one on a 390 × 844 phone screen.
  6. Done in minutes. 20 of 21 acknowledged, inside 15 minutes of wall-clock time.

Verified by automated browser test E2E-R1-18, run against the real server, database and mail catcher.

Templates: the Employee handbook and acknowledgement pack, which installs five draft policies and suggests an acknowledgement campaign
Procera on a phone: Home lists an announcement and a policy to read and acknowledge

Keyboard only, start to finish

Publishing and acknowledging a policy without touching a mouse: Tab, Enter and typing.

  1. Author from the Library. Create the policy, write it and move it through review using only the keyboard.
  2. Publish. Reach Published without a pointer.
  3. Colleague signs in. From the sign-in page, by keyboard.
  4. Acknowledge. Find the request and acknowledge it, still keyboard only.

Verified by automated browser test E2E-R1-19, run against the real server, database and mail catcher. Accessibility is also checked automatically: axe in light and dark themes, focus visibility and reflow (E2E-P0 pack).

A published policy, Acceptable Use of IT, with its status, version, owner, review date, applicability and content fingerprint above the policy text

Run them yourself

The browser packs live in e2e/packs/r1. The journeys above are in flows.ui.spec.ts and the R1 gate pack, gate.ui.spec.ts. They need the database-backed E2E stack described in the plan.