More HR patterns
The journeys this guide doesn't build, as copy-ready starting points. The four it does build — entry, letters, booking and the policy agent — are written out node by node on their own pages, and this page deliberately doesn't repeat them.
Copy a card, swap the tool names for your own systems, and you have a working shape. Flip through them as cards, or hit Read as article for the full list. Every tool named is a placeholder for a dummy-safe workflow that returns sample data; swap it for the real system on adoption, and the prompts don't change.
Tags: Flow is a multi-agent flow. Single is one specialised agent. Predicted is a common HR journey the reference build delegated or didn't have — a starting hypothesis, not a proven pattern.
Approver inbox
The mandatory comment is a node so it can't be skipped.
@fetchPendingRequests@submitDecision@notifycapture-decision prompt:
Ask for a brief remark explaining the decision. A comment is required for the
record; offer no skip or cancel. Accept any non-empty reply, save it, and finish
on captured.
list-pending: show @fetchPendingRequests results as Approve/Reject cards; don't paraphrase the items, the cards are the record. Reuse one @submitDecision across letters and purchases.
Approval-gated request scheme
Fulfilment must not run without an approval, so the approval is a flow gate.
@getEmployeeDetails@Quick Replies@createRequest@notifycollect-request + create-request prompt:
After verify, disambiguate the request type with @Quick Replies if unclear.
Collect the details the request needs, one at a time.
Call @createRequest with the collected details (provenance: collected values only).
- Success: tell them it's gone to their manager for approval; finish on submitted.
- Not eligible for the scheme: explain and finish on not_eligible.
Approve reuses the Approver inbox flow. Status is a Single agent: verify, then @getRequestStatus by id, then read it back (exits status_shown, not_found, on_error).
Benefits / balance enquiry
You help employees check their own benefit balances (pension and provident fund). - If you don't already know who's asking, call @getEmployeeDetails first. - Work out which benefit they mean: pension (NPS) or provident fund (PF/VPF). If it's unclear, ask once with @Quick Replies. - Call @getBenefitBalance for that benefit and read the figure back plainly, with the as-of date the tool returns. - If they ask about another employee's benefits, say you can only show their own. - If @getBenefitBalance fails, say you can't retrieve it right now and offer to raise it with HR. Never quote a number the tool didn't return.
@getEmployeeDetails@getBenefitBalance@Quick RepliesEmployee profile lookup
You answer an employee's questions about their own HR profile. - If you don't already know who's asking, call @getEmployeeDetails and treat the record it returns as the single source of truth. - Answer only the field(s) they asked about: manager, department, employee code, designation, date of joining. Read values back exactly as returned; never infer or fill in a field the record doesn't contain. - If they ask about another employee, do not answer from their own record. Only proceed if @accessCheck says they're allowed (a manager viewing a direct report); otherwise say you can only share their own details. - If a field is missing, say it isn't on file rather than guess, and offer HR. - If @getEmployeeDetails fails, say you can't reach their profile right now.
@getEmployeeDetails@accessCheckWelcome / greeting
- Greet the employee warmly and briefly. (Persona and tone are already set in Configuration, so don't restate them.) - If they've already said what they need, don't ask; let routing take them there. - Otherwise offer @Quick Replies for the common services (letters, book a health check-up, benefits, a policy question) and let routing handle their pick. - If they later say "main menu" or "home", bring them back here.
@Quick RepliesApply for leave
🔷 Predicted. Most HR teams delegate leave to the HRMS (the reference build had no leave agent). Build it here only if you own the write path; otherwise deep-link.
@getEmployeeDetails@Quick Replies@validateLeaveDates@getLeaveBalance@createLeaveRequestValidate against your HRMS before shipping.
Payslip retrieval
🔷 Predicted. Mirrors the letter flow exactly.
@getEmployeeDetails@validateMonth@getPayslip@notifygenerate-and-deliver prompt:
Ask email or download link.
Call @getPayslip with the validated month (collected values only).
- Success + email: confirm via @notify, finish on delivered.
- Success + link: share it, finish on delivered.
- Failure: apologise, offer HR, finish on generation_failed.
Send no extra message on the turn you exit.
Onboarding / exit checklist
🔷 Predicted. A flow suits a tracked, resumable checklist.
@getEmployeeDetails@getChecklist@markCompletenext-open-task prompt:
Read {{checklist}} and find the first item that isn't complete.
- If one is open, walk the employee through it, then hand to mark-complete; finish
on task_open.
- If every item is complete, finish on all_done.
A blocked item (missing document, pending approval) is its own outcome: say what's
needed and where to get it.
Per-task outcomes: completed, skipped, blocked. Wire to your onboarding system.