Skip to content

Product - User Flows

Product — User Flows

Trystpilot has three primary user types: Reviewers (anonymous submitters), Readers (anyone browsing profiles), and Subjects (people whose aliases appear on the platform). Each type has a distinct primary journey. All journeys converge at the PostgreSQL layer; no journey requires account creation.

Reviewer Journey

flowchart TD A([Reviewer lands on site]) --> B{Profile exists?} B -- Yes --> C[Find profile via search] B -- No --> D[Request profile creation\nvia submit form] D --> E[Admin reviews & creates profile] C --> F[Click 'Write a Review'] E --> F F --> G[Fill anonymous review form\n6 dimensions + text] G --> H{hCaptcha passes?} H -- No --> G H -- Yes --> I[Fingerprint hash generated] I --> J{Duplicate check\nsame alias + fingerprint?} J -- Duplicate --> K[Error: Already reviewed this person] J -- New --> L[Text filter runs] L --> M{PII / threats detected?} M -- Yes --> N[Review quarantined\nfor manual review] M -- No --> O[Review status = pending] N --> P{Moderator decision} P -- Reject --> Q([Review removed]) P -- Approve --> R O --> R[Review published] R --> S[Reputation score recomputed] S --> T([Profile updated])

Reader Journey

flowchart TD A([Reader lands on site]) --> B[Home page] B --> C{Intent} C -- Search by alias --> D[Search bar] C -- Browse --> E[Recent Reviews feed\nor Top Rated section] D --> F[Results list] E --> F F --> G[Profile page] G --> H[Star summary + Reputation Index] G --> I[Rating breakdown bars] G --> J[Review cards — filtered by star] J --> K{Wants to act?} K -- Report review --> L[Abuse report form] K -- Request removal --> M[Removal request form] K -- Write own review --> N[Submit flow] L & M & N --> O([Submitted to queue])

Subject Journey

flowchart TD A([Subject discovers their profile]) --> B{Response type} B -- Dispute review --> C[Abuse report form] B -- Request full removal --> D[Removal request form] B -- Submit public response --> E[Response thread — planned] C --> F[Moderator review queue] D --> G[Admin removal pipeline] F --> H{Decision} H -- Actioned --> I[Review removed / quarantined] H -- Rejected --> J[Review stays] G --> K{Decision} K -- Approved --> L[Profile hidden / deleted] K -- Rejected --> M[Subject notified — planned]