Review Requests: Any Reviewer, One Link
Today a review has two raters: the person and their manager. Reality has more voices, a second lead, the client the person works for, a peer. This workflow lets talent add any of them to a probation or performance review and hand each one a link, from chat or one Reviews screen, without the manager losing the decision. This page is the plan, drawn branch by branch before it is built.
Ask, assign, review, decide
This rail is the orientation, not the workflow. The diagrams below are the truth: every branch, every refusal, and the lifecycle the review rows move through.
From a sentence in chat to one link per reviewer
Five decisions stand between the ask and the links: may you, who, is there a cycle, who are they, and are they already on it. Each refusal ends by telling the human, never by inventing a person. The same path runs behind the “Add reviewer” button on the Reviews screen; chat is just the shorter way to reach it.
What happens when the link is opened
A link is bound to one review row and one reviewer. Team members open it with their portal session; anyone else, a client contact for instance, gets a signed link tied to their email and needs no account at all. The form is the existing manager review with the decision section shown to the manager only, so every reviewer scores the same eleven dimensions.
What a review row may do
Every reviewer row moves through the same four states. Extra reviewers stop at submitted; only the manager’s row is finalized, and only a finalized manager row unlocks the probation decision. The subject sees the manager’s review once finalized and the other reviews only if the manager chooses to share them.
Every exception has an owner
Each row is a condition the workflow will hit, what it does about it, and where a human hears about it. Silence is only ever by design.
| Condition | What happens | Where you hear about it |
|---|---|---|
| Caller is not talent, admin, or the subject’s manager | Refused, with who can do it | The chat reply |
| Two people match the subject name | The assistant asks which, creates nothing | The chat reply |
| No open cycle for the subject | One is opened the same way the scheduler would (self + manager rows) | The chat reply names the new cycle |
| Subject has no manager on file | Cycle opens with the self row only; flagged | Chat reply + the Reviews screen’s "no manager" column |
| A reviewer matches nobody | That reviewer is skipped; the rest are added | The chat reply lists the skipped name |
| Same reviewer asked twice | No-op: the existing row’s link is returned again | Nowhere, by design |
| External reviewer forwards their link | Whoever opens it reviews as them; the link is a credential, so the reply says so | The chat reply, once |
| A link with a wrong or expired token | Not found; nothing about the review leaks | The 404 |
| Reviewer submits after the manager finalized | Row still accepted; shown as late on the review page | The review page, marked late |
| Probation ends with no finalized manager review | Weekly reminder keeps firing; the Reviews screen shows it red | Email + the Reviews screen |
| Notification fails to send | The row is already saved; the link still works | Cron run log |
Data, permissions, and how we know it works
Reads and writes
- Reads: team members and their managers, people on file, open review cycles
- Writes: one performance_reviews row per reviewer; a cycle’s self and manager rows if none exist
- Idempotency key: subject + cycle + reviewer. Asking twice returns the same link
- Rater kinds: self, manager, reviewer (team), external (email + signed token)
Permissions
- Assign reviewers: talent director, admins, the subject’s manager
- Submit a review: the bound reviewer only; team by session, external by their signed link
- Finalize and decide: the manager only; talent and admins may read
- Subject sees: the finalized manager review, plus anything the manager shares
How we know it works
- The Reviews screen shows every open cycle and every reviewer’s status at a glance
- A probation ending without a finalized review is red until it isn’t
- Every chat request ends in links or a stated reason; a silent reply is the bug
- Monthly eyeball: cycles with only a manager row. Fewer each month is the trend we want
Four pull requests, each shippable alone
The first three are the workflow; the fourth is a convenience. Each names what it does, what you will see, and when it is done.
PR 1: Any reviewer on a cycle
- What it does. Loosens the review table so a cycle can hold one row per reviewer, not one per rater kind, and adds two rater kinds: reviewer (another team member) and external (anyone with a name and an email). External rows carry the email and a signed token, so the link works without an account or a portal seat. The manager form is reused; its decision section stays manager-only.
- What you’ll see. Nothing new on screen yet. The review page lists every submitted review on a cycle, manager first, instead of assuming exactly one.
- Done when. A cycle with a manager row plus two extra reviewer rows renders, both extra reviewers can submit through the existing runner, and the manager can still finalize. Existing cycles are untouched.
PR 2: Reviews in Talent
- What it does. Adds Reviews under Talent in Edge8 OS: one table of every cycle, probation and performance, with subject, type, due date, each reviewer’s status, and a red mark when a probation ends without a finalized review. A row opens a drawer where talent adds reviewers by name and copies each link.
- What you’ll see. A Reviews entry next to Probation in the Talent menu, and an "Add reviewer" drawer that returns a link the moment a name is picked.
- Done when. Talent can add a second internal reviewer and an unregistered client contact to a live probation cycle from the drawer, copy both links, and both reviewers can submit.
PR 3: Ask the assistant
- What it does. Gives the team assistant one write tool, request_review_link, gated to the talent director, admins, and the subject’s manager. It walks the request diagram above: resolve the subject, open a cycle if none, resolve each reviewer, insert or reuse a row, and reply with the links. It never emails on its own.
- What you’ll see. Typing "send a probation review link for Ngoc to Quan and the client lead" returns two links and, if anyone could not be resolved, says who.
- Done when. The three refusal paths (not allowed, ambiguous subject, unknown reviewer) each reply with a plain explanation and write nothing; the happy path writes exactly one row per new reviewer.
PR 4: Send it for me
- What it does. Optional. Lets the assistant email a link to a reviewer when asked in so many words, using the existing transactional email path, and lets the Reviews drawer do the same with one button. Both log the send on the cycle.
- What you’ll see. A "Send link" button beside each reviewer in the drawer, and the assistant confirming what it sent and to whom.
- Done when. A sent link is logged on the review row with a timestamp; sending twice is refused within a day.
The seven elements
Every workflow we document has the same anatomy: seven elements, each assigned to a human, a machine, or both. This is the Centaur Map from our workflow design method.
The scheduler opens cycles on their dates (probation at six weeks, mid-year, renewal). Talent opens or extends one on demand, from chat or the Reviews screen.
A subject name and one or more reviewer names or emails. Nothing else: the cycle type and the form follow from the subject’s employment stage.
The assistant resolves names to people and refuses to guess. Talent decides who reviews; the manager still owns the finalize step and the probation decision.
Team members open their link with their portal session. Anyone else gets a signed link bound to their email: no account, no portal seat. One review row per reviewer; the same form for everyone.
One link per reviewer, and one review row per link in performance_reviews. The links are the deliverable; nothing is sent until someone asks.
The assistant replies with the links. Talent forwards them however the reviewer prefers; the optional email tool sends them on request.
The Reviews screen shows every open cycle, who has submitted, who is overdue, and which probations end without a finalized review. Zero of the last one is the target.
This extends the review cycle already running behind the onboarding cycle and the 1-1 coaching cycle: same table, same form, more voices.