What you'll build
By the end of this guide, you'll have a single form that routes through two review stages — HR fills their section first, then the manager completes theirs. Calc fields automatically aggregate scores across four categories and compute a combined rating. When both reviews are done, a personalized PDF summary is generated and emailed directly to the employee. An HR portal then gives every role — HR, manager, and employee — a tailored view of exactly the data they need.
When to use this
Your HR team runs performance reviews twice a year and coordinates them across email threads and spreadsheets
Managers lose track of which reviews they've completed and which are still waiting on them
You want employees to receive a clean, professional review summary — not a forwarded email chain
You need a single HR view to see all reviews by stage and spot bottlenecks at a glance
You're growing your team and need a repeatable, structured review cycle that doesn't require manual coordination each time
Part 1 — Build the review form
This is the foundation of the whole workflow. One form holds three sections: a public section for basic employee info (filled by HR when kicking off the cycle), an HR review section, and a manager review section. Both reviewer sections are admin-only — employees never see them. The fastest way to build this is with Magic Create: paste a single prompt and Formaloo generates the full form, field IDs and all.
1. From your Formaloo homepage, click Magic Create. You can upload a document or describe your form in text. Select the text option and paste the following prompt, then click Create:
"Create a 360-degree performance review form. Public fields: employee full name (short text, ID: employee_name), job title (short text, ID: employee_title), department (single choice: Engineering, Product, Design, Marketing, Sales, Operations, Other — ID: employee_department), work email (email, ID: employee_email), review period (single choice: H1 2026, H2 2026, Full year 2026 — ID: review_period), review goals and focus areas (long text, ID: review_goals).
Admin-only fields — HR review section: HR reviewer (assignee, ID: hr_reviewer), communication score 1–5 (number, ID: hr_score_communication), execution score 1–5 (number, ID: hr_score_execution), impact score 1–5 (number, ID: hr_score_impact), growth score 1–5 (number, ID: hr_score_growth), HR average score (calc = average of the four HR score fields, ID: hr_avg_score), key strengths (long text, ID: hr_strengths), areas for growth (long text, ID: hr_growth_area), overall HR assessment (long text, ID: hr_assessment).
Admin-only fields — Manager review section: manager reviewer (assignee, ID: manager_reviewer), communication score 1–5 (number, ID: mgr_score_communication), execution score 1–5 (number, ID: mgr_score_execution), impact score 1–5 (number, ID: mgr_score_impact), growth score 1–5 (number, ID: mgr_score_growth), manager average score (calc = average of the four manager score fields, ID: mgr_avg_score), key strengths (long text, ID: mgr_strengths), areas for growth (long text, ID: mgr_growth_area), overall manager assessment (long text, ID: mgr_assessment).
Admin-only pipeline fields: review status (dropdown: In HR review, In manager review, Done — ID: review_status), combined score (calc = average of hr_avg_score and mgr_avg_score, ID: combined_score), internal notes (long text, ID: internal_notes)."
2. Verify your form matches this table. Magic Create will have generated most of the fields automatically. Check each field name, ID, and type against the table below — make any adjustments directly in the editor.
Public fields:
Field | ID | Type |
What is the employee's full name? |
| Short text |
What is their job title? |
| Short text |
What department are they in? |
| Single choice |
What is their work email address? |
| |
What review period does this cover? |
| Single choice |
What are the main goals or focus areas for this review? |
| Long text |
HR review section (admin-only):
Field | ID | Type |
HR reviewer |
| Assignee |
Communication & collaboration (1–5) |
| Number |
Execution & delivery (1–5) |
| Number |
Impact & results (1–5) |
| Number |
Growth & development (1–5) |
| Number |
HR average score |
| Calc |
Key strengths (HR) |
| Long text |
Areas for growth (HR) |
| Long text |
Overall HR assessment |
| Long text |
Manager review section (admin-only):
Field | ID | Type |
Manager reviewer |
| Assignee |
Communication & collaboration (1–5) |
| Number |
Execution & delivery (1–5) |
| Number |
Impact & results (1–5) |
| Number |
Growth & development (1–5) |
| Number |
Manager average score |
| Calc |
Key strengths (manager) |
| Long text |
Areas for growth (manager) |
| Long text |
Overall manager assessment |
| Long text |
Pipeline fields (admin-only):
Field | ID | Type |
Review status |
| Dropdown |
Combined score |
| Calc |
Internal notes |
| Long text |
📖 To learn more about admin-only fields and how they work, see what are admin-only fields and how they help.
3. Confirm your calc fields are configured correctly. Open the hr_avg_score field → verify it's set to calculate the average of hr_score_communication, hr_score_execution, hr_score_impact, and hr_score_growth. Repeat for mgr_avg_score with the four manager score fields. Open combined_score → confirm it averages hr_avg_score and mgr_avg_score.
📖 For more on calc fields, see how to move 'Calc' to the 'Logic & Calculation' tab.
4. Click Publish in the island bar at the top of the editor to make the form live.
Part 2 — Set up logic rules
With your form ready, add the rules that automate the routing. On submission, the status sets itself to "In HR review" and the record assigns to the HR reviewer automatically. When HR flips the status to "In manager review", the record routes to the manager. When the status reaches "Done", the PDF generates and the summary emails fire. You'll use Magic Logic to set all of this up in one pass.
1. Open your form in the editor. In the form settings panel on the right side, click Advanced logic, then navigate to the Logic tab.
2. Click Magic Logic in the top right corner of the Logic panel to open the Magic Logic prompt box.
3. Paste the following prompt and click Generate Rules:
"Set up the following logic rules:
On Submit: Set the review_status field to 'In HR review'. Assign the record to the hr_reviewer assignee field.
On Update: When review_status is changed to 'In manager review', assign the record to the manager_reviewer assignee field.
On Update: When review_status is changed to 'Done', generate the employee summary PDF using the PDF template. Send an email to employee_email using the employee summary email template. Send an email to hr_reviewer using the HR summary email template."
4. Review each generated rule. Approve, redo, or cancel each one individually. Once all rules look correct, click Apply to set them for final review.
5. Click Save in the top right corner of the Logic panel.
📖 For a full walkthrough of On Submit and On Update logic, see how to add advanced logic to your form.
Part 3 — Create email templates
You need six email templates — one for each moment in the review cycle where a notification adds value. These are all built the same way: create a template, write an AI prompt in the body, and save it. In Part 4, you'll wire them to the logic rules.
1. Click your profile icon in the top right → Apps & integrations → Email templates → + Add new template.
2. Create the following six templates one by one. For each one: add a name, paste the subject line, clear the body area, add an AI block, paste the body prompt, and click Save.
Template 1 — New review started Name: New review started Subject: Performance review started for @employee_name (@review_period) Body prompt: Write a concise, action-oriented email notifying an HR reviewer that a new performance review record has been created and assigned to them. Tell them who is being reviewed (@employee_name, @employee_title, @employee_department), what period it covers (@review_period), and that the review goals are: @review_goals. Their next step is to open the record, complete the HR review section, then move the status to "In manager review" when done. Tone: clear and collegial. 4–6 sentences, no filler. HTML design: white background, single centered column max-width 560px, Inter font, soft blue (#EFF6FF) info banner showing employee name and review period, CTA button "Open review record" in #2563EB, muted footer #999.
Template 2 — Manager review ready Name: Manager review ready Subject: It's your turn — review @employee_name (@review_period) Body prompt: Write a direct, respectful email to a manager telling them HR has completed their review of @employee_name and the record is now in the manager review stage. Tell them their job is to open the record, complete the manager review section, and move the status to "Done." Reference the review period (@review_period) and goals: @review_goals. Close with one warm sentence. Tone: busy manager — get to the point. 5–7 sentences. HTML design: white background, single centered column max-width 560px, Inter font, pale green (#F0FDF4) header showing employee name and "Manager review ready", CTA button "Complete your review" in #16A34A, muted footer #999.
Template 3 — Review complete, summary to employee Name: Review complete — employee summary Subject: Your @review_period performance review is complete Body prompt: Write a warm, human email to @employee_name letting them know their performance review for @review_period is complete. Tell them their combined score is @combined_score out of 5. Briefly highlight strengths from HR (@hr_strengths) and their manager (@mgr_strengths), and one growth area from each (@hr_growth_area, @mgr_growth_area). Invite them to reach out if they'd like to discuss. Tone: encouraging and respectful — this is a meaningful moment. 6–8 sentences, not a form letter. HTML design: white background, single centered column max-width 560px, Inter font, warm amber (#FFFBEB) header with employee name and "Review complete", two-column data block showing HR score (@hr_avg_score) and manager score (@mgr_avg_score) side by side in large bold numerals, combined score (@combined_score) centered below, muted footer #999 with "This review is confidential."
Template 4 — Review complete, summary to HR Name: Review complete — HR summary Subject: Review complete: @employee_name (@review_period) — @combined_score/5 Body prompt: Write a brief, factual internal email for the HR team confirming that the full review cycle for @employee_name is complete. Include: employee name (@employee_name), title (@employee_title), department (@employee_department), review period (@review_period), HR reviewer (@hr_reviewer), manager (@manager_reviewer), HR average score (@hr_avg_score), manager average score (@mgr_avg_score), combined score (@combined_score). Add a one-line summary of the HR assessment (@hr_assessment) and manager assessment (@mgr_assessment). Note that the attached PDF contains the full record. Tone: professional, data-focused, internal. 5–6 sentences plus a data table. HTML design: white background, single centered column max-width 560px, Inter font, clean two-column data table (label in #999, value in #111), CTA button "Open full record" in #4F46E5, muted footer #999 "Confidential."
Template 5 — HR review reminder (for manual campaign) Name: HR review reminder Subject: Reminder: @employee_name's review is waiting on you Body prompt: Write a brief, friendly nudge email to an HR reviewer reminding them that @employee_name's review for @review_period is still in the HR review stage. Remind them their next step is to fill the HR section and flip status to "In manager review." Tone: warm, non-pressuring — assume they're busy. 3–4 sentences, no urgency language. HTML design: white background, single centered column max-width 560px, Inter font, light gray (#F3F4F6) status chip "Status: In HR review", CTA button "Continue review" in #2563EB, muted footer #999.
Template 6 — Manager review reminder (for manual campaign) Name: Manager review reminder Subject: Reminder: @employee_name's review is waiting on your input Body prompt: Write a brief, respectful reminder to a manager that @employee_name's review for @review_period is in the manager review stage and needs their input. Tell them exactly what to do: open the record, complete the manager review section, mark it Done. Tone: collegial and time-aware. 3–4 sentences. HTML design: white background, single centered column max-width 560px, Inter font, light amber (#FEF3C7) status chip "Status: Awaiting manager review", CTA button "Complete your review" in #16A34A, muted footer #999.
📖 For a full walkthrough, see how to create and send custom email templates.
Part 4 — Connect email templates to your logic rules
With your templates saved, go back into Advanced logic and wire each template to the right trigger. Templates 1–4 fire automatically via On Submit and On Update rules. Templates 5 and 6 are used manually via email campaigns when reviews go overdue.
1. Open your form → form settings panel on the right side → Advanced logic → Logic tab.
2. Find your On Submit rule that sends an email. Click into it → select the New review started template → set the recipient to your HR team email address or the hr_reviewer assignee field → click Save.
3. Find your On Update rule for when review_status changes to "In manager review." Add a Send email action → select the Manager review ready template → set the recipient to the manager_reviewer field → click Save.
4. Find your On Update rule for when review_status changes to "Done." Confirm it has two Send email actions: one using Review complete — employee summary sent to employee_email, and one using Review complete — HR summary sent to hr_reviewer. Confirm it also has a Generate PDF action connected to your employee summary PDF template → click Save.
📖 For more on conditional email triggers, see how to send and receive conditional email notifications.
Part 5 — Add PDF templates
Three PDF templates power this workflow: one for the HR reviewer's records, one for the manager's records, and one for the employee summary. Each is a pre-built HTML file — you paste it into Formaloo's PDF template editor in seconds.
1. Click your profile icon → Apps & integrations → PDF templates → + Add new template.
2. Switch the editor to HTML view by clicking the HTML toggle at the top of the template editor.
3. Create the three templates one by one. For each, paste the corresponding HTML code, give the template a name, and click Save:
HR review PDF — name it "HR review record." Paste the HTML from
360-review-hr-review-pdf.html. This document shows the HR section scores and qualitative notes — for HR team records only.Manager review PDF — name it "Manager review record." Paste the HTML from
360-review-manager-review-pdf.html. This document shows the manager section scores and assessment — for manager records only.Employee summary PDF — name it "Employee performance summary." Paste the HTML from
360-review-employee-summary-pdf.html. This is the document emailed to the employee when the review is marked Done — it shows the combined score, a category breakdown, and both reviewers' qualitative notes side by side.
4. Go back to Advanced logic → find the Generate PDF action on your "When status is Done" On Update rule → confirm it's connected to the Employee performance summary template → click Save.
📖 For more on PDF templates and how to send them with email notifications, see how to create PDF templates to turn responses into documents and how to send custom PDFs with email notifications.
Part 6 — Build the HR portal
The portal gives HR, managers, and employees three completely different views of the same data. HR sees the full pipeline. Managers see only their assigned records. Employees see only their own. You'll activate the portal, set up three user roles, configure page access, and add the right data blocks to each group.
1. Open your project and click the gear icon in the top right corner → Activate client portal → Manage users → Setup wizard.
2. Create a new user directory when prompted in Step 1. This stores all portal users — HR team, managers, and employees.
3. Configure your portal settings in Step 2: enable login, set sign-up to invite-only (so only your team can access it), and choose your branding and URL.
4. Connect your user directory to the review form in Step 3 by selecting the profile field that links portal users to their submitted records.
5. Add three user roles in your user directory. Navigate to User Directory → Edit profile fields → scroll to User Roles → add: HR, Manager, Employee.
6. Add the following pages to your portal and assign each to the correct role. Switch to Edit mode, click + Add page for each, then set role access via the three-dot menu → Access → Specific user roles:
Group 1 — My review (Employee role only)
Add a page called My review status. Add a Table data block connected to the review form. In the data block Options → Manage Access → select employee_email as the profile field → enable Allow users to view only their data. Visible columns: employee name, review period, review status, combined score.
Group 2 — Review pipeline (HR role only)
Add five pages:
All reviews — add a Kanban data block → group by review_status (3 columns: In HR review / In manager review / Done). No filter. Shows every record.
In HR review — add a Table data block → filter: review_status = "In HR review" → sort: submission date ascending. Visible columns: employee name, department, review period, hr_assignee, submission date.
In manager review — add a Table data block → filter: review_status = "In manager review" → sort: submission date ascending. Visible columns: employee name, department, review period, manager_reviewer, submission date.
Completed reviews — add a Table data block → filter: review_status = "Done" → sort: combined_score descending. Visible columns: employee name, department, review period, hr_avg_score, mgr_avg_score, combined_score.
My assigned reviews — add a Table data block → in Options → Manage Access → select hr_reviewer as the assignee field → enable Allow assignees to view only their data. Sort: submission date ascending.
Group 3 — My team's reviews (Manager role only)
Add three pages:
My team's reviews — add a Table data block → in Options → Manage Access → select manager_reviewer as the assignee field → enable Allow assignees to view only their data. Sort: submission date descending.
Pending my review — add a Table data block → filter: review_status = "In manager review" → in Manage Access restrict to manager_reviewer = logged-in user. Sort: submission date ascending.
Completed by me — add a Table data block → filter: review_status = "Done" → restrict to manager_reviewer = logged-in user. Sort: combined_score descending. Visible columns: employee name, review period, mgr_avg_score, combined_score.
7. Set page access for each group. For every page in Group 1, click the three-dot menu → Access → set to Employee role only. Repeat for Group 2 (HR only) and Group 3 (Manager only).
8. Publish your portal by clicking Publish in the island bar at the top of the editor. Share the portal link with your HR team, managers, and employees — each person sees only their group's pages after logging in.
📖 For a full portal setup walkthrough, see how to create a portal and manage users' access.
What you now have
You have a fully automated 360-degree performance review system — one form, two reviewer stages, zero manual coordination. When HR submits a new record, the routing, assignment, and email notifications all happen automatically. Calc fields track weighted scores across all four categories and surface a combined rating the moment both reviews are done. The employee receives a clean PDF summary by email — no spreadsheet attachment, no forwarded notes. And your HR team has a live Kanban pipeline showing every review by stage, with filtered views for every role built in.
What's next
Set up a dual-approval workflow for other HR processes The same On Update routing pattern that powers this review system works for any two-stage approval — budget requests, policy sign-offs, or content approvals. The structure is identical: one form, two admin-only sections, status-driven assignment. → How to build a dual-approval request workflow
Send review reminder campaigns to overdue reviewers When a cycle stalls, use email campaigns to bulk-send the HR or manager reminder templates to everyone whose status hasn't moved in a week. Filter by status, select overdue records, and send in one click. → How to send an email campaign and collect data with AI agents in Formaloo
Let employees view and update their own records If you want employees to be able to add comments or self-assessment notes after receiving their review, enable edit access on the employee portal page — scoped to their own record only. → How to let users view and edit their own data in your portal
Ready-to-use templates
Don't build this from scratch — we've already put it together for you.
Employee request workflow — an internal request management template for HR and ops teams with status tracking and assignee routing. Adapt it to add HR and manager review sections on top of any existing request workflow.
Scholarship & grant application with scoring and approval — a multi-reviewer scoring workflow with weighted calc fields and automated approval emails. The scoring and stage-routing structure is directly parallel to the performance review system built in this article.
Job applicant tracking workflow — track candidates across hiring stages with status-driven assignment and reviewer pipelines. The same Kanban portal structure from this article maps directly onto a hiring workflow.
Don't have a form yet? Create one in seconds with Magic Create — describe what you need and Formaloo builds the form for you.
Learn more how-tos
Build a student submission and teacher review portal The same two-reviewer, status-driven pattern applied to academic grading — one form, multiple reviewer roles, a Kanban pipeline for the teacher, and a filtered view per student. A close structural parallel to the HR review system here. → How to build a student submission and teacher review portal in Formaloo
Add AI scoring to a job application pipeline If you're building adjacent HR tooling, this article shows how to layer AI-powered candidate scoring and automated routing on top of a similar multi-stage form structure. → How to build an AI-powered job application pipeline with candidate screening in Formaloo
Score and approve scholarship applications A multi-reviewer workflow with weighted calc fields, automated approval and rejection emails, and a committee review portal — the closest published article to the performance review system structure built here. → Scholarship & grant application with scoring and approval workflow
