ConsolesAbout BStoreBlogCareersContact
Admin loginTeam loginClient portalShop bstore.com.au
Workflows/Talent

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.

Source Team assistant + BStore OSCadence On demand, plus the daily schedulerHuman touchpoints The ask, the reviews, the decision

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.

01Scheduler, or on demand
Cycle Opens
System
02Chat or Reviews screen
Talent Asks
Talent
03Never guessed
Reviewers Resolved
Claude
04One per reviewer
Links Returned
System
05Each in their portal
Reviews Land
Reviewers
06Sees every review
Manager Finalizes
Manager
07Probation only
Decision Recorded
Manager

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.

noyesambiguousyesnoyesnoyesyesnoTalent asks the team assistant"send a probation review link for Ngoc"call request_review_linksubject name, reviewer names or emailscaller may assign reviewers?talent director, admin, or the managerrefuse: explain who cansubject resolves to oneteam member?ask: which of these two?never guess a personan open cycle exists?probation or performanceopen the cycle:self + manager rowssame as the schedulereach reviewer is a team member,or a name with an email?no email, no match: report,add the restalready a revieweron this cycle?no-op: reuse the rowinsert review rowteam: bound to their id; external: email + tokenreply in chat: one link per reviewer,plus who was skippednothing is emailed until asked
The request path. Green writes a review row; every red path ends in the chat reply with a reason, and the reply always lists who was skipped.
the askdecisionreview row writtenrefuse and explainquiet no-ophuman touchpoint

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.

noyesnoyesreviewer opens the link/surveys/perf-review-manager?review=<id>&t=<token>token matches the row?or a signed-in team member who is the reviewernot found: wrong or stale linkrow still open?closed: read-only thanksno account neededname and email prefilled from the rowrender the manager formdecision section shown to the manager onlysubmit: ratings + text on the rownever a survey_responses rowmanager and talent notifiedLark DM + email, fail-soft
The reviewer path. The only red path is a wrong or stale token: it 404s rather than leaking whose review it is.
decisionreview savednot foundclosedhuman touchpoint

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.

reviewer submitsmanager finalizessubject readsprobation onlyopensubmittedfinalizedacknowledgedscheduler or chatopens hereprobation decision recordedconfirm, extend, or endemployment stageupdated
Green arrows are machine moves; dashed arrows are human-only. The decision step exists only on probation cycles.
machine may movehuman only (dashed)

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.

ConditionWhat happensWhere you hear about it
Caller is not talent, admin, or the subject’s managerRefused, with who can do itThe chat reply
Two people match the subject nameThe assistant asks which, creates nothingThe chat reply
No open cycle for the subjectOne is opened the same way the scheduler would (self + manager rows)The chat reply names the new cycle
Subject has no manager on fileCycle opens with the self row only; flaggedChat reply + the Reviews screen’s "no manager" column
A reviewer matches nobodyThat reviewer is skipped; the rest are addedThe chat reply lists the skipped name
Same reviewer asked twiceNo-op: the existing row’s link is returned againNowhere, by design
External reviewer forwards their linkWhoever opens it reviews as them; the link is a credential, so the reply says soThe chat reply, once
A link with a wrong or expired tokenNot found; nothing about the review leaksThe 404
Reviewer submits after the manager finalizedRow still accepted; shown as late on the review pageThe review page, marked late
Probation ends with no finalized manager reviewWeekly reminder keeps firing; the Reviews screen shows it redEmail + the Reviews screen
Notification fails to sendThe row is already saved; the link still worksCron 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 BStore 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.

01 TriggerBoth

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.

02 InputsHuman

A subject name and one or more reviewer names or emails. Nothing else: the cycle type and the form follow from the subject&rsquo;s employment stage.

03 DecisionBoth

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.

04 RoutingMachine

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.

05 OutputMachine

One link per reviewer, and one review row per link in performance_reviews. The links are the deliverable; nothing is sent until someone asks.

06 DeliveryBoth

The assistant replies with the links. Talent forwards them however the reviewer prefers; the optional email tool sends them on request.

07 MeasurementHuman

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.